Skip to content
Guides1 min read

ジャッジを裁く:人間とモデルの推論を並べて見る

LLMジャッジが信頼できるのは、それを検証した相手である人間のラベルが信頼できる範囲までです。同じアイテムの上に人の思考の連鎖とモデルの思考の連鎖を並べ、それ自体が信頼区間を持つラベルに対してジャッジを確かめましょう。

Potato Team

大規模にLLMを評価している人は、いずれ必ずLLMをジャッジに使い、そしていずれ必ず、そのジャッジを信用していいのかと考えます。よくある答えは人間のラベルと突き合わせることです。しかしその照合は人間のラベルの質を超えられませんし、人間同士が食い違っていて、それがどの程度なのかを誰も書き留めていないなら、「ジャッジは人間と一致する」は弱い主張にすぎません。 この記事はその隙間を埋める話です。モデルがどう推論するかを測り、人がどう推論するかを測り、その2つを正直に比べます。

Potato 2.7は1つの考えを軸に組み立てられています。アノテーションツールは、判断を記録するだけでなく、それがどう下されたかを測るべきだ、という考えです。面白いのは、それが2種類の判断者のどちらにも当てはまることです。

ジャッジの検証にある弱点

標準的なワークフロー自体はまっとうです。手作業でラベルを付けるには大きすぎるタスクがあるので、モデルにプロンプトを与えて採点させます。そのスコアを信じる前にサンプルを取り、人間にラベルを付けてもらい、ジャッジと人間の一致度を測ります。Cohen's κが十分に高ければ、そのまま出します。

弱いのは最後の段階です。そのκが比べているのは、あなたのジャッジとある1つの人間のラベル、たいていは2〜3人のアノテーターの多数決です。そして多数決は、エラーバーのない点推定です。3人がすぐ一致した場合でも、長い議論の末に2人が1人を押し切った場合でも、まったく同じ確信度で「sarcastic」と言います。

だから、ジャッジが人間とκ = 0.71で一致すると報告するとき、あなたは自分では不確実性を測っていない数値との一致を報告していることになります。難しいアイテムでの人間のラベルがコイン投げに近いなら、そこでのκが測っているのはほとんどノイズで、プロンプトをいくら工夫しても動きません。

ジャッジのキャリブレーションジャッジと人間の整合性の仕組みについては以前に書きました。2.7が足すのはもう半分、つまりその比較の人間側にも不確実性を持たせることです。

まず人間のラベルにエラーバーを付ける

心理測定エンジンは、人間のアノテーションに項目反応理論のモデルを当てはめ、各ラベルを区間つきの事後確率として報告します(sarcastic, p = 0.94 [0.88 – 0.97])。何人が投票したかだけでなく誰が投票したかを重み付けしたものです。

Truth Serumはピア予測によるスコアリングを足し、多数派が自信を持っていながらおそらく誤っているアイテムにフラグを立てます。

これでジャッジとの比較の形が変わります。

ジャッジは71%のアイテムで多数派ラベルと一致する

ではなく、こう言えるようになります。

ジャッジは、人間のラベルが確信的(p > 0.9)なアイテムでは94%、そうでないアイテムでは52%、人間の事後確率と一致する。確信度の低いアイテムは全体の18%を占める

2つ目の言明は、1つ目にはない意味で行動につながります。ジャッジは簡単なケースでは問題なく、難しいケースでは当てにならないと分かりますし、自分のデータのどれだけが難しいかも分かります。さらに、居心地は悪いけれど有用なことも教えてくれます。本当に曖昧なアイテムでは、ジャッジが一致すべき正解がそもそも存在しないかもしれないということ、そしてそこで高いκを追いかけるのはノイズを追いかけているということです。

これがジャッジ ↔ 人間の整合性ダッシュボードの役目であり、人間のプロセスまわりの機能とエージェント評価の機能が2つのリリースではなく同じリリースに入っている理由です。

同じアイテムの上に、2つの思考の連鎖

比較のもう半分は、推論そのものです。

Think-Aloud モードは、がどうラベルへ推論していくかを記録します。アノテーターは作業しながら話し、音声認識はローカルで動き、文字起こしは逐語で、要約せずに保存されます。think-aloudプロトコルを言い換えると、集めようとしていたものが壊れるからです。

検出された音声ラベルとともに表示される、発話そのままの推論の文字起こし逐語で捉えた、人間の思考の連鎖

プロセス報酬アノテーションは、モデルがどう推論するかを記録します。モデルの思考の連鎖はステップに切り分けられ、各ステップに良い・悪い・どちらでもないの報酬シグナルが付きます。これがプロセス報酬モデルの学習シグナルになります。

yaml
annotation_schemes:
  - annotation_type: process_reward
    name: cot_review
    description: "Rate each step of the model's reasoning."
    steps_key: reasoning_steps

同じアイテム。2つの思考の連鎖。並べて置いてください。

この比較から実際に分かること

分かりやすい使い道は、モデルが人と違う推論をしている場所を見つけることです。それがなぜ重要なのかは、具体的に言う価値があります。

最終回答の採点では、正しい理由で正解したモデルと、誤った理由で正解したモデルの区別がつきません。皮肉のタスクなら、人はこう言うかもしれません。「ここでは "thanks so much" が効いている。2日の遅れに、そこまで強く礼を言う人はいない」("the 'thanks so much' is doing the work here. Nobody thanks you that hard for a two-day delay.")。モデルのほうは、テキストに感嘆符が入っているという理由で同じラベルにたどり着くかもしれません。どちらも正解として記録されます。一般化するのは片方だけです。

これはラベルからは検出できません。推論からなら検出できます。だから両方を持っておく手間には見合います。

2つ目の使い道は学習データです。人の推論とモデルの推論が分かれるステップは、ほぼ定義からして、プロセス報酬データセットの中で最もシグナルの強いステップです。出力には表れない形でモデルのプロセスが誤っている場所だからです。

正直な限界を1つ。 Potatoは記録の面を2つ提供し、それらを並べて見せます。人の思考の連鎖とモデルの思考の連鎖のあいだの類似度指標を自動で計算することはしませんし、あえて出していません。「この2つの推論トレースは一致している」が何を意味するかは未解決の研究上の問いで、こちらででっち上げた数字は、数字がないより悪くなります。権威ありげに見えて、ほとんど何も意味しないからです。大事なのは資料のほうで、指標を定義するのはあなたの仕事です。

組み立ててみる

2.7で擁護できる評価パイプラインは、だいたいこんな形になります。

  1. サンプルに人間がラベルを付ける。 心理測定を有効にしておきます。どのラベルにも事後確率と区間がつき、曖昧なアイテムは黙って誤ラベルされるのではなく曖昧なものとして識別されます。
  2. Truth Serumを走らせて、自信を持った多数派がおそらく誤っているアイテムを拾います。
  3. ガイドラインを直します。 コードブックのバグ検出が負の識別力にフラグを立てた箇所です。収束していく様子を一致度の動きで見られるノーミングルームでやるのが理想です。
  4. そのラベルに対してジャッジをキャリブレートし、整合性を1つの数値ではなく人間の確信度で条件付けて報告します。
  5. 判定だけでなく推論も確認します。 ジャッジと人間が食い違ったアイテムについてです。

どのステップもYAMLで書けて、自前でホストでき、無料です。1から3まではLLMをまったく必要としません。

これだけでLLMジャッジが信頼できるようになるわけではありません。ここで得られるのは、信頼できるという主張を本物にすることです。区間の付いた言明であり、相手も区間を持つ人間のラベルであり、対象は難しさについて正直に何かが言えるアイテムである、という主張です。

これは「私たちのジャッジは人間の価値観と整合している」より低い基準ですが、ずっと役に立つ基準です。

参考資料