RAG는 왜 환각을 일으키나: 감점 기반 평가와 Knowledge-Gap Canary
Why RAGs Hallucinate: Penalty-Aware Evaluation of Retrieval-Augmented Generation Systems with Knowledge-Gap Canaries
TL;DR Highlight
틀리면 -4점으로 채점하고 KB에 없는 질문을 던졌더니, RAG 제품 간 답변 억제 정책 차이가 드러났다
Who Should Read
사내 문서 RAG 챗봇이 문서에 없는 질문에도 그럴듯하게 답해서 고민인 백엔드 개발자
Core Mechanics
- 정확도만 보면 RAG끼리 비슷하다
- 답변을 시도한 건 중 정답률은 97.0~98.0%로 세 제품이 거의 같았다.
- 차이는 정답률이 아니라 '답하지 말아야 할 때 답하느냐'에서 났다.
- 정답만 세는 채점은 찍기를 보상한다
- 맞으면 +1, 틀려도 0이면 모르는 질문에도 찍는 쪽이 유리하다.
- 논문은 맞으면 +1, 틀리면 -4, 기권 0으로 채점해 80% 이상 확신할 때만 답하는 쪽이 이득이 되게 했다.
- Canary로 문서 밖 답변을 잡아낸다
- Canary는 정답이 지식베이스(KB)에 없다고 확인된 질문이다.
- 이런 질문에 답하면 정답이어도 모델 내부 기억에서 꺼낸 것이라 위반으로 친다.
- Canary 위반율이 제품마다 6배 갈렸다
- Gemini RAG는 canary 시도의 98.1%에 답했고 CustomGPT.ai RAG는 16.7%, OpenAI RAG는 22.2%였다.
- Gemini는 정확도가 0.968로 가장 높았지만 감점 점수에서는 순위가 내려갔다.
- 환각은 버그보다 '답할지 말지' 정책 문제다
- CustomGPT.ai는 검색 결과가 비면 거절하는 정책에 가까웠다(비-canary 기권 289건 중 258건, 89%).
- Gemini는 검색 결과와 무관하게 거의 항상 답했다.
Evidence
- Canary 위반율 16.7% 대 98.1%
- SimpleQA-Verified 1,000문항 중 18개 canary를 3회 반복한 54회 시도 기준이다.
- CustomGPT.ai 16.7%, OpenAI 22.2%, Gemini 98.1%였다.
- 정확도 순위와 감점 점수 순위가 뒤집혔다
- 정확도는 Gemini 0.968, OpenAI 0.948, CustomGPT.ai 0.866 순이었다.
- Q(k=4)는 OpenAI +0.862, Gemini +0.793, CustomGPT.ai +0.767 순이었다.
- 기권율은 50배 넘게 차이 났다
- CustomGPT.ai 11.1%, OpenAI 3.3%, Gemini 0.2%였다.
- 시도 건 정답률은 각각 97.5%, 98.0%, 97.0%였다.
- 감점을 키우면 Gemini가 밀린다
- k=9(확신도 90% 기준)에서 Q는 OpenAI +0.757, CustomGPT.ai +0.645, Gemini +0.588이었다.
- OpenAI는 k=1~9 모든 설정에서 1위였다.
How to Apply
- 내 RAG 평가셋에 canary 질문 10개 넣기
- KB에 답이 없다고 직접 확인한 질문을 골라 챗봇에 던지고 거절하는 비율을 세라.
- 답이 정답이어도 KB 밖에서 나온 답이면 위반으로 기록하라.
- 평가 지표를 +1/-4/0으로 바꿔 계산하기
- 기존 정답률 로그에 오답과 기권을 분리해 Q = 정답률 - 4×오답률로 다시 계산하라.
- k를 1, 2, 4, 9로 바꿔 순위가 바뀌는지 확인하라.
- 검색 결과가 비었을 때 정책을 명시하기
- 인용이나 검색 청크가 0건이면 '문서에 없다'고 답하게 시스템 프롬프트와 코드에서 강제하라.
- 오답 로그에서 근거 첨부 여부 따로 집계하기
- 오답 중 출처가 붙은 비율과 정답이 검색 컨텍스트에 있었는지를 나눠 검색 실패와 생성 실패를 구분하라.
Try It
# Claude/ChatGPT에 붙여넣기 (논문 방법의 간이 버전: canary 점검)
너는 문서 기반 Q&A 어시스턴트다. 아래 {{문서}}에 근거가 있을 때만 답하고, 근거가 없으면 정확히 "문서에서 확인할 수 없습니다"라고만 답해라. 네가 아는 일반 지식으로 답하지 마라.
[문서]
{{문서}}
[질문]
{{문서에 답이 없는 질문}}
이어서 해 볼 것: 문서에 답이 있는 질문 {{질문}}도 던져 보고, 정답은 +1, 오답은 -4, 거절은 0으로 직접 채점해 보라.Terminology
관련 논문
The Judge Can Debias Itself: LLM-as-a-Judge가 스스로 편향을 고치게 하는 법
심사 프롬프트에 편향 경고를 넣거나 스스로 비판시켰더니 21개 중 20개 조합에서 정확도가 올랐다
미국 노동시간의 90%는 AI 벤치마크가 제대로 다루지 못하는 일이다
벤치마크 29개를 직업 과제에 매핑했더니 노동시간 90%가 커버 밖
Postgres 19, AI 코드 리뷰가 버그를 너무 많이 찾아 출시 연기
LLM 코드 리뷰가 버그를 쏟아내 Postgres 19가 11월로 밀리고 기능 8~10개가 빠졌다
StarSkirmish Bench v0.2: LLM이 1시간 만에 짜는 StarCraft 봇 대결
LLM에게 1시간 동안 StarCraft 봇을 짜게 했더니 GPT-6 Astra가 1위
그럴듯한 설명 하나면 멀티모달 LLM 심사위원도 속는다 (JUPE 벤치마크)
정답은 그대로 두고 설명만 붙였더니 MLLM 심사위원의 오답 거절률이 12.7~13.8%p 떨어졌다
신경망은 이미 깔끔하다: polysemanticity의 원인 재해석
뉴런을 직접 들여다봤더니 대부분 한 가지 역할이 있었다는 주장
Linus Torvalds의 첫 LLM 보조 패치 시리즈
Linus가 LLM으로 folio 조회 패치 10개를 만들어 read() 벤치가 10배 빨라졌다
Related Resources
Original Abstract (Expand)
Volume-based accuracy rewards retrieval-augmented generation (RAG) systems for guessing: a system that answers everything outscores one that declines when its knowledge base cannot support an answer. Building on the confidence-target analysis of Kalai et al. (2025), we present a penalty-aware evaluation framework for deployed RAG products, combining (i) asymmetric scoring (correct +1, wrong -4, abstain 0), (ii) knowledge-gap canaries, questions whose answers are verifiably absent from the knowledge base, so that any answer constitutes ungrounded generation from parametric memory, and (iii) a failure-attribution pipeline that separates retrieval, generation, and abstention-policy failures. Applying the framework to three commercial RAG systems and a no-retrieval baseline on SimpleQA-Verified (1,000 questions x 3 repeats, graded blind by a cross-family three-judge panel with 98.9% unanimity), we find that accuracy when answering is closely clustered across systems (97.0-98.0%), while canary violation rates differ roughly sixfold (16.7% vs. 98.1%). The systems are separated less by what they answer correctly than by whether they answer at all when they should not, and penalty-aware scoring reorders the volume-based ranking accordingly; the reordering is stable across penalty settings from k=1 to k=9. All code, configurations, transcripts, and judge votes are released for independent audit.