RAG란?

RAG(Retrieval-Augmented Generation, 검색 증강 생성)는 LLM이 학습하지 않은 외부 지식을 실시간으로 끌어와 답변하게 하는 설계 패턴이다. 파인튜닝보다 저렴하고, 최신 정보를 즉시 반영할 수 있는 것이 핵심 장점이다.

동작 흐름

  1. 문서 청킹: 원본 문서를 500~1000 토큰 단위로 분할
  2. 임베딩: 각 청크를 벡터로 변환해 Vector DB에 저장
  3. 검색: 사용자 질문도 벡터화해 유사한 청크 top-k 조회
  4. 프롬프트 조합: 검색된 청크를 컨텍스트로 LLM에 전달
  5. 생성: LLM이 해당 컨텍스트만 참고해 답변

언제 RAG가 유리한가

  • 최신 정보(뉴스, 사내 문서)가 필요할 때
  • 파인튜닝이 비용상 부담될 때
  • 근거(citation)를 답변에 포함해야 할 때

한계

  • 청킹 전략이 품질을 좌우 — 잘못 쪼개면 문맥 훼손
  • 검색 top-k가 너무 많으면 LLM이 놓치는 "Lost in the Middle" 현상
  • 한국어는 임베딩 모델 선택이 결정적 (BGE-M3, Cohere embed-v3 권장)