1 분 소요

개요

  • LLM의 지식 한계(Knowledge Cutoff)와 환각(Hallucination)을 보완하는 기법
  • 외부 문서 DB에서 관련 정보를 검색해 LLM 컨텍스트에 삽입 후 응답 생성
  • 바른 정보 행동 도움: 출처 제시 가능, 최신 정보 반영
  • 파인튜닝 대비 돈/시간 비용이 낮고, 문서 추가만으로 지식 확장 가능


기본 파이프라인

사용자 질문
  -> 임베딩 모델 (쿼리 벡터화)
  -> 벡터 유사도 검색 (Top-k 문서)
  -> [질문 + 검색 문서] 프롬프트 조합
  -> LLM 응답 생성
  -> 사용자에게 반환


주요 구성 요소

임베딩 모델 (Embedding Model)

  • 텍스트를 고차원 벡터로 변환, 의미적으로 유사한 텍스트는 벡터 공간에서 가깝게 위치
  • 주요 임베딩 모델
    • OpenAI: text-embedding-3-small, text-embedding-3-large
    • Hugging Face: BAAI/bge-m3, intfloat/e5-large-v2
    • 한국어: jhgan/ko-sroberta-multitask

벡터 데이터베이스

리트리버 (Retriever)

  • Sparse Retriever: BM25 기반 키워드 검색
  • Dense Retriever: 벡터 유사도 기반 의미론적 검색
  • Hybrid: 두 방식을 결합해 검색 품질 향상


고급 RAG 기법

  • Naive RAG → Advanced RAG → Modular RAG 순으로 진화
  • HyDE (Hypothetical Document Embeddings): 질문에 맞는 가상 답변을 생성 후 검색 품질 향상
  • Re-ranking: 검색 결과를 재정렬 (Cross-Encoder 활용)
  • Query Expansion: 질문 다양화로 검색 커버리지 향상
  • Self-RAG: LLM이 스스로 검색 필요성 판단 및 답변 품질 평가
  • Corrective RAG (CRAG): 검색 품질을 평가하여 웹 검색으로 보완


Fine-tuning vs RAG

항목 Fine-tuning RAG
최신 정보 반영 재학습 필요 문서 추가만으로 가능
비용 높음 낮음
도메인 특화 강함 보통
투명성 낮음 높음 (출처 제시)
보안 모델에 내장 문서 도실 위험 관리 필요


주요 도구

  • LangChain: RAG 파이프라인 구축의 사실상 표준
  • LlamaIndex: 데이터 연결 및 RAG에 특화
  • Haystack: 엔터프라이즈 시맨틱 검색 프레임워크


관련 포스트