Minseong Code Lab
← Notes
Study NoteRAG / LLM

RAG 개념 정리

RAG의 기본 구조와 왜 필요한지, Retrieval 방식별 차이를 정리한 노트입니다.

2026-06-15
RAGBM25Dense Retrieval

RAG란

RAG(Retrieval-Augmented Generation)는 LLM이 답변을 생성하기 전에 관련 문서를 검색해서 근거로 제공하는 구조입니다.

LLM만 사용하면 생기는 문제:

  • 학습 시점 이후의 정보를 모른다
  • 사내 문서, 비공개 문서 내용을 모른다
  • 세부 수치(금액, 날짜)를 그럴듯하게 지어낼 수 있다 (환각)

RAG는 "검색된 원문"을 근거로 답하게 만들어 이 문제를 완화합니다.

기본 파이프라인

문서 → 청킹 → 임베딩 → Vector DB 저장   (인덱싱)
질문 → 검색 → 관련 chunk → LLM → 답변   (질의)

Retrieval 방식 비교

방식원리강점약점
BM25키워드 빈도 기반고유명사, 금액, 코드 등 정확한 매칭동의어·의미 유사성 못 잡음
Dense임베딩 유사도의미 기반 질문에 강함정확한 키워드 매칭에 약함
Hybrid둘을 결합(RRF 등)두 방식의 약점 상호 보완파이프라인 복잡도 증가

실전에서 배운 것

RFP-AI 실험에서 확인한 내용:

  • 문서에 고유명사·수치가 많은 도메인일수록 BM25의 기여가 큽니다 (faithfulness 0.79 → 0.91).
  • 검색 후보를 넓게 가져온 뒤 Reranker로 상위를 정리하면 context_precision이 개선됩니다.
  • "검색이 잘 되는가"와 "답변이 좋은가"는 별개 문제라 지표를 분리해서 평가해야 합니다.