[논문 리뷰] Corrective Retrieval Augmented Generation (CRAG)

smj·2026년 3월 31일

review

목록 보기
27/30

한줄 요약: 검색 결과의 품질을 {Correct, Ambiguous, Incorrect}로 평가하고, 부정확할 경우 웹 검색으로 전환하는 자기 교정 RAG로, 기존 RAG의 노이즈 문제를 체계적으로 해결했다.

항목내용
저자Shi-Qi Yan, Jia-Chen Gu, Yun Zhu, Zhen-Hua Ling
소속University of Science and Technology of China
발표AAAI 2024
링크arxiv.org/abs/2401.15884
키워드RAG, Corrective Retrieval, Self-Correction, Web Search

1. 문제 정의

Naive RAG의 치명적 가정: "검색이 항상 관련 문서를 반환한다"

현실:
  검색 쿼리가 모호 → 무관한 문서 반환
  지식 베이스에 정보 없음 → 부분적으로만 관련된 문서
  임베딩 유사도 높지만 의미 무관 → false positive

결과:
  무관한 문서가 컨텍스트에 포함 → LLM이 이를 기반으로 생성 → 환각
  "검색하지 않았을 때보다 검색해서 더 나빠지는" 상황 발생

2. 제안 방법

검색 평가기 (Retrieval Evaluator)

경량 T5 모델을 학습하여 검색 결과를 3단계로 평가:

  Correct:    검색 문서가 질문에 대한 답을 포함
  Incorrect:  검색 문서가 질문과 무관
  Ambiguous:  부분적으로 관련되지만 불충분

판단 기준: 검색 문서 전체의 신뢰도 점수
  모든 문서의 점수 > 상한 → Correct
  모든 문서의 점수 < 하한 → Incorrect
  중간 → Ambiguous

3가지 행동 전략

Case 1: Correct
  → 지식 정제(Knowledge Refinement)
  → 문서에서 핵심 정보만 추출, 노이즈 제거
  → 정제된 정보로 생성

Case 2: Incorrect
  → 검색 결과 폐기
  → 웹 검색(Google/Bing)으로 전환
  → 웹 결과에서 관련 정보 추출 후 생성

Case 3: Ambiguous
  → 두 경로를 모두 실행
  → 원래 검색 결과의 정제 + 웹 검색 보완
  → 두 결과를 결합하여 생성

지식 정제 (Knowledge Refinement)

검색된 문서에서 노이즈 제거:
  1. 문서를 문장 단위로 분할
  2. 각 문장의 질문 관련도 점수 계산
  3. 관련도 낮은 문장 필터링
  4. 남은 문장만으로 컨텍스트 구성

효과:
  원본 문서: 500 단어 (30%만 관련)
  정제 후: 150 단어 (90% 관련)
  → LLM이 핵심 정보에만 집중

3. 실험 결과

3.1 Short-form QA

방법PopQATriviaQABiography
No Retrieval21.3%55.7%
Standard RAG36.9%58.4%71.2
Self-RAG54.9%63.2%74.1
CRAG59.3%65.8%77.3

→ Self-RAG 대비 4-5%p 추가 향상

3.2 검색 품질별 효과

검색 품질이 높을 때 (관련 문서 존재):
  Standard RAG: 72.1%
  CRAG:         74.5%  (지식 정제로 소폭 향상)

검색 품질이 낮을 때 (무관 문서만 검색):
  Standard RAG: 12.3%  ← 환각 심각
  CRAG:         48.7%  ← 웹 검색 전환으로 대폭 구제

→ CRAG의 핵심 가치: 검색 실패 시의 안전망

3.3 어블레이션

변형PopQA
CRAG (full)59.3%
− 웹 검색 전환 제거51.2%
− 지식 정제 제거55.7%
− 검색 평가기 제거 (항상 Correct 가정)38.1%

검색 평가기가 가장 핵심 — "검색 결과를 의심하는 것"이 핵심 기여


4. 한계점

  • 웹 검색 의존: Incorrect 판정 시 웹 검색 필요 → 프라이빗 환경(오프라인, 내부 문서)에서는 대안 없음
  • 검색 평가기 학습 비용: T5 기반 평가기를 별도 학습해야 함 → 도메인별 재학습 필요
  • 지연 증가: 평가 + 조건부 웹 검색 → Naive RAG 대비 1.5-2배 지연
  • 3단계 분류의 거칠기: Correct/Ambiguous/Incorrect만으로는 미묘한 품질 차이를 포착 못함
  • 웹 검색 결과의 신뢰성: 웹 정보가 항상 정확하지 않음 → 2차 환각 위험
  • Self-RAG와의 통합: 두 접근을 결합하면 이상적이지만, 구현 복잡도 증가

5. 의의와 영향

  • "검색 결과를 검증한다"는 RAG의 핵심 누락 단계를 체계화
  • Self-RAG(검색 여부 판단)와 상보적: Self-RAG → "검색할까?" + CRAG → "검색 결과가 좋은가?"
  • 프로덕션 RAG 시스템에서 검색 품질 모니터링의 필요성 제시
  • LangGraph 등 프레임워크에서 "Corrective RAG" 패턴으로 공식 예제화
  • 후속 연구: Adaptive-RAG, Active RAG 등 자기 교정 RAG의 발전 기반

6. 💬 리뷰어 코멘트

CRAG의 핵심 교훈은 "검색을 신뢰하지 마라"이다. 기존 RAG는 검색 결과를 무조건 사용했지만, 현실에서 검색 정확도는 60-80% 수준이다. 나머지 20-40%의 경우에 환각이 발생한다. CRAG는 이 "나머지"를 처리하는 안전망이다.

Self-RAG + CRAG의 조합이 가장 강력한 RAG 패턴이라고 생각한다:
1. Self-RAG: "이 질문에 검색이 필요한가?" → 불필요한 검색 방지
2. CRAG: "검색 결과가 충분한가?" → 부족하면 웹 검색 보완
3. Self-RAG: "생성 결과가 근거에 기반하는가?" → 환각 검증

이 3단계 파이프라인이 현재 프로덕션 RAG의 best practice에 가장 가깝다.


관련 논문: Self-RAG, Adaptive-RAG, Active RAG, FLARE

0개의 댓글