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에 저장함

    • 비정형의 정형화
      • PDF, 텍스트, 로그 파일 등 규칙 없는 데이터를 고정 차원(Fixed Dimension)의 실수 벡터로 변환
        • 도서관의 모든 책 내용을 분석하여 특정 좌표값(x, y, z, …)을 부여하는 것과 같음
    • BERT의 역할
      • 문장의 앞뒤 맥락을 모두 고려하여(Bidirectional),
      • 단어가 가진 다의성을 해결하고 핵심 의미를 추출
    • 벡터 DB 저장
      • 변환된 벡터들을 고속 검색 알고리즘(HNSW 등)으로 인덱싱하여 검색 최적화 상태를 완료
        • 변환된 벡터들을 단순한 파일 시스템이 아닌, 벡터 전용 데이터베이스에 저장
        • 이때 유사도 검색을 가속화하기 위한 인덱싱(HNSW 등)이 수행되어 검색 준비를 완료
  • 질의의 수치화 (Query Vectorization)
    • 사용자의 추상적인 질문을 시스템이 이해할 수 있는 ‘수학적 타겟’으로 변환하는 실시간 프로세스
      • 사용자의 질문이 들어오면 실시간으로 동일한 임베딩 모델을 사용하여 벡터화를 수행함

    • 실시간 변환 (Real-time Transformation)
      • 사용자가 질문(예: “작년 스마트팩토리 A라인의 불량률 원인은?”)을 입력하는 즉시,
      • 이 문장은 지식 구조화(Indexing) 때와 동일한 임베딩 모델을 실시간으로 통과하며 고차원 벡터로 변환됨

      • 모델 일치성(Consistency)의 절대성:
        • 이 과정은 전체 RAG 시스템의 규격(Standard) 역할을 수행함
          • 저장(Indexing)할 때 사용한 임베딩 모델과 질문을 변환하는 임베딩 모델은 반드시 토큰 매핑 규격(Standard)이 일치해야 함
        • 만약 데이터 적재 시점과 질문 변환 시점의 임베딩 모델이 다르면,
          • 같은 단어라도 고차원 공간 상에 전혀 다른 좌표값으로 플로팅되어 검색 시스템이 완전히 붕괴
    • 의도 추출:
      • 임베딩 모델은 질문에 포함된 단어의 표면적 형태가 아닌, 질문의 내포된 ‘맥락과 의도’를 수치 공간 상의 특정 위치로 치환함
      • 이를 통해 사용자가 명확한 기술 용어를 모른 채 “장비가 자꾸 버벅거리고 멈추는데 왜 이래?”라고 모호하게 질문하더라도,
      • 모델이 그 의도를 추출하여 벡터 공간 내 “로그 데이터 오류”, “모터 과열 상태” 군집(Cluster) 근처로 좌표를 찍어 물리적 매칭을 성공시킴
      • 키워드 검색의 한계를 극복하는 핵심 메커니즘
  • 수학적 매칭 및 리랭킹 (Similarity Search & Reranking)
    • 벡터 공간 상에서 질문과 가장 가까운 지식을 찾아내는 ‘기하학적 연산’ 및 ‘필터링’ 단계
    • 질문 벡터와 DB 내 문서 벡터 간의 코사인 유사도 등을 계산하여 가장 관련 있는 컨텍스트를 추출함

    • 코사인 유사도(Cosine Similarity):
      • 두 벡터 사이의 사잇각을 측정하여 방향성의 일치도를 판별
      \[\text{Cosine Similarity}(A, B) = \frac{A \cdot B}{\|A\| \|B\|} = \cos\theta\]
      • 수학적으로는 두 벡터의 내적(\(A \cdot B\))을 각 크기의 곱으로 나눈 값(\(\cos \theta\))
      • 이 값이 1에 가까울수록 두 문장의 의미적 의도가 일치함을 뜻함
    • 2-Stage Retrieval:
      • 속도가 빠른 1차 임베딩 모델(Bi-Encoder)로 대량의 후보군(Top-k)을 고속 인덱싱 검색한 후,
      • 문맥 교차 분석 능력이 뛰어난 Reranker(Cross-Encoder) 모델을 사후 연산으로 결합하여
      • 정답 청크를 최상단으로 재정렬함
    • 의의:
      • “불량률 원인”이라는 질문 벡터 근처에 있는 “공정 온도 최적화 실패”, “센서 데이터 오류” 등의 문서 조각들이
      • 이 수학적 매칭을 통해 수면 위로 떠오름
  • GPT로의 전달 (Context Augmentation)
    • 찾아낸 고밀도 지식을 생성 모델이 읽을 수 있는 형태로 프롬프트에 삽입(Augmentation)하는 정보 보강 단계
      • GPT에게 “내부 기억으로 소설을 쓰지 말고, 제공된 콘텍스트 범위 내에서만 추론하라”는 페널티(제약 조건)를 강제함으로써 할루시네이션(환각)을 아키텍처 레이어에서 방지
      • GPT는 학습 데이터(내부 기억)가 아닌, 전달받은 외부 지식을 바탕으로 추론을 시작함
    • 최종 생성:
      • GPT(디코더)는 전달된 텍스트를 읽고
      • 사용자가 이해하기 쉬운 자연스러운 문장으로 정리하여 답변을 출력


  • 공학적 관점에서의 연결고리
    • 임베딩 모델강력한 해시 함수(하지만 의미를 보존하는)이며,
    • 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의 스키마 및 임베딩 모델 간 최적의 압축률을 정의하는 엔지니어링 규격
  • 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) 아키텍처를 전방에 배치하는 전략적 접근이 필수

© 2020. AiDALab Co. All rights reserved.

Powered by Hydejack v9.2.1