판단할 수 없는 것을 인정하는 RAG 평가기
요약
RAG 시스템의 품질을 평가할 때 LLM의 추측 대신 결정론적 검증과 판단 유보를 활용하는 'rag-triad' 프레임워크를 소개합니다. 검색 실패, 환각, 주제 이탈을 명확히 구분하여 실패 지점을 국지화하는 것이 핵심입니다.
핵심 포인트
- LLM-as-judge의 한계를 극복하기 위해 결정론적 확인 방식을 결합
- 검색, 근거성, 답변 관련성의 세 가지 실패 모드를 구분하여 분석
- 확신에 찬 오답보다 정직한 판단 유보(Abstain)를 지향하는 보정(Calibration) 강조
- 코드 기반의 인용 검증을 통해 환각을 방지하는 Fail-closed 방식 채택
Fail-closed groundedness(실패 시 폐쇄되는 근거성), 결정론적 확증자(deterministic corroborators), 그리고 셀프 테스트 — 평가기는 자신이 채점하는 대상보다 더 신뢰할 수 있어야 하기 때문입니다.
"LLM-as-judge" 평가의 조용한 결함
AI 출력을 점수 매기는 대부분의 도구는 LLM이 LLM을 채점하는 방식이며, 검증된 수치와 추측된 수치를 구분하지 않고 모두 동일하게 자신감 있는 목소리로 보고합니다. 이는 평가 방식이 잘못되었습니다. 평가자의 온전한 역할은 자신이 채점하는 모델과 똑같이 쉽게 믿는 것이 아니라, 그 모델보다 더 신뢰할 수 있어야 한다는 것입니다.
rag-triad는 하나의 규칙을 기반으로 구축된 검색 증강 생성 (RAG) 답변을 위한 작은 로컬 평가기입니다: 결정론적 (deterministic) 확인이 가능한 곳에서는 그 방식에 의존하고, 그렇지 않은 곳에서는 — 공개적으로 — 판단을 유보하라.
단순히 점수를 매기는 것이 아니라 실패를 국지화하기
RAG 답변은 세 가지 서로 다른 지점에서 실패합니다 — 잘못된 검색 (retrieval), 환각 (hallucinated) 생성, 또는 주제를 벗어난 답변 — 그리고 각 지점은 서로 다른 해결책이 필요합니다. 단일 품질 점수로는 이들을 구분할 수 없지만, 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) 더 강력한 모델은, 답변을 유보하는 더 약한 모델보다 더 위험합니다. (저는 최신 모델 세대가 어려운 계산 문제에 대해 '확신에 찬 오답'에서 '정직한 결론 불능'으로 변화하는 것을 목격했습니다. 이는 평가기가 반드시 보상해야 하는 움직임이며, 순진한 채점자(Naive scorer)는 놓치고 마는 부분입니다.) 따라서 rag-triad는 확신에 찬 추측보다 정직한 "판단할 수 없습니다"를 높게 평가합니다.
코드 + 단일 명령 데모: github.com/MonongahelaHellbender/rag-triad. Ollama에서 로컬로 실행 가능, MIT 라이선스.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기