RAG 평가
검색 관련성, 답변 충실도, 인용 span을 포함하여 retrieval-augmented generation을 사람 어노테이션으로 평가하는 방법을 Potato로 다루는 가이드.
Retrieval-augmented generation(RAG)은 먼저 문서를 검색한 다음 그 문서로부터 답을 생성하여 질문에 답합니다. RAG를 평가한다는 것은 두 가지를 따로따로 판단한다는 뜻입니다. 올바른 문서를 검색했는가, 그리고 그 답이 실제로 문서에 의해 뒷받침되는가? 이 둘을 뭉뚱그리면 시스템이 어디서 실패하는지 가려집니다.
배경 지식은 retrieval-augmented generation을 참고하십시오.
어노테이션할 세 가지
- 검색 관련성: 검색된 각 문서가 쿼리와 관련이 있는가?
- 답변 충실도: 생성된 답변이 검색된 문서에 근거하며, 뒷받침되지 않는 주장이 없는가?
- 인용 정확도: 답변의 주장이 실제로 인용된 출처로 거슬러 올라가는가?
Potato에서 설정하기
세 가지 스킴을 한 화면에 결합하여 각 문서를 평가하고, 충실도를 평가하며, 답변에서 문제가 되는 span을 강조 표시합니다.
yaml
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]multirate는 여러 문서를 동일한 척도로 한 번에 평가하며, span 스킴은 답변이 출처에서 벗어나는 지점을 정확히 어디인지 표시합니다. 환각 탐지를 참고하십시오.
검색과 생성을 분리하는 이유
RAG 시스템은 두 가지 방식으로 실패할 수 있습니다. 나쁜 컨텍스트를 검색했거나(검색 문제), 좋은 컨텍스트를 무시했거나(생성 문제)입니다. 둘을 따로 점수 매기면 어느 쪽을 고쳐야 하는지 알 수 있습니다. 충실도 점수만으로는 알 수 없습니다.
품질 고려 사항
- 어노테이터에게 쿼리, 문서, 답변을 함께 보여 주십시오. 출처 없이는 충실도를 판단할 수 없습니다.
- "관련 있음"에는 정의가 필요합니다. 쿼리와 관련이 있는 것인지, 아니면 실제로 답변에 사용된 것인지? 미리 정하십시오.
- 충실도에 대한 일치도를 추적하십시오. 세 가지 중 가장 주관적입니다.