Skip to content
Guides1 min read

スパンアノテーションでハルシネーションを見つける

MQM 形式で、該当する語句そのものをハイライトし何が問題かをラベル付けすることで、Potato のスパンアノテーションを使ってモデルのハルシネーションや事実誤認を捕まえます。

Potato Team

モデルが何かを捏造したとき、回答全体への低評価(thumbs-down)はほとんど何も教えてくれません。どこかが間違っているのは分かります。しかし、どの文なのか、どんな種類のエラーなのか、どれほど深刻なのかは分かりません。スパンアノテーションはそれを解決します。アノテーターが該当する語句そのものをハイライトし、何が問題なのかをラベル付けするのです。

これは MQM の背後にあるのと同じ考え方です。MQM は、機械翻訳評価が長年使ってきたエラースパンのフレームワークです。スパンに印を付け、エラーを分類し、深刻度を評定する。その結果、実際に行動に移せるデータが得られます。

なぜスパンは回答全体へのフラグより優れているのか

回答全体への「不忠実」というラベルは要約統計量です。スパンは位置と診断です。スパンがあれば、種類ごとのエラー率を測定し、多数の出力にまたがるパターンを見つけ、自分が気にする失敗モードに合わせた学習データを構築できます。判断の単位が応答全体であるかぎり、こうしたことは何一つできません。

Potato での設定方法

問題のあるテキストをハイライトし、エラーの種類をラベル付けし、深刻度の判断を加えることで、些細なミスと危険な捏造が同じ重みで扱われないようにします。

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]

データ品質を決めるルール

アノテーターに元資料を渡してください。「根拠がない」は元資料なしには定義できないため、文書や文脈は別のタブの裏ではなく画面上になければなりません。

境界のルールは一度だけ決めてください。スパンは文全体を覆うのか、それとも誤った節だけを覆うのか。どちらも妥当です。一方を選び、それを書き留めておきましょう。

境界事例では主観が入ることを想定してください。忠実性の判断は微妙なケースで分かれるため、サンプルで重複を集め、数値を信頼する前に一致率を確認してください。

次に読むべきもの

各エラータイプの定義方法を含む完全な解説は、ハルシネーション検出ガイドにあります。この問題の検索に根拠を置いた版については、RAG 評価スパンアノテーションガイドを参照してください。実装の詳細については、エラースパンのソースドキュメントを参照してください。