
이전 Part 2에서 다룬 Self-RAG는 모델 스스로 검색 시점을 판단하고 가져온 문서를 성찰(Reflection)하며 환각을 억제하는 혁신적인 방법이었습니다. 하지만 이 시스템에도 치명적인 전제가 하나 있습니다. 바로 "검색 엔진이 가져온 문서 중에 최소한 하나는 정답이 섞여 있어야 한다"는 점입니다.
만약 검색 엔진이 찾아온 문서들이 전부 엉뚱한 내용이거나, 사내 데이터베이스(Static Corpus)에 아예 정답이 존재하지 않는다면 어떻게 될까요? 컴퓨터 과학의 격언인 '가비지 인, 가비지 아웃(Garbage In, Garbage Out)'은 RAG에도 그대로 적용됩니다. 아무리 똑똑한 모델이라도 쓰레기 같은 정보만 쥐여주면 결국 정교한 환각을 만들어낼 수밖에 없습니다.
중국 과학기술대학교(USTC), 구글 딥마인드, UCLA 연구진이 발표한 "Corrective Retrieval Augmented Generation (CRAG)"는 바로 이 '검색 실패(Retrieval Failure)' 상황을 스스로 교정(Correct)하여 답변의 견고함을 극대화하는 아키텍처입니다.
기존 RAG는 검색기가 가져온 문서를 별도의 검증 없이 생성기(LLM)에 전달합니다. 하지만 CRAG는 검색기와 생성기 사이에 문서의 품질을 엄격히 판별하는 '검색 평가기(Retrieval Evaluator)'라는 전략적 문지기를 배치합니다.
이 평가기는 단순히 기존 모델에 프롬프트를 입력해 만든 것이 아닙니다. RAG의 고질적인 한계인 '검색 실패'를 극복하기 위해 특수 목적으로 직접 설계하고 미세 조정(Fine-tuning)한 독자적인 경량 모델입니다.
아키텍처: 초경량 모델 T5-Large(0.77B)의 효율성
연구진은 평가기의 뼈대(Backbone)로 구글이 개발한 T5-Large 모델을 채택했습니다. 파라미터 수가 단 7.7억 개(0.77B)에 불과하여, 이전 Part 2에서 다루었던 Self-RAG의 비판 모델(Llama-2 7B)과 비교하면 크기가 약 1/10 수준에 불과합니다. 이는 실제 서비스 파이프라인 중간에 배치되더라도 응답 지연 시간(Latency)이나 연산 비용을 거의 발생시키지 않는 압도적인 실무적 강점을 제공합니다.
학습 데이터: 교묘한 오답(Hard Negatives)을 걸러내는 훈련
이 작은 모델이 범용 거대 모델을 뛰어넘는 정확한 판별력을 갖춘 비결은 정교한 학습 데이터 구성에 있습니다. 연구진은 PopQA와 같은 질의응답 데이터셋(약 14,000개)을 기반으로 평가기를 학습시켰습니다.
평가기는 질문과 '개별 검색 문서'를 짝지어 읽은 후, -1점에서 1점 사이의 신뢰도 점수(Confidence Score)를 회귀(Regression) 방식으로 예측합니다. 이렇게 도출된 점수 분포에 따라 CRAG는 다음 세 가지 경로 중 하나를 선택합니다.
평가기가 '정확함' 판정을 내렸더라도 문제는 남습니다. 방대한 위키백과 문서에서 정작 필요한 정보는 한두 줄뿐이며, 나머지 80%의 문맥은 모델의 주의력을 분산시키는 노이즈가 될 수 있기 때문입니다. CRAG는 이를 해결하기 위해 정교한 정제 알고리즘을 가동합니다.
평가기가 '부정확함' 판정을 내렸다는 것은 사내 DB나 정적인 코퍼스(Static Corpora)에 답이 없음을 의미합니다. 기존 RAG는 여기서 환각을 일으키거나 침묵해야 했지만, CRAG는 웹 검색을 전략적 도구로 활용해 돌파구를 찾습니다.
먼저 사용자의 질문을 검색 엔진이 잘 이해할 수 있도록 핵심 키워드 중심의 쿼리로 재작성(Rewriting)합니다. 이후 구글 검색 API 등을 호출하여 정보를 수집하는데, 이때 정보의 신뢰성을 위해 위키백과와 같은 권위 있는 출처를 최우선으로 우대(Preferential)하여 수집합니다. 이렇게 수집된 웹 페이지 내용 역시 '지식 정제' 과정을 거쳐 노이즈가 제거된 외부 지식(External Knowledge)으로 모델에 주입됩니다.
이전 시리즈에서 강조한 System-2 Thinking(자가 검증 및 교정)의 철학은 CRAG에서 '자료 조사' 영역까지 확장됩니다.
CRAG를 통해 우리는 잘못된 정보 유입을 차단하고 부족한 지식을 보완하는 법을 배웠습니다. 하지만 여전히 해결되지 않은 문제가 있습니다. 만약 질문이 "A와 B의 관계는 무엇인가?" 혹은 "이 데이터셋 전체의 핵심 주제는 무엇인가?"와 같이 전체 데이터를 가로지르는 거시적인 통찰을 요구한다면 어떻게 될까요?
기존의 벡터 검색 방식으로는 파편화된 문서 몇 개만 가져올 뿐, 데이터 간의 연결 고리를 파악하기 어렵습니다. 다음 [Part 4. 단순 팩트 검색을 넘어 전체 맥락을 꿰뚫다 (GraphRAG)] 편에서는 지식 그래프를 이용해 데이터의 계층적 구조를 파악하고, 방대한 문서 전체를 아우르는 통찰을 환각 없이 생성하는 최신 아키텍처를 살펴보겠습니다.