Skip to content

스팬 어노테이션으로 환각 탐지하기

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 사례).
  • 사실 오류: 확립된 사실과 모순됨.
  • 자기모순: 같은 출력의 앞부분과 충돌함.
  • 날조된 인용: 존재하지 않거나 주장하는 내용을 말하지 않는 참조.

어노테이션 가이드라인 작성하기에 따라 유형은 적게 유지하고, 각각에 예시를 곁들인 한 줄짜리 정의를 붙이세요.

품질 고려 사항

  • 어노테이터에게 출처 자료를 제공하세요. 출처 없이는 "뒷받침 없음"을 정의할 수 없습니다.
  • 경계 규칙이 중요합니다. 스팬이 문장 전체를 덮나요, 아니면 거짓인 절만 덮나요? 한 번에 정해 두세요.
  • 충실성은 경계 사례에서 주관적입니다. 중복 어노테이션을 모으고 일치도를 추적하세요.

더 읽어보기