RAG(Retrieval-Augmented Generation, 검색 증강 생성)는 LLM의 정적인 학습 데이터 한계를 극복하기 위해 추론 시점에 외부 문서를 검색해 컨텍스트로 주입하는 기술이다. 환각(hallucination) 감소, 최신 정보 활용, 도메인 특화 지식 접근이 가능하며 현재 기업 AI 시스템의 핵심 패턴으로 자리잡았다.
등장 배경
LLM은 학습 데이터 범위 밖의 정보(최신 뉴스, 내부 문서, 전문 지식)에 대해 그럴듯하지만 잘못된 답변을 생성하는 환각 문제를 갖는다. 파인튜닝(fine-tuning)은 정적 지식 업데이트에만 효과적이고 비용이 높다. RAG는 검색 → 증강 → 생성의 세 단계로 이 문제를 해결한다.
기본 파이프라인
사용자 쿼리
↓
[검색] 벡터 DB에서 관련 청크 k개 검색
↓
[증강] 검색된 청크를 프롬프트에 삽입
↓
[생성] LLM이 컨텍스트 기반 응답 생성주요 구성 요소
| 컴포넌트 | 설명 | 대표 도구 |
|---|---|---|
| 문서 청킹(chunking) | 문서를 의미 단위로 분할 | LangChain, LlamaIndex |
| 임베딩(embedding) | 텍스트를 벡터로 변환 | OpenAI text-embedding, BGE |
| 벡터 DB | 유사도 검색 저장소 | Pinecone, Weaviate, pgvector |
| 리랭커(reranker) | 검색 결과 재순위 | Cohere Rerank, cross-encoder |
| LLM | 최종 응답 생성 | GPT-4, Claude, Gemini |
RAG의 진화
| 세대 | 특징 |
|---|---|
| Naive RAG | 단순 벡터 검색 + 생성 |
| Advanced RAG | 리랭킹, 쿼리 확장, 하이브리드 검색 |
| Modular RAG | 컴포넌트 교체 가능, 파이프라인 커스터마이즈 |
| Long-Context RAG | 100만 토큰 컨텍스트 활용, 컨텍스트 캐싱 |
| GraphRAG | 지식 그래프 기반 관계형 검색 (lightrag) |
한계와 해결 방안
“Lost in the Middle” 문제: 프롬프트 중간의 정보는 LLM이 무시하는 경향이 있다. → 가장 관련성 높은 문서를 프롬프트 앞뒤에 배치하는 리랭킹으로 해결.
비용 문제: 매번 수십만 토큰을 처리하는 것은 비효율적. → 정적 문서에 대한 컨텍스트 캐싱(context caching)으로 해결.
관련 문서
- lightrag — 지식 그래프 기반 GraphRAG 구현
- inference-caching — 추론 비용과 지연 시간을 줄이는 캐시 전략
- rag-tips-long-context — 장문 컨텍스트에서 효율적인 RAG 5가지 기법