스팬 어노테이션으로 환각 탐지하기
Potato에서 스팬 어노테이션과 MQM 방식의 오류 표시를 사용해 모델 출력의 환각과 사실 오류를 찾아 라벨링하는 방법.
환각이란 모델이 자신의 입력에도, 사실에도 뒷받침되지 않은 채 자신 있게 내놓는 진술입니다. 이를 포착하는 가장 유용한 방법은 잘못된 부분의 단어를 정확히 하이라이트하고 무엇이 잘못되었는지 라벨링하는 것, 즉 모델 출력에 대한 스팬 어노테이션 작업입니다. 스팬 단위 라벨은 "이 답변은 틀렸다"라는 단일 플래그보다 훨씬 더 실행에 옮기기 쉽습니다.
배경은 환각(인공지능)을 참고하세요.
왜 답변 전체가 아니라 스팬에 표시하는가
답변 전체에 "불충실"이라는 라벨을 붙이면 무언가가 틀렸다는 사실만 알 수 있습니다. 스팬은 무엇이, 어디서 틀렸는지를 알려 줍니다. 스팬 데이터가 있으면 유형별 오류율을 측정하고, 패턴을 찾고, 표적화된 학습 데이터를 만들 수 있습니다. 이는 기계 번역 평가에서 비롯된 표준 오류 스팬 프레임워크인 MQM(Multidimensional Quality Metrics)을 따른 것입니다.
오류 스팬 어노테이션 설정하기
yaml
annotation_schemes:
- annotation_type: span
name: errors
description: "Highlight each problematic span and label the error type."
labels: [unsupported_claim, factual_error, contradiction, fabricated_citation]
label_colors:
unsupported_claim: "#f59e0b"
factual_error: "#ef4444"
contradiction: "#8b5cf6"
fabricated_citation: "#ec4899"
- annotation_type: radio
name: severity
description: "How serious is the worst error?"
labels: [Minor, Major, Critical]MQM과 마찬가지로 심각도 판정을 추가해 두면, 사소한 실수와 위험한 날조에 서로 다른 가중치를 줄 수 있습니다.
오류 유형 정의하기
- 뒷받침 없는 주장: 출처에 의해 뒷받침되지 않음(RAG 사례).
- 사실 오류: 확립된 사실과 모순됨.
- 자기모순: 같은 출력의 앞부분과 충돌함.
- 날조된 인용: 존재하지 않거나 주장하는 내용을 말하지 않는 참조.
어노테이션 가이드라인 작성하기에 따라 유형은 적게 유지하고, 각각에 예시를 곁들인 한 줄짜리 정의를 붙이세요.
품질 고려 사항
- 어노테이터에게 출처 자료를 제공하세요. 출처 없이는 "뒷받침 없음"을 정의할 수 없습니다.
- 경계 규칙이 중요합니다. 스팬이 문장 전체를 덮나요, 아니면 거짓인 절만 덮나요? 한 번에 정해 두세요.
- 충실성은 경계 사례에서 주관적입니다. 중복 어노테이션을 모으고 일치도를 추적하세요.