Skip to main content

RAG — 검색 증강 생성

LLM의 한계(환각, 지식 컷오프)를 외부 데이터 검색으로 보완하는 아키텍처


1. RAG란

1.1 왜 RAG인가

LLM 한계RAG의 해결
환각 (Hallucination)실제 문서에서 검색한 정보를 근거로 답변
지식 컷오프최신 문서를 실시간 검색
도메인 지식 부족사내 문서/매뉴얼을 검색
출처 불명답변의 출처(문서 위치)를 함께 제공

1.2 기본 아키텍처


2. 청킹 전략

문서를 적절한 크기로 분할하는 것이 RAG 성능의 핵심.

전략방법장단점
고정 크기500토큰씩 자르기 (오버랩 포함)간단하지만 문맥 단절 가능
문단 기반문단/섹션 단위로 분할의미 단위 유지, 크기 불균일
재귀적큰 단위(섹션)에서 작은 단위(문장)로 점진 분할✅ LangChain 기본. 균형적
시맨틱임베딩 유사도 기반으로 의미가 바뀌는 지점에서 분할가장 정교, 비용 높음

청킹 팁:

  • 청크 크기: 보통 500~1,000 토큰
  • 오버랩: 50~200 토큰 (문맥 유지)
  • 메타데이터: 출처(파일명, 페이지, URL)를 청크에 포함

3. 검색 품질 향상

벡터 검색(의미) + 키워드 검색(BM25)을 결합.

벡터 검색키워드 검색Hybrid
"인프라 아키텍처"의미적 유사 문서정확한 키워드 매칭✅ 둘 다
동의어 처리✅ (의미 유사)❌ (다른 단어)
고유명사⚠️ 약함✅ 정확

3.2 Re-ranking

1차 검색(Vector + BM25)으로 후보를 뽑고, Cross-Encoder로 정밀 재정렬.

3.3 Query Expansion

사용자 질문이 모호할 때 질문을 확장/변환하여 검색 품질 개선.

기법설명
Multi-QueryLLM이 원래 질문에서 여러 변형 질문 생성
HyDELLM이 가상의 답변을 생성 → 그 답변으로 검색
Step-back더 일반적인 질문으로 변환 후 검색

4. Advanced RAG

기법설명
부모-자식 청킹작은 청크로 검색, 큰 청크(부모)를 LLM에 전달
문서 요약 인덱스각 문서의 요약을 임베딩. 요약으로 검색 → 원문 전달
Multi-hop RAG여러 번 검색하여 복합 질문 처리
Graph RAG문서에서 엔티티/관계 그래프를 추출하여 그래프 기반 검색
Agentic RAGAgent가 검색 전략을 동적으로 결정

5. 평가

RAGAS 프레임워크

메트릭측정 대상설명
Faithfulness답변의 충실도답변이 검색된 문서에 근거하는가
Answer Relevancy답변 관련성답변이 질문에 적절한가
Context Precision검색 정밀도검색된 문서가 관련 있는가
Context Recall검색 재현율필요한 정보가 검색되었는가

6. RAG vs Fine-tuning

상황추천이유
최신 정보/자주 변하는 데이터RAGDB만 업데이트하면 됨
모델의 행동/스타일 변경Fine-tuning모델 자체를 수정해야 함
소규모/빠른 시작RAG인프라 비용 낮음
둘 다 필요RAG + Fine-tuning파인튜닝된 모델로 RAG

다음 글

AI Agent


📝 참고 자료