contents

검색 증강 생성(Retrieval-Augmented Generation, RAG) 은 거대 언어 모델(LLM)이 응답을 생성하기 전에 외부의 최신 지식 소스에 연결하여 그 능력을 향상시키는 강력한 기술입니다.

마치 닫힌 책 시험과 오픈북 시험의 차이와 같습니다. 일반적인 LLM은 훈련된 정보(자신의 "기억")에만 의존하는 닫힌 책 시험을 치릅니다. 반면 RAG 기반 LLM은 오픈북 시험을 치르는 것과 같습니다. 질문에 답하기 직전에 교과서(지식 베이스)에서 관련 사실을 찾아볼 수 있습니다.


RAG가 해결하는 핵심 문제점

RAG는 표준 LLM의 몇 가지 근본적인 한계를 해결하기 위해 설계되었습니다.

  1. 지식 단절 (Knowledge Cutoff): LLM은 훈련 데이터 수집이 끝난 이후에 발생한 사건에 대해서는 알지 못합니다. 2023년까지 훈련된 모델은 2024년 슈퍼볼 우승팀을 알려줄 수 없습니다.

  2. 환각 (Hallucinations): LLM은 답을 모를 때, 그럴듯하게 들리지만 사실이 아닌 답변을 지어내는 경향이 있습니다.

  3. 특정 도메인 지식 부족: 일반적인 인터넷 데이터로 훈련된 LLM은 회사의 내부 정책, 최신 제품 사양, 또는 비공개 문서의 특정 세부 사항을 알지 못합니다.

  4. 출처 추적 불가: 표준 LLM은 출처를 인용할 수 없어 답변을 검증하기 어렵습니다.

RAG는 쿼리가 발생하는 바로 그 순간에 모델을 사실적이고 시의적절하며 관련성 있는 데이터에 근거하게 함으로써 이러한 모든 문제를 직접적으로 완화합니다.


RAG의 작동 방식: 상세 워크플로우 🧠

RAG 시스템은 오프라인 인덱싱 단계와 온라인 검색 및 생성 단계의 두 가지 주요 단계로 작동합니다.

1단계: 인덱싱 (지식 라이브러리 준비) 📚

이는 지식 베이스에 대해 한 번 수행하는 설정 과정입니다.

  1. 데이터 로드: LLM이 알기를 원하는 문서 모음(회사의 위키, 제품 매뉴얼, 법률 계약서, 과학 논문 모음 등)에서 시작합니다.

  2. 청킹 (Chunking): 문서를 더 작고 관리하기 쉬운 조각(예: 단락 또는 문장)으로 나눕니다. 전체 긴 문서가 아닌 가장 관련성 높은 작은 정보 조각을 검색할 것이기 때문에 이 과정은 매우 중요합니다.

  3. 임베딩 (Embedding): 각 조각을 임베딩 모델에 입력합니다. 이 모델은 텍스트 조각을 그 의미적 의미를 포착하는 수치적 벡터(숫자 목록)로 변환합니다.

  4. 인덱싱 (Indexing): 이 벡터들을 전문 벡터 데이터베이스에 로드합니다. 이 데이터베이스는 유사한 벡터를 매우 빠르게 검색할 수 있는 인덱스(일반적으로 HNSW와 같은 알고리즘 사용)를 생성합니다.

이 단계가 끝나면, 모든 정보 조각이 벡터로 표현된 검색 가능한 지식 라이브러리가 생성됩니다.

2단계: 검색 및 생성 (질문에 답변하기) 🔍

이는 사용자가 쿼리를 제출할 때 실시간으로 발생하는 과정입니다.

  1. 사용자 쿼리: 사용자가 질문을 하면서 프로세스가 시작됩니다(예: "우리 회사의 육아휴직 정책은 무엇인가요?").

  2. 쿼리 임베딩: 사용자의 질문이 인덱싱 단계에서 사용된 _동일한 임베딩 모델_을 사용하여 벡터로 변환됩니다.

  3. 관련 컨텍스트 검색: 시스템이 벡터 검색을 수행합니다. 쿼리 벡터를 사용하여 벡터 데이터베이스에서 가장 유사한 벡터를 가진 문서 조각들을 찾습니다. 가장 관련성이 높은 상위 k개의 조각(예: 상위 3개 또는 5개)을 검색합니다.

  4. 프롬프트 증강: 이것이 핵심적인 "증강" 단계입니다. 검색된 텍스트 조각들을 원래의 사용자 쿼리와 결합하여 새롭고 확장된 프롬프트를 만듭니다. 이 프롬프트는 LLM에게 지시하도록 신중하게 구조화됩니다. 예를 들면 다음과 같습니다.

    "컨텍스트: [여기에 육아휴직 정책에 대해 검색된 텍스트가 들어갑니다...]

    위에 제공된 컨텍스트를 바탕으로 다음 질문에 답하세요: 우리 회사의 육아휴직 정책은 무엇인가요?"

  5. 응답 생성: 이 최종적으로 증강된 프롬프트가 LLM에 전송됩니다. 이제 LLM은 질문에 정확하게 답하는 데 필요한 모든 구체적이고 사실적인 정보를 갖게 됩니다. 제공된 컨텍스트에 근거하여 응답을 생성하며, 종종 사용한 출처를 인용하기도 합니다.


RAG 시스템의 핵심 구성 요소


RAG가 강력한 이유 ✅

references