판단할 수 없는 것을 인정하는 RAG 평가기
요약
RAG 시스템의 품질을 평가할 때 LLM의 추측을 배제하고 결정론적 검증을 결합하는 'rag-triad' 프레임워크를 소개합니다. 평가기가 판단할 수 없는 경우 정직하게 판단을 유보함으로써 평가의 신뢰성을 높이는 방법을 다룹니다.
핵심 포인트
- LLM-as-judge의 한계를 극복하기 위해 결정론적 체크와 결합
- 검색 실패, 환각, 주제 이탈을 구분하여 실패 지점을 국지화
- 판단 불가능한 경우 점수를 매기는 대신 판단을 유보(ABSTAIN)하는 규율 적용
- self-test 기능을 통해 평가기 자체의 신뢰성을 검증
Fail-closed groundedness (실패 시 폐쇄되는 근거성), 결정론적 확증자(deterministic corroborators), 그리고 셀프 테스트 — 평가기는 자신이 채점하는 대상보다 더 신뢰할 수 있어야 하기 때문입니다.
"LLM-as-judge" 평가의 조용한 결함
AI 출력을 점수 매기는 대부분의 도구는 LLM이 LLM을 채점하는 방식이며, 검증된 수치와 추측된 수치를 구분하지 않고 모두 동일하게 자신감 넘치는 어조로 보고합니다. 이는 평가 방식으로서 잘못되었습니다. 평가자의 온전한 역할은 자신이 채점하는 모델과 똑같이 무분별하게 믿는 것이 아니라, 그 모델보다 더 신뢰할 수 있어야 한다는 점입니다.
rag-triad는 하나의 규칙을 기반으로 구축된 검색 증강 생성 (RAG) 답변을 위한 소규모 로컬 평가기입니다: 결정론적 체크 (deterministic check)가 가능한 곳에서는 이를 활용하고, 그렇지 않은 곳에서는 — 공개적으로 — 판단을 유보하라.
단순히 점수를 매기는 것이 아니라 실패를 국지화하기
RAG 답변은 세 가지 다른 지점에서 실패합니다 — 잘못된 검색 (retrieval), 환각이 섞인 생성 (hallucinated generation), 또는 주제를 벗어난 답변 (off-topic reply) — 그리고 각각은 서로 다른 해결책이 필요합니다. 단일 품질 점수로는 이들을 구분할 수 없습니다. 하지만 triad(삼각 구도)는 가능합니다:
- 문맥 관련성 (context relevance) ✗ → 검색 실패 (retrieval miss) (청킹 / 임베딩 / top-k 수정)
- 근거성 (groundedness) ✗ → 환각 (hallucination) (생성 과정 수정, 또는 인용 및 검증 강제)
- 답변 관련성 (answer relevance) ✗ → 주제 이탈 (off-topic) (프롬프트 수정)
규율 (이것이 실제 기여점입니다)
triad 프레임워크 자체는 표준적입니다 (TruLens, RAGAS). 차별점은 다음과 같습니다:
- Fail-closed groundedness (실패 시 폐쇄되는 근거성) — 판사는 반드시 인용구를 제시해야 합니다. 코드가 해당 내용이 문맥(context)에 있는지 검증하므로, 조작된 인용구는 통과할 수 없습니다. 최악의 경우 정직하게 판단을 유보(DEFER)합니다.
- 각 단계의 실패 모드에 맞춘 결정론적 확증자 (deterministic corroborator) — 문맥 관련성을 위해 임베딩 유사도(embedding-similarity) 하한선을 설정합니다. 답변 관련성을 위해 답변 유형(answer-type) 게이트를 사용합니다 (답변 단계에서 임베딩 기법을 재사용하는 것은 역효과를 낼 수 있습니다 — 코사인 유사도는 주제에는 맞지만 회피적인 답변에 높은 점수를 주기 때문입니다). 신호는 실패 유형에 부합해야 합니다.
- 판사는 허세를 부리는 대신 판단을 유보합니다 — N번 샘플링합니다. 의견이 불일치하면 가짜 점수를 주는 대신 판단 유보(ABSTAIN)를 선택합니다.
- 검증기를 검증하기 —
--selftest는 사용자가 평가기를 신뢰하기 전에, 평가기가 반드시 잡아내야 하는 의도적인 실패 사례들을 실행합니다.
왜 보정 (Calibration)이 핵심인가
다운스트림 (Downstream) AI를 안전하게 만드는 속성은 단순한 원시 능력 (Raw capability)이 아니라, 바로 보정 (Calibration)입니다.
확신에 차서 틀리는 (Confidently wrong) 더 강력한 모델은, 답변을 유보하는 더 약한 모델보다 더 위험합니다. (저는 최신 모델 세대가 어려운 계산 문제에 대해 '확신에 찬 오답'에서 '정직한 결론 불능'으로 변화하는 것을 목격했습니다. 이는 평가기가 반드시 보상해야 하는 변화이며, 단순한 채점자는 놓치기 쉬운 부분입니다.) 따라서 rag-triad는 확신에 찬 추측보다 정직한 "판단할 수 없습니다"를 더 높게 평가합니다.
코드 + 한 줄 명령어로 실행 가능한 데모: github.com/MonongahelaHellbender/rag-triad. Ollama에서 로컬로 실행 가능하며, MIT 라이선스입니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기