Embedding 모델과 RAG 시스템
- 임베딩 모델과 RAG의 관계는 마치 ‘도서관의 인덱스 시스템과 사서의 답변 과정’과 같음
- 보통 RAG에서 말하는 임베딩 모델은 GPT와 같은 생성 모델(Decoder)이 아니라,
- 문장을 읽고 이해하는 데 특화된 BERT 계열의 인코더(Encoder) 모델을 지칭하는 경우가 많음
1. 임베딩 모델의 RAG에서의 상세 역할
1.1 RAG 아키텍처 내에서의 역할 분담
- RAG 시스템은 크게 ‘찾는 과정(Retrieval)’과 ‘답하는 과정(Generation)’으로 나뉨
여기서 임베딩 모델과 생성 모델은 각각 전담 마크하는 영역이 다름
- 임베딩 모델 (주로 BERT 계열 / 인코더)
- 역할
- 지식 베이스(문서)를 벡터 공간에 배치하고,
- 사용자의 질문이 어떤 지식과 가까운지 ‘좌표’를 찍는 역할
- 특징
- 문맥을 양방향으로 분석하여 의미를 수치화하는 데 최적화
- 비유
- 도서관의 모든 책 내용을 수치화하여
- 어느 서가에 꽂을지 결정하는 ‘분류 전문가’
- 역할
- 생성 모델 (주로 GPT 계열 / 디코더)
- 역할
- 임베딩 모델이 찾아준 문서 조각들을 읽고,
- 사용자가 이해하기 쉬운 자연어로 ‘답변’을 재구성
- 특징
- 이전 단어를 바탕으로 다음 단어를 예측하며
- 매끄러운 문장을 만드는 데 최적화
- 비유
- 분류 전문가가 가져다준 책 정보를 읽고
- 친절하게 설명해 주는 ‘전문 상담사’
- 역할
- 참고
- 참고
- OpenAI의 GPT 발표 후, 이에 대응하기 위해 발표된 Google의 모델이 BERT
- 그러나 엄밀하게는 Google의 BERT는 생성형 모델이라고 보기는 어려움
- GPT (Decoder-only)
- “다음에 올 단어를 맞춰봐”라는 태스크(Next Token Prediction)로 학습됨
- 즉, 앞에서부터 뒤로 말을 이어 붙이는 ‘생성’에 최적화되어 있음
- BERT (Encoder-only)
- “문장 중간에 구멍(Mask)을 뚫어놓을 테니, 앞뒤 문맥을 보고 뭐가 들어갈지 맞춰봐”라는 태스크(Masked Language Model)로 학습됨
- 문장 전체를 한꺼번에 보고 ‘이해’하고 ‘분석’하는 데 몰두한 모델이지, 새로운 문장을 창조해 나가는 훈련을 받은 모델이 아님
1.2 BERT와 GPT의 차이가 RAG에 주는 영향
- 두 모델의 아키텍처 차이는 RAG 시스템의 성능에 결정적인 영향을 미침
| 구분 | 임베딩 모델 (BERT 계열) | 생성 모델 (GPT 계열) |
|---|---|---|
| 방향성 | 양방향 (Bidirectional) | 단방향 (Unidirectional) |
| RAG 내 기능 | 문서 검색 (Retrieval) | 답변 생성 (Generation) |
| 핵심 역량 | 문장 간의 유사도(Distance) 계산 | 문맥에 맞는 텍스트 생성 |
| 비교 비유 | 수만 개의 후보 중 정답 후보를 추림 | 추려진 후보를 요약하여 최종 답변 작성 |
1.3 임베딩 모델과 RAG의 관계: 의미적 연결고리
- 임베딩 모델이 RAG에서 가지는 가장 큰 의의는 비정형 데이터를 수학적 공간으로 끌어올려 GPT가 읽을 수 있게 전달한다는 점
- 단순한 데이터 전달을 넘어, 컴퓨터가 인간의 언어를 수학적인 기하학 구조로 이해하게 만드는 핵심 과정
- 지식의 구조화 (Knowledge Indexing)
- 방대한 비정형 데이터를 시스템이 즉시 탐색할 수 있는 ‘의미 지도’로 만드는 과정
- 방대한 텍스트 데이터를 BERT 계열 모델을 통해 고차원 벡터로 변환하여 벡터 DB에 저장함
- 방대한 텍스트 데이터를 BERT 계열 모델을 통해 고차원 벡터로 변환하여 벡터 DB에 저장함
- 비정형의 정형화
- PDF, 텍스트, 로그 파일 등 규칙 없는 데이터를 고정 차원(Fixed Dimension)의 실수 벡터로 변환
- 도서관의 모든 책 내용을 분석하여 특정 좌표값(x, y, z, …)을 부여하는 것과 같음
- PDF, 텍스트, 로그 파일 등 규칙 없는 데이터를 고정 차원(Fixed Dimension)의 실수 벡터로 변환
- BERT의 역할
- 문장의 앞뒤 맥락을 모두 고려하여(Bidirectional),
- 단어가 가진 다의성을 해결하고 핵심 의미를 추출
- 벡터 DB 저장
- 변환된 벡터들을 고속 검색 알고리즘(HNSW 등)으로 인덱싱하여 검색 최적화 상태를 완료
- 변환된 벡터들을 단순한 파일 시스템이 아닌, 벡터 전용 데이터베이스에 저장
- 이때 유사도 검색을 가속화하기 위한 인덱싱(HNSW 등)이 수행되어 검색 준비를 완료
- 변환된 벡터들을 고속 검색 알고리즘(HNSW 등)으로 인덱싱하여 검색 최적화 상태를 완료
- 방대한 비정형 데이터를 시스템이 즉시 탐색할 수 있는 ‘의미 지도’로 만드는 과정
- 질의의 수치화 (Query Vectorization)
- 사용자의 추상적인 질문을 시스템이 이해할 수 있는 ‘수학적 타겟’으로 변환하는 실시간 프로세스
- 사용자의 질문이 들어오면 실시간으로 동일한 임베딩 모델을 사용하여 벡터화를 수행함
- 사용자의 질문이 들어오면 실시간으로 동일한 임베딩 모델을 사용하여 벡터화를 수행함
- 실시간 변환 (Real-time Transformation)
- 사용자가 질문(예: “작년 스마트팩토리 A라인의 불량률 원인은?”)을 입력하는 즉시,
이 문장은 지식 구조화(Indexing) 때와 동일한 임베딩 모델을 실시간으로 통과하며 고차원 벡터로 변환됨
- 모델 일치성(Consistency)의 절대성:
- 이 과정은 전체 RAG 시스템의 규격(Standard) 역할을 수행함
- 저장(Indexing)할 때 사용한 임베딩 모델과 질문을 변환하는 임베딩 모델은 반드시 토큰 매핑 규격(Standard)이 일치해야 함
- 만약 데이터 적재 시점과 질문 변환 시점의 임베딩 모델이 다르면,
- 같은 단어라도 고차원 공간 상에 전혀 다른 좌표값으로 플로팅되어 검색 시스템이 완전히 붕괴
- 이 과정은 전체 RAG 시스템의 규격(Standard) 역할을 수행함
- 의도 추출:
- 임베딩 모델은 질문에 포함된 단어의 표면적 형태가 아닌, 질문의 내포된 ‘맥락과 의도’를 수치 공간 상의 특정 위치로 치환함
- 이를 통해 사용자가 명확한 기술 용어를 모른 채 “장비가 자꾸 버벅거리고 멈추는데 왜 이래?”라고 모호하게 질문하더라도,
- 모델이 그 의도를 추출하여 벡터 공간 내 “로그 데이터 오류”, “모터 과열 상태” 군집(Cluster) 근처로 좌표를 찍어 물리적 매칭을 성공시킴
- 키워드 검색의 한계를 극복하는 핵심 메커니즘
- 사용자의 추상적인 질문을 시스템이 이해할 수 있는 ‘수학적 타겟’으로 변환하는 실시간 프로세스
- 수학적 매칭 및 리랭킹 (Similarity Search & Reranking)
- 벡터 공간 상에서 질문과 가장 가까운 지식을 찾아내는 ‘기하학적 연산’ 및 ‘필터링’ 단계
- 질문 벡터와 DB 내 문서 벡터 간의 코사인 유사도 등을 계산하여 가장 관련 있는 컨텍스트를 추출함
- 코사인 유사도(Cosine Similarity):
- 두 벡터 사이의 사잇각을 측정하여 방향성의 일치도를 판별
- 수학적으로는 두 벡터의 내적(\(A \cdot B\))을 각 크기의 곱으로 나눈 값(\(\cos \theta\))
- 이 값이 1에 가까울수록 두 문장의 의미적 의도가 일치함을 뜻함
- 2-Stage Retrieval:
- 속도가 빠른 1차 임베딩 모델(Bi-Encoder)로 대량의 후보군(Top-k)을 고속 인덱싱 검색한 후,
- 문맥 교차 분석 능력이 뛰어난 Reranker(Cross-Encoder) 모델을 사후 연산으로 결합하여
- 정답 청크를 최상단으로 재정렬함
- 의의:
- “불량률 원인”이라는 질문 벡터 근처에 있는 “공정 온도 최적화 실패”, “센서 데이터 오류” 등의 문서 조각들이
- 이 수학적 매칭을 통해 수면 위로 떠오름
- GPT로의 전달 (Context Augmentation)
- 찾아낸 고밀도 지식을 생성 모델이 읽을 수 있는 형태로 프롬프트에 삽입(Augmentation)하는 정보 보강 단계
- GPT에게 “내부 기억으로 소설을 쓰지 말고, 제공된 콘텍스트 범위 내에서만 추론하라”는 페널티(제약 조건)를 강제함으로써 할루시네이션(환각)을 아키텍처 레이어에서 방지
- GPT는 학습 데이터(내부 기억)가 아닌, 전달받은 외부 지식을 바탕으로 추론을 시작함
- 최종 생성:
- GPT(디코더)는 전달된 텍스트를 읽고
- 사용자가 이해하기 쉬운 자연스러운 문장으로 정리하여 답변을 출력
- 찾아낸 고밀도 지식을 생성 모델이 읽을 수 있는 형태로 프롬프트에 삽입(Augmentation)하는 정보 보강 단계
- 공학적 관점에서의 연결고리
- 임베딩 모델은 강력한 해시 함수(하지만 의미를 보존하는)이며,
- RAG는 그 해시값을 기반으로 실시간으로 Join 연산을 수행하여 정보를 보충하는 동적 시스템
- 결국 임베딩 모델이 언어의 의미를 정확한 좌표로 찍어주어야만, GPT라는 상담사가 올바른 자료를 읽고 정확한 답변을 내놓을 수 있음
- 이 과정에서 BERT(인코더)의 ‘정교한 이해’와 GPT(디코더)의 ‘유연한 표현’이 완벽한 시너지를 이루게 됨
- 실제 RAG를 구현할 때, “임베딩 모델(BERT)이 멍청하면 GPT가 아무리 똑똑해도 소용없다”는 점이 핵심
- Garbage In, Garbage Out
- 임베딩 모델이 질문의 의도를 잘못 파악하여 엉뚱한 문서 조각을 GPT에게 전달하면,
- GPT는 그 잘못된 정보를 바탕으로 아주 그럴싸한 거짓말(할루시네이션)을 하게 됨
- 최신 트렌드
- 최근에는 GPT-4와 같은 거대 모델 자체가 임베딩 API(
text-embedding-3-large등)를 제공하기도 하지만,- 보안이나 비용이 중요한 기업용/개인용 에이전트에서는 여전히 BERT 계열의 가벼운 오픈소스 모델(BGE, RoBERTa 등)을 임베딩 전용으로 즐겨 사용함
- 결국 RAG는 BERT의 ‘정교한 검색’과 GPT의 ‘유연한 생성’이 만나, 모델의 한계를 외부 지식으로 돌파하는 협업의 산물이라고 정의할 수 있음
1.4 RAG의 핵심 엔지니어링 메커니즘
- RAG(검색 증강 생성)의 성능을 결정짓는 핵심은 결국 ‘언어의 수학적 추상화’
- 임베딩 모델이 어떻게 비정형 데이터를 기계가 다루기 좋은 수치 체계로 변환하는지가 핵심 메커니즘
- 시맨틱 공간(Semantic Space) 생성: 의미의 기하학적 배치
- 임베딩 모델은 학습 과정을 통해 수만 개의 단어와 문장 사이의 상관관계를 학습함
- 학습을 통해 단순히 글자 모양을 비교하는 것이 아니라, 고차원 공간상에 의미에 따른 ‘좌표’를 부여
모델은 학습을 통해 “사과”와 “배”가 “자동차”보다 가깝다는 것을 n 차원 벡터 공간 내의 좌표로 표현
- 매커니즘
- 모델은 거대한 말뭉치를 학습하며 함께 자주 등장하는 단어들은 가깝게, 그렇지 않은 단어들은 멀게 배치하는 최적화 과정을 거침
- 예시
- 300차원 혹은 1536차원의 공간에서 “사과(V_apple)”와 “배(V_pear)”의 벡터 거리는 과일 군집(Cluster) 내부에 가깝게 밀집되는 반면,
- 기계 장치인 “자동차(V_car)”는 전혀 다른 서브 공간에 위치
- 의의
- 이를 통해 RAG는 “달콤한 과일 추천해줘”라는 질문에 대해,
- ‘달콤한’, ‘과일’이라는 키워드가 타겟 문서에 없더라도 그 근처 좌표에 있는 “사과”나 “배” 관련 청크/문서를 찾아낼 수 있음
- 고정 차원(Fixed Dimension): 시스템 정합성의 규격
- 모델마다 출력하는 벡터의 차원(예: OpenAI
text-embedding-3-small은 1536차원, 오픈소스bge-m3는 1024차원)이 고정되어 있음 - 이는 인프라 구축 시 벡터 DB의 스키마 및 임베딩 모델 간 최적의 압축률을 정의하는 엔지니어링 규격
- 모델마다 출력하는 벡터의 차원(예: OpenAI
- Contextual Representation (문맥 동적 표현)
- 현대 임베딩 엔진은 단순히 단어 사전을 매핑하는 수준을 넘어 문장 전체의 가변 맥락을 인지, 파악하여 벡터를 생성함
- 이를 통해 단어의 중의성을 효과적으로 해결함
- 예: 금융 문서의 “은행(Bank)”과 자연 경관의 “강둑(Bank)”을 완전히 다른 좌표계로 분리하여 단어의 중의성을 해결
- 인코더와 디코더의 상호보완적 결합이 주는 시사점
- RAG(검색 증강 생성) 시스템은
- 언어를 수학적 기하학 공간으로 분해하는 인코더(Encoder; BERT 계열)의 ‘정교한 검색 능력’과,
- 추출된 수학적 조각들을 다시 인간의 언어로 조립해 내는 디코더(Decoder; GPT 계열)의 ‘유연한 표현 능력’이 결합한
- 아키텍처적 협업의 산물
- 공학적 관점에서 RAG의 성공 여부는
- 생성 모델의 크기(Parameter)보다,
- 첫 단추인 임베딩 모델이 데이터와 사용자 질문의 숨은 의도를 얼마나 정밀한 좌표(Vector)로 변환해 주었는가에 100% 종속됨
- Garbage In, Garbage Out:
- 임베딩 모델이 문맥 파악에 실패하여 엉뚱한 문서 좌표를 반환하면,
- 아무리 똑똑한 GPT-4o나 Claude 같은 초거대 모델이라 할지라도
- 전달받은 거짓 콘텍스트를 기반으로 아주 정교하고 그럴싸한 환각(Hallucination) 답변을 생성하게 될 뿐
- 성공적인 엔터프라이즈 에이전트 및 RAG 인프라를 설계하려면
- 글로벌 리더보드(MTEB) 상에서
- 한국어 및 도메인 특화 용어(스마트팩토리, 금융, 법률 등)의 분별력이 검증된 임베딩 모델을 선별하고,
- 필요에 따라 임베딩 가중치를 미세조정(Fine-Tuning)하거나
- 고성능 리랭커(Reranker) 아키텍처를 전방에 배치하는 전략적 접근이 필수
