LLM 判定器の信頼性評価:人間との整合性を測る方法
本文の状態
日本語全文を表示中
詳細モードで約25分の本文を読めます。
同じ出来事の情報源
この情報源を基点に整理
Arize AI Blog
Arize AI は、LLM ジャッジの信頼性を評価するために、人間同士の合意度を基準として LLM と人間の一致率を比較し、誤りの種類を分類する具体的な測定フレームワークを提案している。
AI深層分析を開く2026年8月4日 08:33
AI深層分析
キーポイント
単一指標の限界と多角的アプローチ
LLM ジャッジの信頼性を判断するには単一の数値ではなく、タスクの定義明確さや人間との合意度など複数の側面から別々の測定を行う必要がある。
3 つの核心評価質問
評価基準の適用信頼性、人間同士の合意頻度に対する LLM の一致度、そして LLM が人間の判断と異なる際の誤りの種類という 3 点を問う。
人間間合意度の測定と参照基準
代表サンプルで複数の人間注釈を集め、Cohen's kappa や Krippendorff's alpha などの確率調整済み指標を用いて人間間の合意度を算出する。
LLM ジャッジの分類器としての評価
調停や多数決で得た参照基準に対して LLM を分類器として扱い、適合率・再現率・F1 スコアや混同行列を報告する。
人間間合意の測定とアノテーション設計
ラベル付けの一貫性を評価するために、アノテーションの設定に応じた適合度指標(Cohen's kappa, Krippendorff's alpha など)を選択して計測する。
重要な引用
No single number can tell you whether an LLM judge is trustworthy.
A complete measure of evaluation alignment can be broken down into three questions:
Treat human agreement as context for the comparison, not as a hard performance ceiling.
They do not automatically create ground truth. They create a more defensible basis for an operational reference.
編集コメントを表示
編集コメント
このガイドは、LLM の自動評価が普及する中で不可欠な「評価者自体の評価」手法を体系的に示している。実務において LLM ジャッジのバイアスや誤りを特定し、より堅牢な評価システムを構築するための具体的な指針となる。
Source Article
元記事を日本語で読む
本文に関係しない購読案内、埋め込み通知、サイト内プロモーションは除いています。
LLM による評価(LLM judge)を使えば、大規模なデータセットを迅速に評価できるようになりますが、その前に、LLM の判断が人間の専門家とどの程度一致しているかを確認する必要があります。
LLM 評価者が信頼できるかどうかを断定する単一の数値は存在しません。評価者を信頼する前に、タスク自体が明確に定義されているか、評価者が人間の判断の範囲内でルールの適用を行っているか、そして具体的にどこで間違っているのかを知る必要があります。これらはそれぞれ独立した問いであり、それぞれに適した測定方法が必要です。
評価の整合性を包括的に測るには、以下の 3 つの問いに答えることが重要です。
- 人間は評価基準をどの程度一貫して適用しているか?
- LLM は人間同士が互いに一致する頻度と同様に、人間と一致しているか?
- LLM が参照となる判断(reference judgment)と異なる場合、どのような種類の誤りを犯すのか?
このガイドでは、これらの重要な問いに答える方法と、あなたの環境に適した適切なアプローチの選び方を解説します。
TL;DR(要約)
- 代表的なサブセットに対して複数の人間による注釈を収集し、不一致から基準の問題点を特定して、より堅牢な参照データを作成してください。
- 人間の一致度を示す生データとともに、コエンのカッパ(Cohen's kappa)、フライスのカッパ(Fleiss' kappa)、クリペンドルフのアルファ(Krippendorff's alpha)など、偶然による一致を調整した指標(注釈設定に応じて選択)を報告してください。
- 同一の例に対して人間同士の一致度と LLM と人間の一致度を同じ指標で比較し、人間の一致度は比較のための文脈として扱い、絶対的な性能の上限として扱うべきではありません。
参照データは、審査(adjudication)または真の多数決によって作成してください。あいまいなケースや合意が得られなかった事例については、無理にラベルを割り当てるのではなく、そのまま残すことが重要です。
その参照データを基準として、LLM 判定器を分類モデルとして扱います。その結果、適合率(precision)、再現率(recall)、F1 スコア、各クラスのサンプル数、そして混同行列(confusion matrix)を報告してください。
重要なクラスについては、データセット全体だけでなく、個々のクラスにも十分なサンプル数があることを確認し、主要な結果に対する不確実性についても併せて報告する必要があります。
ステップ 1:指標を選ぶ前にタスクを定義する
まず、以下の 4 つの要素を明確に書き出しましょう。
- unit: span | trace | session
- labels:
type: nominal | ordinal | multilabel
values: [pass, fail] # または順序付きリスト
- positive_class: fail # 適合率・再現率計算用
- reference_policy: majority | adjudicate | soft_label
- cost_asymmetry: fp_worse | fn_worse | equal
「unit(対象)」とは、どの単位に一つの判定を下すのかを指します。個々の LLM の呼び出し(span)、1 つのターン内のステップの連続(trace)、それとも会話全体(session)でしょうか。
ラベル構造と測定レベルについて考えましょう。タスクは単一ラベル型ですか、マルチラベル型ですか?もしマルチラベルの場合、カテゴリは名義尺度(nominal)か順序尺度(ordinal)のどちらに該当しますか?例えば、「ハルシネーション」「無関係」「不十分」という 3 つの名義尺度ラベルには、本質的な順序はありません。一方、「失敗」「部分的合格」「合格」といった 3 つの順序尺度ラベルには明確な順序が存在します。
「positive_class(正クラス)」とは、適合率や再現率を計算する際に、検出したい事象を表すラベルのことです。
「reference_policy(参照方針)」では、複数の人間の判定結果をどのようにして運用上の基準値とするかを決めます。例えば、多数決を採用するか、専門家の審査を行うか、あるいはソフトラベル(確率的な重み付け)を使用するかなどです。
エラーコスト:偽陽性と偽陰性のどちらがより重大か?
この判断が、どの指標を重視すべきかを決定します。
ステップ 2:人間同士の合意度を測定する
LLM ジャッジの評価を行う前に、複数の人間アノテーションが付与された事例を確認しましょう。
合意度指標は、人々が評価基準(ルブリック)を一貫して適用できるかどうかを示すものです。特定の人物を「正解」とみなすのではなく、すべての判断者を対称的に扱います。
実践的な出発点として、以下の表が参考になります。
アノテーション設定と推奨指標
- 2 名の評価者、カテゴリラベル:Cohen's kappa
- 2 名の評価者、順序付きラベル:Weighted Cohen's kappa
- 3 名以上の評価者(各項目ごとに同数):Fleiss' kappa
- アノテーションの欠落や評価者数のばらつきがある場合:Krippendorff's alpha
- 順序付きラベルで、アノテーションに欠落やばらつきがある場合:Ordinal Krippendorff's alpha
- いかなる設定でも:記述的な補完として、単純な一致率(Raw percent agreement)は依然として有用です。
Cohen's kappa は、バイナリタスクだけでなく多クラスタスクにも対応可能です。合格・不合格のみに限定されません。設定方法の例については、Scikit-learn のドキュメントを参照してください。
アノテーションのカバレッジが不均一な場合や、評価者数にばらつきがある場合は、Krippendorff's alpha が柔軟な選択肢となります。これは複数の測定レベルに対応し、欠落した判断も扱えます。詳細な解説は R Journal の概要記事をご覧ください。
なぜ複数の人間アノテーションを集めるのか?
複数のアノテーションには、主に 3 つの目的があります。
まず、参照ラベルを構築するための証拠がより多く提供されます。一つの注釈には誤りや特殊な解釈、あるいは個人のバイアスが反映されている可能性があります。複数の判断を行うことで、合意形成が可能になり、意見の相違を調整したり、意見の分布を維持したりできます。
これらは自動的に「正解」を作成するわけではありません。運用上の参照基準としてより防御可能な基盤を作るのです。以前の Arize の記事(Judging the Judges)では、判定者の整合性に関する関連する失敗モードについて取り上げました。人間の不一致をコンテキストグラフとして構築することで、その不一致をどのように活用できるかが示されています。
第二に、不一致は評価基準の改善に役立ちます。合意率が低い場合、以下のような問題が考えられます。
- ルール(ルブリック)が曖昧である
- 注釈担当者に適切な例が必要である
- 関連する文脈が欠落している
- 単一のラベルに複数の概念が含まれている
- タスク自体に正当な主観性が含まれている
合意スコアは問題の存在を示しますが、不一致そのものが「どこをどう変えるべきか」を理解する手がかりとなります。
第三に、人間の合意率は判定者を解釈する際の文脈を提供します。有資格者が同じ例に対して定期的に異なる解釈を行う場合、人間と LLM の完全な一致が現実的でも望ましいものでもない可能性があります。
注釈を評価開発の一部として活用する
実践的な開発ループは以下のようになります。
- 代表的なキャリブレーションセットを複数の人間にラベル付けさせる
- 合意率を計算し、不一致の内容を検証する
- 基準や例、注釈プロセスを見直す
- もう一度キャリブレーションを実施する
評価基準が安定したら、最終的なテストセットを固定してください。
そのため私は、アノテーションを単なる採点作業ではなく、評価指標そのものを開発するプロセスの一部として捉えています。すでに大規模な人間フィードバックを収集しているチームは、OpenAI がユーザーのフィードバックを製品改善にどう活用しているかの事例からヒントを得ることもできます。
「生の一致率(raw percent agreement)」を報告すべきか?
はい、報告すべきです。生の一致率は直感的で理解しやすいですが、偶然による一致やアノテーターごとのラベル分布の偏り、クラスの不均衡といった要因を考慮していません。そのため、確率調整済みの指標と併せて報告する必要があります。
例えば、100 件のサンプルのうち 95 件が合格(pass)だった場合を考えましょう。あるアノテーターは 5 つの不合格事例を正確に特定しましたが、別のアノテーターはすべてを合格と判定しました。この場合、両者の一致率は 95% となりますが、後者のアノテーターは一度も失敗を検出できていません。
カッパ係数(kappa)などの確率調整済み指標は、アノテーターのラベル分布を考慮に入れます。しかし、カッパにも注意すべき点があります。特にクラスの不均衡が激しい場合、生の一致率が非常に高くてもカッパ値が驚くほど低くなる現象が起きることがあります。これは「カッパの有病率パラドックス(kappa prevalence paradox)」としてよく知られており、Feinstein と Cicchetti によって詳細に記述されています。
実務的な解決策は、複数の証拠をセットで報告することです:
- 生の一致率
- カッパ係数またはクロンバッハのアルファ(alpha)
- ラベルのカウントまたは割合
- 混同行列(confusion matrix)や主要な不一致のパターン
「0.6 が良し」「0.8 が許容範囲」といった普遍的な閾値に依存するのは避けましょう。どの程度の一致率が十分かは、タスクの曖昧さ、誤った判断によるリスク、そしてその評価者がどのように活用されるかによって異なります。
ステップ 3:人間の合意を LLM の基準値として活用する
人間同士が完全に一致しない以上、LLM と人間の完全な一致も期待できません。
公平に比較するためには、LLM と各個人のannotator(注釈作成者)とのペアごとの合意度を計算しましょう。
例えば、人間 A、B、C と LLM が同じ事例にラベル付けを行ったとします。
まず、人間同士の合意度を算出します。
A ↔ B
A ↔ C
B ↔ C
次に、LLM と人間の合意度を計算します。
LLM ↔ A
LLM ↔ B
LLM ↔ C
個々のペアごとの結果を報告し、その平均値や範囲を示してください。
例えば、「人間同士のペアごとの合意度は 69% から 75% の範囲にあり、平均は 72% でした。LLM と人間の合意度は 68% から 71% の範囲にあり、平均は 70% でした」といった具合です。
これにより、LLM が観察された人間の再現性の範囲内で動作していることがわかります。
注意すべき点として、LLM を注釈作成者のプールに加えて「人間+LLM」のアルファ係数やフライス・カッパを報告するのは避けてください。これは「この混合パネルの信頼性はどれほどか」という、あまり有益ではない問いに答えることになります。LLM と人間の基準値を直接比較するものではありません。
また、人間の合意度はハードな性能の上限ではなく、あくまで基準値である点も留意してください。モデルが安定したコンセンサス・リファレンスと一致する頻度が、個々の注釈作成者同士の一致頻度よりも高くなる場合があります。特に、個々の注釈にノイズが含まれている場合です。
シミュレーション研究では、注釈作成者間の合意度がモデル性能の上限であるとは限らないことが示されています。
判別者の自己一貫性を測定する
判別者が非決定論的(結果が毎回異なる)な場合は、同じ事例に対して複数回実行してください。
平均的に人間と一致していても、実行ごとに回答が変動する評価モデルは、モニタリングや実験、リリースゲートにおいて信頼性を持って利用するのが難しくなります。
以下の2点を必ず報告してください。
- 評価モデルと人間の参照値との間の一致度
- 評価モデルを複数回実行した際の相互の一致度
さらに、モデルバージョン、評価プロンプト、推論設定、評価実施日なども記録してください。基盤となる評価構成がバージョン管理されていない場合、スコアの再現は困難になります。また、プロンプト設計も評価の信頼性に影響を与えるため、LLM-as-a-Judge におけるエビデンスに基づくプロンプト戦略を参照してください。
ステップ4:人間の判断を参照値として確立する
次のステップでは、各事例に対して1つの参照結果を作成します。
これにより、評価の関係性が変化します。人間同士の一致度は対称的ですが、一度運用上の参照値を定義すると、比較は非対称なものになります。
- 人間の集約結果または裁定ラベル → 参照値
- LLMによる判断 → 予測値
参照値の作成には、以下のような方針が考えられます。
- 専門家による裁定
- 多数決(マジョリティ・ボート)
- 事前に定めたタイブレーキングプロセス
- コンセンサス会議
- ハードなラベルを強制せず、分布そのものを保持する手法
バイナリタスクの場合、3回の完全な合格/不合格の注釈があれば、多数決は必ず結果を生みます。
2人のアノテーターがいる場合、意見が割れるたびにタイになります。誰かのラベルを黙って選ぶのではなく、第3のアノテーターを追加するか、裁定プロセスを用いて解決すべきです。
マルチクラスタスクの場合、3つのラベルと3人のアノテーターが存在すると、各アノテーターが異なるクラスを選ぶ可能性があります。これは意味のある多数決とは言えません。
これらのケースを裁定するか、曖昧なケースとしてマークしてください。無理に厳密なラベルを付与する場合は、判断の根拠となる投票数を残して区別できるようにします。
- 3-0:強い合意
- 2-1:弱い合意
- 1-1-1:合意なし
また、合意が得られやすいケースと低いケースで LLM の性能を分けて報告することも検討してください。これにより、判定モデルが明確なケースで失敗しているのか、それとも正当に曖昧さに関与しているのかを判別できます。
ステップ 5:LLM 判定器を分類器として扱う
参照ラベルが決まれば、関係は非対称なものになります。
- 人間の集約結果=参照ラベル
- LLM の判断=予測値
この状態で分類指標を報告します。実際のラベル形式の比較については、「バイナリ評価とスコア評価のテスト」をご覧ください。
バイナリタスクの場合
重要なポジティブクラス(多くの場合「失敗」)を選択し、以下の指標を報告してください。
- 適合率 (Precision)
- 再現率 (Recall)
- F1 スコア
- 混同行列 (Confusion matrix)
- サポート:各クラスのサンプル数
マルチクラスタスクの場合
以下の指標を報告します。
- 全クラスごとの適合率、再現率、F1 スコア
- マクロ平均 F1 (Macro F1)
- 必要に応じてウェイト付き F1 (Weighted F1)
- 完全な混同行列
マクロ平均 F1 はすべてのクラスに等しい重みを付与するため、稀だが重要なラベルでの性能低下を浮き彫りにするのに役立ちます。一方、ウェイト付き F1 は一般的なラベルにより大きな影響を与えるため、稀なクラスでの失敗が隠れてしまう可能性があります。通常の単一ラベルマルチクラス分類では、マイクロ平均 F1 (Micro F1) は精度と等価となるため、追加の価値はあまりありません。詳細な平均化オプションについては Scikit-learn の解説をご覧ください。
解釈:
適合率が低い場合:偽陽性が多すぎることを意味し、判定器が過敏になっている可能性があります。
再現率が低い場合、偽陰性(False Negatives)が多すぎることを意味し、評価モデルが実際の失敗を見逃している可能性があります。
F1 スコアは、適合率と再現率のトレードオフを要約した指標です。
順序尺度ラベルを用いる場合は、加重カッパ係数や誤差距離に基づく測定値も検討してください。合格と部分合格を混同するよりも、合格と不合格を混同する方が深刻なケースが多いからです。
LLM と参照モデルの一致率やカッパ係数を報告し続けることも可能です。これらは人間ベースラインとの連続性を保つのに役立ちます。一方、適合率・再現率・F1 スコアは、エラー診断に有用です。
分類指標の解釈
これらの指標は、評価モデルにおける異なる失敗モードを明らかにします。
適合率(Precision)は、「評価モデルが不合格と判定した事例のうち、参照基準でも実際に不合格だったものはどれか?」という問いに応えます。適合率が低い場合、評価モデルは偽陽性(False Positives)を過剰に発生させており、感度が高すぎるか、評価基準を過度に広く解釈している可能性があります。
再現率(Recall)は、「参照基準で不合格と判定された事例のうち、評価モデルがどれを検出できたか?」という問いに応えます。再現率が低い場合、評価モデルは実際の失敗を見逃しています。
F1 スコアは適合率と再現率を一つのスコアに統合し、デフォルトでは両者に同等の重みを置きます。失敗事例が少ない状況では、単純な正解率(Accuracy)よりも有用な情報をもたらすことが多くあります。全体の性能比較には役立ちますが、混同行列やエラーコストに関する明示的な議論を代替するものではありません。
偽陰性のコストが高い場合は、再現率を優先するか、再現率により重みを置いた F スコア(例:F2)を使用してください。一方、偽陽性のコストが高い場合は、適合率を優先するか、適合率により重みを置いた F スコア(例:F0.5)を使用してください。
評価指標は、判断者が支援する実際の意思決定を反映している必要があります。
必要なサンプル数はどれくらいか?
万能な最低基準はありません。必要となるサンプルサイズは、以下の要素によって決まります。
- 期待される性能
- クラスのバランス
- ラベルの数
- アノテーターの数
- 求める精度
- 指標を推定するのか、主張を検証するのか
単純な比率(例えば生来の一致率など)の場合、95% の信頼区間における有用な最悪ケースの近似値は以下の通りです。
- 誤差が約±10 パーセントポイントの場合:独立したサンプル約 100 個
- 誤差が約±5 パーセントポイントの場合:約 400 個
これらの数値は、比率に関する標準的なサンプルサイズ計算に基づいています。詳細な式については NIST が公開しています。
あくまで目安として捉え、絶対的な保証とは考えないでください。Kappa や F1 スコアの不確実性はより複雑であり、実際には稀なクラスがボトルネックとなるケースが多々あります。
サンプル数は「総数」だけでなく、「各クラスごとの数」もカウントしてください
例えば、失敗事例がデータ全体の 5% を占めているとしましょう。200 個のテストセットを用意しても、平均して失敗事例は約 10 個しか含まれません。この場合、総サンプル数がどれだけ大きく見えても、再現率(recall)の推定値は極めて不安定なものになります。
適合率(precision)は「予測された正例の数」に依存し、再現率は「実際の正例の数」に依存します。結論を導き出すために必要な分母が両方とも十分なサンプル数を含んでいるか確認してください。
実務における合理的なワークフローの目安としては、以下のような手順があります。
- 初期段階で評価基準(ルビック)を反復する際は、複数回アノテーションを行った代表的なサンプル 30〜50 個を使用する。
- およそ 100 個のサンプルから得られる結果は、方向性を示す指標として扱う。
安定したベンチマークを構築するには、目標とする信頼区間の幅と、各重要クラスの期待されるサンプル数を事前に計画する必要があります。
データセットに失敗事例を追加してクラスカバレッジを改善する場合は、その旨を明記してください。人工的にバランスの取れたセットで測定された精度は、実際の運用環境での分布が異なるため、本番環境における精度を反映していない可能性があります。自然な分布を持つテストセットと、失敗事例に焦点を当てた別々のチャレンジセットを維持するのが望ましいです。
不確実性を報告する
40 例から得られたスコア 0.78 と、4,000 例から得られたスコア 0.78 は、同じ意味を持ちません。
主要な指標の周囲には 95% 信頼区間を報告してください。カッパ係数 (kappa)、クロンバ・アルファ (alpha)、F1 スコアについては、サンプルに対するブートストラップ法が実用的な選択肢となります。複数のスパンが同じトレースや会話から抽出されている場合、個別のスパンではなく、相関する例をまとめたままトレース全体を再サンプリングしてください。
同一の例に対して 2 つの評価者を比較する場合は、ペアブートストラップを使用します。これは、例を一度だけ再サンプリングし、両方の評価者のスコアとその差を再計算する方法です。
すぐに使えるレシピ
注釈付けの設定に応じて、以下のアプローチが推奨されます。
- 注釈付けの設定:推奨アプローチ
- 1 例につき 1 人の人間ラベル:LLM と参照値の精度 (precision)、再現率 (recall)、F1 スコアを測定する。ただし、参照ラベルの信頼性は不明であることを明記すること。可能であれば、代表性のあるサブセットについてダブルアノテーションを行うこと。
- 2 人の人間アノテーター:生合意度とクーンズ・カッパ (Cohen's kappa) を報告する。不一致については調整を行い、LLM と各アノテーターを個別に比較し、調整後の参照値に対して分類器の指標を計算すること。
3 つ以上の完全な注釈がある場合
生の合意率と Fleiss' kappa、または Krippendorff's alpha を報告してください。一致する比較のために、人間同士の合意率と LLM と人間の合意率をそれぞれペアごとに計算します。真の過半数が存在する場合のみ多数決を採用し、同点や合意に至らないケースは裁定してください。
注釈数は例によって異なります
全体的な人間の信頼性には Krippendorff's alpha を使用します。一致する LLM ベースラインについては、人間と LLM が同じ例にラベルを付けた場合のペアごとの合意率を計算してください。欠落した注釈が困難な例に集中していないか確認します。
ラベル構造に応じて追加分析を行います:
- 多クラス分類: クラスごとの指標、マクロ F1、各クラスの件数、混同行列(confusion matrix)を報告し、どのクラスが混同されやすいかを調査してください。
- 順序尺度: 2 人の評価者の場合は加重 Cohen's kappa を、複数の評価者の場合は順序尺度対応の Krippendorff's alpha を使用します。合意の程度を反映した分析手法を採用してください。
最終報告書に含めるべき項目
最低限以下の事項を文書化してください:
- 評価対象となる単位
- ラベル定義と、それが名義尺度か順序尺度かの区別
- 例の数とラベルの分布
- 例ごとの注釈者数
- 人間同士の生の合意率および kappa または alpha(不確実性を含む)
- 同じサブセットにおける LLM と人間のペアごとの合意率
- 人間のラベルをどのように集約または裁定したか
- LLM 参照の精度、再現率、F1 スコア、混同行列
- クラス別および人間合意レベル別の性能
- 重要な意見相違のパターンと評価基準の変更点
LLM 判定器が非決定的な場合、実行ごとに結果が一致するかを確認するため、評価を複数回繰り返してください。
Arize AX でのワークフロー実践
実用的な人間と LLM の判定器の検証ワークフローは、以下の 4 つの部分で構成されます。
- 代表性のあるサンプルを集める
- 人間の注釈プロセスを調整する
- ホールドアウトデータセットに対して判定器を実行する
- 不一致を分析し、生成された評価器のバージョン管理を行う
Arize AX は、アプリケーションデータや実験結果に対する人間の注釈と、自動スコアリングのための LLM-as-a-Judge 型評価器をサポートしています。ラベリングキューを使用すれば、定義済みのデータセットと注釈基準を専門家に配布できるため、構造化された人間フィードバックの収集が容易になり、自動化された評価と人間の判断が一致しない事例を特定しやすくなります。
まずは代表性のある調整用セットから始めます。複数の注釈担当者に草案の評価基準(rubric)を適用してもらい、合意率を計算して、頻出する不一致を確認します。評価基準の再現性が十分になるまで、基準と例を見直してください。
その後、評価基準を凍結し、完全なデータセットに注釈を付け、不一致については裁定を行います。そのデータセットに対して LLM 判定器を実行し、そのラベルを個々の人間の判断や集約された参照結果と比較します。
Arize AX では、評価器はスパン、トレース、セッション、あるいは実験レベルで構造化されたラベル、スコア、説明を返すことができます。評価器はバージョン管理されるため、チームは時間経過に伴う評価基準、プロンプト、判定モデル、設定の変更を追跡できます。
このバージョン管理を活用して、以下の記録を明確に保ちましょう。
各結果を生成した評価者が誰か
使用されたプロンプトとモデル構成
どのデータセット版に対して実行されたか
評価者間のバージョン変更点
その変更がホールドアウトベンチマークでのパフォーマンス向上につながったかどうか
集計スコアは始まりに過ぎません。不一致を確認し、クラスや合意レベルでフィルタリングして、評価者が失敗している原因が明確でない評価基準、文脈の欠落、過度に広範なプロンプト、それともモデル自体の限界によるものかを判断してください。
要点
合意指標と分類指標は相補的な関係にあります。
人間同士の合意度は、評価基準が再現可能かどうかを示します。
LLM と人間の合意度は、評価者が人間のばらつきの範囲内で動作しているかを示します。
LLM 参照による分類指標は、評価者がどこを間違えているかを明らかにします。
あるいは、よりシンプルに言えば:
人間の不一致を活用して評価プロセスを強化し、合意指標を使用して評価の信頼性を高めます。
原文を表示
LLM judges make it possible to evaluate large datasets quickly, but before relying on one, you need to know how closely its judgments match those of human experts.
No single number can tell you whether an LLM judge is trustworthy. Before you can trust the judge, you need to know whether the task itself is well-defined, whether the judge applies the rubric within the observed range of human judgments, and where exactly it goes wrong. Each of those is a separate question, and each calls for a different kind of measurement.
A complete measure of evaluation alignment can be broken down into three questions:
How reliably do humans apply the evaluation criteria?
Does the LLM agree with humans about as often as humans agree with one another?
When the LLM disagrees with the reference judgment, what kinds of errors does it make?
This guide will help you answer each of these important questions and choose the right approach for your setup.
TL;DR
Collect multiple human annotations on a representative subset. Use disagreements to identify problems with the criteria and create a more defensible reference.
Report raw human–human agreement alongside a chance-adjusted metric such as Cohen’s kappa, Fleiss’ kappa, or Krippendorff’s alpha (depending on your annotation setup).
Compare human–human and LLM–human agreement on the same examples using the same metric. Treat human agreement as context for the comparison, not as a hard performance ceiling.
Create the reference through adjudication or a true majority vote. Preserve ties and low-consensus cases rather than assigning an arbitrary label.
Against that reference, treat the LLM judge as a classifier. Report precision, recall, F1, class counts, and the confusion matrix.
Ensure that each important class—not only the dataset overall—has enough examples, and report uncertainty around the main results.
Step 1: Define the task before choosing a metric
Start by writing down four things:
unit: span | trace | session
labels:
type: nominal | ordinal | multilabel
values: [pass, fail] # or ordered list
positive_class: fail # for precision/recall
reference_policy: majority | adjudicate | soft_label
cost_asymmetry: fp_worse | fn_worse | equal
Unit: What receives one judgment: an individual LLM call (span), a sequence of steps inside a turn (trace), or the whole conversation (session)?
Label structure and measurement level: Is the task single-label or multilabel? If it is multi-label, are the categories nominal or ordinal? Three nominal labels such as hallucination, irrelevant, and incomplete have no inherent order. Three ordinal labels such as fail, partial, and pass do.
Positive class: For precision and recall, which label represents the event you are trying to detect?
Reference policy: How will multiple human judgments become an operational reference—for example, majority vote or expert adjudication?
Error cost: Which is more consequential: a false positive or a false negative?
These decisions determine which metrics are meaningful.
Step 2: Measure human-human agreement
Before evaluating the LLM judge, look at the examples with multiple human annotations.
Agreement metrics tell you whether people can apply the rubric consistently. No person is designated as correct; their judgments are treated symmetrically.
A practical starting point is:
Annotation setup
Good starting point
Two annotators, categorical labels
Cohen’s kappa
Two annotators, ordered labels
Weighted Cohen’s kappa
Three or more annotators, same number per item
Fleiss’ kappa
Missing annotations or varying annotator counts
Krippendorff’s alpha
Ordered labels with missing or varying annotations
Ordinal Krippendorff’s alpha
Any setup
Raw percent agreement as a descriptive companion is still useful.
Cohen’s kappa supports both binary and multiclass tasks; it is not limited to pass/fail. See Scikit-learn’s documentation for examples of how to configure this metric.
Krippendorff’s alpha is the flexible choice when annotation coverage is uneven. It supports multiple measurement levels, varying numbers of annotators, and missing judgments. The R Journal overview provides a detailed explanation.
Why collect multiple human annotations?
Multiple annotations serve three purposes.
First, they give you more evidence for constructing a reference label. One annotation may reflect a mistake, an unusual interpretation, or an individual bias. Multiple judgments make it possible to identify consensus, adjudicate disagreements, or preserve the distribution of opinions.
They do not automatically create ground truth. They create a more defensible basis for an operational reference. Earlier Arize coverage of judge alignment, including Judging the Judges, covers related failure modes; building on a context graph of human disagreement shows how to put those disagreements to work.
Second, disagreement helps you improve the evaluation criteria. Low agreement may indicate that:
The rubric is ambiguous.
Annotators need better examples.
Relevant context is missing.
A single label combines several concepts.
The task contains legitimate subjectivity.
The agreement score identifies that a problem exists. The disagreements themselves help you understand what to change.
Third, human agreement provides context for interpreting the judge. When qualified people regularly interpret the same examples differently, perfect human-LLM agreement may be neither realistic nor desirable.
Use annotation as part of eval development
A practical development loop looks like this:
Have multiple humans label a representative calibration set.
Calculate agreement and inspect the disagreements.
Revise the criteria, examples, or annotation process.
Run another calibration round.
Once the criteria are stable, lock the final test set.
This is why I treat annotation as part of developing the eval, not just grading it. Teams that already collect human feedback at scale can also borrow patterns from how OpenAI turns user feedback into product improvements.
Should you report raw percent agreement?
Yes—raw percent agreement is easy to understand, but it doesn’t account for random chance, individual annotator distributions, or class imbalance, so report it alongside a chance-adjusted metric.
Suppose you have 100 examples and 95 are pass. One annotator identifies the five failures; another labels everything pass. They still agree on 95% of the dataset, even though the second annotator never detects a failure.
Chance-adjusted metrics such as kappa consider the annotators’ label distributions. But kappa has quirks too: severe class imbalance can produce surprisingly low kappa despite high raw agreement, a well-documented phenomenon sometimes called the kappa prevalence paradox. Feinstein and Cicchetti describe this behavior.
The practical solution is to report several pieces of evidence together:
Raw agreement
Kappa or alpha
Label counts or percentages
The confusion matrix or major disagreement patterns
Avoid relying on universal thresholds such as “0.6 is good” or “0.8 is acceptable.” Whether an agreement level is sufficient depends on the ambiguity of the task, the risk of an incorrect decision, and how the judge will be used.
Step 3: Use human agreement as a baseline for the LLM
If humans don’t agree perfectly, we shouldn’t expect perfect human-LLM agreement either.
To make a clean comparison, calculate pairwise agreement between the LLM and each individual human annotator.
Suppose humans A, B, and C and an LLM label the same examples.
First calculate human-human agreement:
A ↔ B
A ↔ C
B ↔ C
Then calculate LLM-human agreement:
LLM ↔ A
LLM ↔ B
LLM ↔ C
Report the individual pairwise results along with their mean or range.
For example:
Pairwise human-human agreement ranged from 69% to 75%, with a mean of 72%. LLM-human agreement ranged from 68% to 71%, with a mean of 70%.
That tells you the LLM is operating close to the observed range of human reproducibility.
Be careful not to add the LLM to the annotation pool and report one combined human+LLM alpha or Fleiss’ kappa. That answers the less useful question, “How reliable is this mixed panel?” It doesn’t directly compare the LLM with the human baseline.
Also note that human agreement is a baseline, not a hard performance ceiling. A model can agree with a stable consensus reference more often than individual annotators agree with one another, particularly when individual annotations contain noise.Simulation research has shown that inter-annotator agreement is not necessarily an upper bound on model performance.
Measure the judge’s self-consistency
If the judge is nondeterministic, run it more than once on the same examples.
A judge that agrees with humans on average but changes its own answer across runs may be difficult to use reliably in monitoring, experimentation, or release gates.
Report both:
Agreement between the judge and the human reference
Agreement between repeated runs of the judge
Also record the model version, evaluator prompt, inference settings, and evaluation date. A score is difficult to reproduce when the underlying judge configuration is not versioned. Prompt design also affects judge reliability—see evidence-based prompting strategies for LLM-as-a-Judge.
Step 4: Turn the human judgments into a reference
The next step is to create one reference outcome per example.
This changes the evaluation relationship. Human-human agreement is symmetric, but once you define an operational reference, the comparison becomes asymmetric:
Human aggregate or adjudicated label = reference
LLM judgment = prediction
Possible reference policies include:
Expert adjudication
Majority vote
A predefined tie-breaking process
A consensus meeting
Preserving a distribution rather than forcing a hard label
Binary tasks
With three complete pass/fail annotations, majority vote always produces a result.
With two annotators, every disagreement is a tie. Use a third annotator or adjudication rather than silently choosing one person’s label.
Multiclass tasks
With three labels and three annotators, each annotator can choose a different class. That is not a meaningful majority.
Consider adjudicating these cases or marking them as ambiguous. If you force a hard label, preserve the vote counts so you can distinguish:
3-0: strong consensus
2-1: weak consensus
1-1-1: no consensus
You may also want to report LLM performance separately on high- and low-consensus examples. That can reveal whether the judge is failing on clear cases or merely participating in legitimate ambiguity.
Step 5: Treat the LLM judge like a classifier
Once you have a reference label, the relationship becomes asymmetric:
Human aggregate = reference label
LLM judgment = prediction
Now report classification metrics. For a hands-on comparison of label formats in practice, see testing binary vs. score evals.
For binary tasks
Choose the important positive class—often fail—and report:
Precision
Recall
F1
Confusion matrix
Support, meaning the number of examples in each class
For multiclass tasks
Report:
Precision, recall, and F1 for every class
Macro F1
Weighted F1, if useful
The full confusion matrix
Macro F1 gives every class equal weight, which helps surface poor performance on rare but important labels. Weighted F1 gives common labels more influence and can therefore hide failures on rare classes. In ordinary single-label multiclass classification, micro F1 is equivalent to accuracy, so it often adds little. Scikit-learn explains the averaging options here.
Interpretation:
Low precision: too many false positives; the judge may be overly sensitive.
Low recall: too many false negatives; the judge is missing real failures.
F1: summarizes the precision-recall tradeoff.
For ordinal labels, also consider weighted kappa or a measure of error distance. Confusing pass with partial may be less serious than confusing pass with fail.
You can still report LLM-reference percent agreement and kappa. They provide continuity with the human baseline. Precision, recall, and F1 provide the error diagnosis.
Interpreting classification metrics
These metrics reveal different failure modes in your judge.
Precision asks: Of the examples the judge labeled as failures, how many were failures according to the reference? Low precision means the judge is producing too many false positives. It may be overly sensitive or applying the rubric too broadly.
Recall asks: Of the reference failures, how many did the judge detect? Low recall means the judge is missing real failures.
F1 combines precision and recall into one score, giving them equal weight by default. It is often more informative than accuracy when failures are rare. It is useful for comparing overall performance, but it should not replace the confusion matrix or an explicit discussion of error costs.
If false negatives are more costly, prioritize recall or use an F-score that gives recall more weight, such as F2. If false positives are more costly, prioritize precision or use an F-score that gives precision more weight, such as F0.5.
The metric should reflect the operational decision the judge will support.
How many examples do you need?
There is no universal minimum. The required sample size depends on:
Expected performance
Class balance
Number of labels
Number of annotators
Desired precision
Whether you are estimating a metric or testing a claim
For a simple proportion such as raw agreement, a useful worst-case approximation at 95% confidence is:
About 100 independent examples for a margin of error near ±10 percentage points
About 400 for a margin near ±5 percentage points
These figures come from the standard sample-size calculation for a proportion. NIST provides the underlying formula.
Treat those as intuition, not a guarantee. Kappa and F1 have more complicated uncertainty, and rare classes are usually the real constraint.
Count examples per class, not only total examples
Suppose failures make up 5% of your data. A test set of 200 examples contains only about ten failures on average. Your recall estimate will be extremely unstable, no matter how impressive the total sample size sounds.
Precision depends on the number of predicted positives. Recall depends on the number of actual positives. Make sure both denominators contain enough examples to support the conclusions you want to draw.
A reasonable workflow heuristic is:
Use 30-50 representative examples with multiple annotations for early rubric iteration.
Treat results from roughly 100 examples as directional.
For a stable benchmark, plan around the desired confidence-interval width and the expected count of each important class.
If you enrich the dataset with failures to get better class coverage, say so. Precision measured on an artificially balanced set may not represent production precision because production prevalence is different. You can maintain a natural-distribution test set and a separate failure-focused challenge set.
Report uncertainty
A score of 0.78 from 40 examples does not mean the same thing as 0.78 from 4,000.
Report 95% confidence intervals around your main metrics. For kappa, alpha, and F1, bootstrapping over examples is a practical option. If multiple spans come from the same trace or conversation, resample entire traces—not individual spans—so correlated examples stay together.
When comparing two judges on the same examples, use a paired bootstrap: resample examples once and recalculate both judges’ scores and their difference.
Ready-to-use recipes
Depending on the annotation setup:
Annotation setup
Recommended approach
One human label per example
Measure LLM–reference precision, recall, and F1, but note that reference-label reliability is unknown. If possible, double-annotate a representative subset.
Two human annotators
Report raw agreement and Cohen’s kappa. Adjudicate disagreements, compare the LLM with each annotator separately, and calculate classifier metrics against the adjudicated reference.
Three or more complete annotations
Report raw agreement and Fleiss’ kappa or Krippendorff’s alpha. Calculate pairwise human–human and LLM–human agreement for a matched comparison. Use majority vote only when a true majority exists; adjudicate ties and no-consensus cases.
Annotation counts vary by example
Use Krippendorff’s alpha for overall human reliability. For the matched LLM baseline, calculate pairwise agreement wherever a human and the LLM labeled the same example. Check whether missing annotations are concentrated among difficult examples.
Depending on the label structure:
Label structure
Additional analysis
Multiclass
Report per-class metrics, macro F1, class counts, and the confusion matrix. Inspect which classes are commonly confused.
Ordinal
Use weighted Cohen’s kappa for two raters or ordinal Krippendorff’s alpha for multiple raters. Use an analysis that preserves the severity of disagreements.
What to include in your final report
At minimum, document:
The unit being judged
Label definitions and whether they are nominal or ordinal
Number of examples and label distribution
Number of annotators per example
Human-human raw agreement and kappa or alpha, with uncertainty
Pairwise LLM-human agreement on the same subset
How human labels were aggregated or adjudicated
LLM-reference precision, recall, F1, and confusion matrix
Performance by class and human-consensus level
Important disagreement patterns and rubric changes
If the LLM judge is nondeterministic, also repeat the evaluation to measure whether it agrees with itself across runs.
Putting the workflow into practice in Arize AX
A practical human-LLM judge validation workflow has four parts:
Collect representative examples.
Calibrate the human annotation process.
Run the judge on a held-out dataset.
Analyze the disagreements and version the resulting evaluator.
Arize AX supports human annotations on application data and experiment results, and LLM-as-a-Judge evaluators for automated scoring. Labeling queues can distribute a defined dataset and annotation criteria to subject-matter experts, making it easier to collect structured human feedback and identify examples where automated evaluations and humans disagree.
Start with a representative calibration set. Ask multiple annotators to apply the draft rubric, calculate agreement, and inspect recurring disagreements. Revise the criteria and examples until the rubric is sufficiently reproducible.
Then freeze the rubric and annotate the full dataset and adjudicate disagreements. Run the LLM judge against that dataset and compare its labels with the individual human judgments and the aggregated reference.
In Arize AX, an evaluator can return structured labels, scores, and explanations at the span, trace, session, or experiment level. Evaluators are versioned, allowing teams to track changes to the rubric, prompt, judge model, and configuration over time.
Use that versioning to preserve a clean record of:
Which evaluator produced each result
Which prompt and model configuration it used
Which dataset version it ran against
What changed between evaluator versions
Whether the change improved performance on the held-out benchmark
The aggregate score is only the beginning. Review the disagreements, filter by class and consensus level, and determine whether the judge is failing because of an unclear rubric, missing context, an overly broad prompt, or a genuine model limitation.
The takeaway
Agreement metrics and classification metrics are complementary:
Human-human agreement tells you whether the evaluation criteria are reproducible.
LLM-human agreement tells you whether the judge operates within the range of human variation.
LLM-reference classification metrics tell you what the judge gets wrong.
Or, more simply:
Use human disagreement to harden the eval. Use agreement metrics to conte
今日のまとめ
AIデイリーブリーフで今日の重要ニュースをまとめ読み