|

RAG hallucination 평가 시작법

RAG hallucination 평가 시작법
RAG hallucination 평가를 처음 시작할 때 필요한 기준을 정리합니다. groundedness, answer relevance, context recall, golden set, 자동 평가와 사람 검토의 경계를 나눠 설명합니다.

RAG hallucination 평가는 RAG를 서비스에 붙인 뒤 가장 빨리 마주치는 문제입니다. 답변은 그럴듯한데 실제 문서에는 없는 말을 하거나, 맞는 문서를 찾았는데도 엉뚱하게 요약할 수 있습니다.

처음부터 거대한 평가 시스템을 만들 필요는 없습니다. 검색이 틀렸는지, 답변 생성이 틀렸는지, 근거 표현이 부족한지를 나눠 보는 작은 평가셋부터 시작하는 편이 안전합니다.

RAG hallucination 평가 기준 요약 카드
RAG 평가는 검색 품질과 생성 품질을 나눠 봐야 원인을 찾기 쉽습니다.

RAG hallucination을 나눠서 보기

RAG에서 hallucination이 생겼다고 해서 원인이 항상 모델 생성에만 있는 것은 아닙니다. 검색 단계에서 엉뚱한 문서를 가져왔을 수도 있고, 맞는 문서를 가져왔지만 질문에 필요한 부분이 context에 빠졌을 수도 있습니다.

그래서 평가는 최소한 세 층으로 나눠야 합니다. 검색이 관련 문서를 찾았는지, 답변이 그 문서에 근거했는지, 최종 답변이 사용자 질문에 실제로 도움이 되는지를 따로 봅니다.

  • retrieval quality: 필요한 문서를 찾았는가
  • groundedness: 답변 문장이 context에 근거하는가
  • answer relevance: 질문에 직접 답하는가
  • citation quality: 어떤 문서에서 나온 말인지 추적 가능한가

첫 평가셋은 작아도 된다

처음부터 수천 개 golden set을 만들려고 하면 시작이 늦어집니다. 운영 초반에는 실제 사용자가 자주 묻는 질문 30~50개만 모아도 많은 문제가 드러납니다.

좋은 첫 평가셋은 쉬운 질문만 모으지 않습니다. 답이 문서 한 곳에 있는 질문, 여러 문서를 합쳐야 하는 질문, 문서에 답이 없는 질문, 비슷한 용어 때문에 헷갈리는 질문을 섞어야 합니다.

평가셋에 넣을 질문 유형

  1. 문서에 답이 명확히 있는 질문
  2. 문서 여러 곳을 합쳐야 답할 수 있는 질문
  3. 문서에는 없으므로 모른다고 해야 하는 질문
  4. 이름이나 용어가 비슷해 잘못 검색하기 쉬운 질문
  5. 최신 문서와 오래된 문서가 충돌할 수 있는 질문

검색 실패와 생성 실패를 분리하기

답변이 틀렸을 때 바로 프롬프트만 고치면 문제를 놓치기 쉽습니다. 먼저 검색 결과를 직접 봐야 합니다. 필요한 문서가 top-k 안에 없었다면 retriever, chunk, embedding, metadata filter 쪽 문제일 가능성이 큽니다.

반대로 필요한 문서가 context 안에 있는데 답변이 틀렸다면 생성 프롬프트, context 압축, 답변 형식, 근거 인용 지시를 점검해야 합니다.

question
  -> retrieved documents: correct? 
  -> packed context: enough?
  -> generated answer: grounded?
  -> final response: useful?

자동 평가를 어디까지 믿을까

자동 평가는 반복 실행과 회귀 확인에 좋습니다. 하지만 자동 평가 점수가 높다고 바로 안전하다고 단정하면 안 됩니다. 평가 모델도 틀릴 수 있고, 회사 문서의 미묘한 정책 차이를 놓칠 수 있습니다.

실무에서는 자동 평가와 사람 검토를 같이 둡니다. 자동 평가는 변화 감지용으로 쓰고, 사람 검토는 기준을 보정하는 용도로 둡니다. 특히 답변 금지, 법무/금융/의료처럼 민감한 영역은 사람 검토 기준을 더 강하게 둬야 합니다.

기록해야 할 최소 로그

  • 질문 원문
  • 검색 query와 top-k 문서
  • 모델에 들어간 최종 context
  • 생성 답변
  • 평가 점수와 사람 검토 메모
  • 수정 전후 실험 id

작은 운영 루틴

  1. 실제 질문 30개로 첫 평가셋을 만든다
  2. 각 질문마다 기대 답변과 참고 문서를 붙인다
  3. 검색 결과와 생성 답변을 따로 채점한다
  4. 실패 원인을 retriever, context, prompt, policy로 분류한다
  5. 수정 뒤 같은 평가셋으로 다시 실행한다

정리

RAG hallucination 평가는 점수 하나로 끝나는 일이 아닙니다. 검색이 맞았는지, 문서 근거가 충분했는지, 답변이 질문에 맞는지, 모르는 경우 모른다고 했는지를 나눠 봐야 합니다.

관련 글은 Agentic RAG란 무엇인가, MCP RAG 차이: 지식 검색과 도구 연결, pgvector는 언제 Pinecone이나 Qdrant 대신 쓸 만할까를 함께 보면 좋습니다. 외부 기준은 LangSmith docs – Evaluation, OpenAI Evals GitHub, DeepEval docs – Metrics를 확인했습니다.

함께보면 좋은 글