사람의 어노테이션으로 RAG 시스템 평가하기
검색 증강 생성을 평가하는 실용적인 가이드입니다. 검색 관련성과 답변 충실성을 별도로 채점하고, Potato의 스팬 어노테이션으로 근거 없는 주장을 표시합니다.
검색 증강 생성 시스템은 완전히 다른 두 가지 방식으로 실패할 수 있으며, 단일 품질 점수는 지금 어느 쪽을 보고 있는지를 가립니다. 검색기가 잘못된 문서를 가져왔거나, 생성기가 좋은 문서를 가지고 있었음에도 무시했거나 둘 중 하나입니다. "답변이 좋은가"만 측정한다면 이 둘을 구분할 수 없고, 시스템의 어느 절반을 고쳐야 하는지도 알 수 없습니다.
해결책은 검색과 생성을 별도로 평가하고, 답변이 출처에서 벗어나는 지점을 정확히 표시하는 것입니다.
어노테이션할 가치가 있는 세 가지
- 검색 관련성. 검색된 각 문서가 실제로 질의에 관련이 있습니까?
- 답변 충실성. 생성된 답변이 그 문서들에 근거하고 있으며, 지어낸 주장이 없습니까?
- 인용 정확성. 답변의 주장이 인용한 출처로 거슬러 올라갑니까?
이를 분리해 두면 모호한 "답변이 틀렸다"가 "올바른 문서가 검색되었지만 모델이 거기에 없는 주장을 추가했다"로 바뀝니다. 이것은 생성 문제이며, 검색 실패와는 다른 해결책을 가리킵니다.
Potato에서 설정하기
세 가지를 한 화면에 모두 담을 수 있습니다. multirate로 검색된 각 문서를 같은 척도로 평가하고, Likert 척도로 충실성을 평가하며, 답변에서 문제가 되는 스팬을 강조 표시합니다.
annotation_schemes:
- annotation_type: multirate
name: retrieval_relevance
description: "Rate the relevance of each retrieved document to the query."
labels: ["Irrelevant", "Somewhat", "Relevant", "Highly relevant"]
- annotation_type: likert
name: faithfulness
description: "Is the answer faithful to the retrieved documents?"
size: 5
min_label: "Many unsupported claims"
max_label: "Fully grounded"
- annotation_type: span
name: problems
description: "Highlight any unsupported or incorrect claim in the answer."
labels: [unsupported_claim, contradicted, hallucination]스팬 스킴이 바로 데이터를 실행 가능하게 만드는 부분입니다. 5점 만점에 2점의 충실성 점수는 무언가 잘못되었다는 것을 알려 주지만, 강조 표시된 스팬은 어느 문장이 왜 문제인지를 알려 줍니다.
RAG 평가를 조용히 망치는 것들
어노테이터는 출처 없이 충실성을 판단할 수 없습니다. 질의, 검색된 문서, 답변을 같은 화면에 보여 주십시오. 문서가 접혀 있거나 다른 탭에 있으면 사람들은 답변이 그럴듯하게 들리는지를 기준으로 평가하게 되는데, 이것이 바로 잡아내려는 실패 모드입니다.
"관련 있음"에는 정의가 필요합니다. 질의에 관련 있다는 뜻입니까, 아니면 실제로 답변에 사용되었다는 뜻입니까? 이는 서로 다른 판단이며, 미리 정해 두지 않으면 어노테이터마다 갈리게 됩니다.
충실성은 주관적인 항목입니다. 표본에서 중복 어노테이션을 수집하고, 특히 충실성 평가에 대한 일치도를 확인하십시오. 거기서 일치도가 낮다면 숫자를 신뢰하기 전에 "근거 없음"의 정의를 더 엄격하게 다듬으십시오.
다음으로 갈 곳
세 가지 스킴이 어떻게 맞물리는지를 포함한 전체 안내는 RAG 평가 가이드에 있습니다. RAG뿐 아니라 모든 모델 출력에서 사실 오류와 환각을 표시하려면 스팬 어노테이션으로 환각 탐지하기를 참고하십시오. 그리고 에이전트를 더 폭넓게 평가하고 있다면 AI 에이전트 평가하는 방법부터 시작하십시오.