確率はどこまで信じられるか
このページが答えるのは一つです。その信頼度は、そもそも信じられるのか。
結論を先に言います。「出力の形が保証されている」ことと「その確率が正確である」ことは、 まったく別の主張です。 前者は複数の方向から検証されています。後者は現在、 公開の場で争われています。意思決定モデルを本番のゲートに置く人は、 ベンダーやプロジェクトの自己申告する信頼度を校正すべき事前分布として扱い、 保証として扱わないでください。
校正とは
モデルが「80% の確率で確信している」と言ったとします。80% と言ったものを すべて集めたとき、そのちょうど 80% が正しければ、その数は校正されている。 少なければ過信です。
指標としてよく使われるのが ECE(期待校正誤差)です。予測を信頼度でビン分けし、 各ビンの平均信頼度と実際の正解率を比べ、ビンの大きさで重み付けして平均します。 小さいほど良い。
校正と精度は独立した二つの軸です。 精度の高いモデルがひどく過信していることも (特に最も難しい部分で)、精度が平凡なモデルがよく校正されていることもあります。 以下で両方を見ます。
対策一:温度スケーリング
最も安く、最も一般的な対策です。考え方はこうです。モデルの選択肢の順序は たいてい正しく、スケールが間違っている。過信とは、すべての確率が 0 と 1 に 寄りすぎていることです。温度パラメータを一つ、ホールドアウトでフィットさせて、 分布を平らにするか尖らせます。
オフラインで再実行できる評価を同梱した再実装が、実測値を出しています。
温度スケーリングと conformal 棄権で、ECE が 0.170 から 0.071 へ(交差検証)。
「交差検証」に注意してください。同じデータでフィットして評価したのではありません。 これが、信じるに値する数字とそうでない数字の違いです。
対策二:conformal 棄権
温度スケーリングが扱うのは「スケール」、conformal が扱うのは 「いつ答えないか」です。
すべての確率を正しくするのではなく、棄権集合を出し、 「真値がその集合に入る割合」が指定した水準を下回らないこと(被覆保証)を狙います。 基準を満たさない事例は自動経路に入らず、エスカレーションされます。
実プロジェクトでの使われ方:
- 118M のオープンな代替実装は、温度スケーリングと split-conformal の棄権集合を使い、 公開スイートで ECE 0.01〜0.03 を報告します。同時に、typed decisions ベンチマークでは Laya に負ける(0.71 対 0.77)と自ら書いています。負けも書くプロジェクトの数字は、 勝ちだけを書くものより参考になります。
- 医療向けの実装は、凍結した二つのローカル読み手 + フィット不要のルータ + split-conformal の候補集合で誤差の上限を押さえ、各 600 問の国家資格試験三つで ホスト版と 2 点以内に収めています。微調整も蒸留もなしです。
両者に共通するのは、確率そのものが正確になったとは主張していないことです。 主張しているのはいつ正確でないかを知っていること。実際のシステムで ゲートに使えるのは後者です。
直感に反する独立実測:偏りの向きが逆
独立した校正テストが、900 件のルール生成チケット(モデルが見たはずのないもの)と 公開ベンチマーク三つを使い、すべての生の応答と、模擬ノイズフロアに対する ECE を 公開しました。得られたのは符号についての結論です。
| プリミティブ | 偏りの向き |
|---|---|
Choice |
体系的に過信 |
Score |
体系的に過信 |
Boolean(Noul) |
体系的に自信不足 |
価値は符号にあります。偏りがランダムなら、大域的な温度一つで直せます。 向きが逆ということは、単一の大域補正では直せない —— 少なくともプリミティブごとに校正する必要があります。
これは特定の設計の失敗も説明します。Noul と Choice の信頼度を
同じしきい値で比べるシステムは、短すぎる物差しと長すぎる物差しで
同じものを測っていることになります。
入力言語も校正に影響する
もう一つの実測。3,200 件の人手ラベル付きスペイン語コーパスで、
state をスペイン語で書くと精度が 3.0〜6.4 点落ち、 XNLI / PAWS-X の ECE がおよそ倍になった。 一方、instructions をスペイン語で書いても影響はなかった。
state と instructions の区別が要点です。前者は内容、後者はメタ情報です。 中国語や日本語の読者にとって特に関係があります。中国語や日本語の state も おそらく同じ道を通りますが、それを測って公開した人はいません。 あなたの言語で起きていないと仮定する理由はありません。
ではしきい値はどう決めるのか
ここまでのすべてが同じ問いに着地します。その 0.8 はどこから来たのか。
再現可能な答えは推測せず測るです。自分のラベル付きデータで、 目標精度に届く質問ごとのしきい値をフィットし、ホールドアウトで検証する。
それをそのまま行うツールがあり、最も重要な工程を一つ加えています。 モデル更新が固定済みのしきい値を壊したら CI を失敗させる。 しきい値は価格と同じで古くなります。違いは、価格を間違えれば気づかれ、 しきい値を間違えても気づかれないことです。
一文で
信頼度は事前分布として扱い、保証として扱わない。 まず自分のデータで「信頼できる帯」を測り、その帯をコードに書いてください。