RAG란?
RAG(Retrieval-Augmented Generation, 검색 증강 생성)는 LLM이 학습하지 않은 외부 지식을 실시간으로 끌어와 답변하게 하는 설계 패턴이다. 파인튜닝보다 저렴하고, 최신 정보를 즉시 반영할 수 있는 것이 핵심 장점이다.
동작 흐름
- 문서 청킹: 원본 문서를 500~1000 토큰 단위로 분할
- 임베딩: 각 청크를 벡터로 변환해 Vector DB에 저장
- 검색: 사용자 질문도 벡터화해 유사한 청크 top-k 조회
- 프롬프트 조합: 검색된 청크를 컨텍스트로 LLM에 전달
- 생성: LLM이 해당 컨텍스트만 참고해 답변
언제 RAG가 유리한가
- 최신 정보(뉴스, 사내 문서)가 필요할 때
- 파인튜닝이 비용상 부담될 때
- 근거(citation)를 답변에 포함해야 할 때
한계
- 청킹 전략이 품질을 좌우 — 잘못 쪼개면 문맥 훼손
- 검색 top-k가 너무 많으면 LLM이 놓치는 "Lost in the Middle" 현상
- 한국어는 임베딩 모델 선택이 결정적 (BGE-M3, Cohere embed-v3 권장)