この記事の音声は準備中です。
音声の一覧・再生リストへ信頼度と較正(calibration)
この記事の目的
「モデルがどれくらい確信しているか(信頼度)」を取り出し・検証し、確信が低いときに縮退する(「わからない」と言わせる・人へ回す)設計ができるようになります。すべての質問に等しく答えさせるのではなく、自信のなさを行動に変えることで、失敗の高いケースを人に委ねられる状態がゴールです。
対象読者
- 誤答のコストが高い Agent(金融・医療・法務・サポート)で、確信の低い回答を止めたいエンジニア
- 「モデルは間違っていても自信満々」という問題に、測定と縮退で対処したいエンジニア
前提知識
- Agent 評価の基礎 — 何を測るか(本記事は「確信度」という出力側のシグナル)
- LLM の学習パイプライン(事前学習から選好調整まで) — なぜモデルは「知らない」と言いにくいか(幻覚モデルが事実でない内容をもっともらしく生成する現象。「もっともらしい続きを生成する」という学習目的の自然な帰結であり、対策は指示の強化ではなく、根拠の外部供給(RAG)・出典要求・検証という構造側にある。・過信の由来)
本文
概要: 分担と「確信を行動に変える」
| 対象 | 正本 | 本記事 |
|---|---|---|
| 何を測るか(評価対象・採点) | Agent 評価の基礎 | — |
| 過信・幻覚の由来(なぜ「知らない」と言えないか) | LLM の学習パイプライン | — |
| 低信頼時に人へ回す運用 | Human-in-the-Loop 設計 | — |
| 信頼度の取り出し・較正・選択的予測 | 本記事 | 取り出し方・較正の測定・棄権・閾値・再較正 |
LLM は間違っていても自信満々な傾向があります。その由来(学習の目的が「正直に不確実性を申告する」ことではない)は LLM の学習パイプライン が扱います。本記事は、それを前提に「確信度をどう取り出し、どう検証し、低いときにどう縮退するか」を扱います。
信頼度の取り出し方
「モデルの確信度」を得る手段は複数あり、それぞれ信頼性が違います。
| 取り出し方 | 仕組み | 注意点 |
|---|---|---|
| 自己申告 | 「確信度を 0〜100 で答えて」と聞く | 最も手軽だが、過信しやすく較正が悪いことが多い。数値そのものを信じない |
| 対数確率(logprob) | 出力トークンの確率を使う | 使えるモデル・用途が限られる。長い生成では解釈が難しい |
| 複数回実行の一致度 | 同じ入力を複数回実行し、答えのばらつきを見る | 答えが割れる = 不確実、というシグナル。汎用的で実装しやすい |
実務では複数回実行の一致度が扱いやすいシグナルです(Agent 評価の基礎の複数回実行を、精度だけでなく確信度の推定にも使います)。ただしどの手段も「そのまま正しい確率」ではないため、較正して初めて意味を持ちます(後述)。
較正の測定: 確信 80% は本当に 8 割正しいか
較正(calibration)とは、モデルの言う確信度と、実際の正解率が一致している性質です。「確信度 80% と言ったケースが、実際に 8 割正解している」なら較正が良く、「80% と言うのに実際は 5 割しか当たらない」なら過信しています。
- 測り方: 確信度でケースをビン分け(50%台・60%台…)し、各ビンの実際の正解率を出します。理想は「確信度 = 正解率」の対角線に乗ることです
- 過信が普通: LLM の自己申告は過信に寄りがちです。加えて、迎合(ユーザーに同調する)傾向が確信度をさらに歪めます(LLM の学習パイプライン)
- 絶対値でなく順序でも使える: 完全な較正が難しくても、「確信度が高いケースのほうが低いケースより正解率が高い」という順序が保たれていれば、閾値による縮退には使えます
選択的予測: 低信頼なら棄権する
較正した信頼度の使いどころが**選択的予測(selective prediction)**です。確信度が閾値を下回ったら、答えずに棄権する(「わからない」と言う)か、人へエスカレーションする設計です。
- 「わからない」と言わせる: 確信が低いときに無理に答えさせず、不明と答える経路を用意します。誤答のコストが高いほど、この経路の価値が上がります
- 人へ回す: 棄権を Human-in-the-Loop 設計 のエスカレーションにつなぎます。信頼度は「いつ人に渡すか」の入力信号になります(例外エスカレーションの発火条件)
- カバレッジと精度のトレードオフ: 棄権を増やすほど、答えたケースの精度は上がりますが、答える割合(カバレッジ)は下がります。「9 割のケースに答えて精度 85%」と「7 割に答えて精度 97%、残りは人へ」のどちらが良いかは、タスクの失敗コストで決めます
閾値の設計: 失敗コストとの関係
棄権の閾値は、誤答のコストと棄権のコストのバランスで決めます。
- 誤答が高くつくタスク(医療・金融・不可逆操作)では、閾値を高くし、少しでも怪しければ人へ回します
- 誤答が安いタスク(下書き生成・候補提示)では、閾値を低くし、多少怪しくても答えさせます
- 閾値は評価セットで決めます。閾値を変えながら「棄権率」と「答えたケースの精度」を測り、失敗コストに見合う点を選びます
- 「常に答える(閾値なし)」は、誤答コストが高いタスクでは危険な既定です
運用での再較正
較正はモデル更新でずれます。モデルを新しくすると、確信度と正解率の対応が変わり、以前の閾値が合わなくなります。
- モデル更新(バージョニングとモデル更新追従)のたびに、較正を測り直し、閾値を再調整します
- プロンプトの大きな変更でも較正はずれます。確信度に依存する縮退を入れているなら、較正の再測定を回帰評価に含めます
- 「一度較正したら固定」ではなく、定期的に較正を監視します。較正が崩れると、棄権が効かなくなり、過信した誤答が素通りします
実務での注意点
アンチパターン
- 自己申告の確信度をそのまま信じる → 過信・迎合で数値が歪み、危険な誤答を「高信頼」として通す → 較正を測り、順序が保たれる範囲で使う
- 較正を測らずに閾値を決める → 「確信 80%」の実際の正解率を知らずに縮退を設計し、効かない → ビン分けで確信度と正解率の対応を測ってから閾値を決める
- すべてに等しく答えさせる(棄権経路がない) → 誤答コストの高いケースでも自信満々に間違える → 選択的予測で低信頼を棄権・エスカレーションに回す
- 閾値をタスクの失敗コストと無関係に決める → 高リスクタスクで怪しい回答が通る/低リスクで棄権しすぎる → 誤答コストと棄権コストのバランスで閾値を設計する
- モデル更新後に再較正しない → 較正がずれて閾値が合わなくなり、縮退が機能しない → 更新時に較正を測り直し閾値を再調整する
チェックリスト
- 信頼度の取り出し方(自己申告・logprob・複数回一致度)を選び、その信頼性の限界を理解している
- 確信度と実際の正解率の対応(較正)をビン分けで測っている
- 自己申告の確信度をそのまま真の確率として扱っていない
- 低信頼時に棄権・エスカレーションする選択的予測の経路がある
- 棄権の閾値を、誤答コストと棄権コストのバランスで、評価セットから決めている
- 棄権を Human-in-the-Loop人間の判断(事前承認・事後レビュー・エスカレーション・監視と中断)を Agent の実行フローに組み込む設計。 のエスカレーションにつないでいる
- モデル更新・大きなプロンプト変更のたびに較正を測り直している
関連トピック
- Agent 評価の基礎 — 何を測るか(本記事は確信度という出力側シグナル)
- LLM の学習パイプライン(事前学習から選好調整まで) — 過信・幻覚・迎合の由来(前提)
- Human-in-the-Loop 設計 — 低信頼時のエスカレーション先(選択的予測の受け皿)
- ガードレール — 確信度に基づく縮退をコードで強制する側
- バージョニングとモデル更新追従 — モデル更新時の再較正の運用
- LLM-as-a-Judge — 判定器にも較正の視点(判定の確信度)が要る
参考資料
- On Calibration of Modern Neural Networks(Guo et al., 2017) — 較正の測定(信頼度と正解率の対応)と過信の議論の基礎(アクセス日: 2026-07-08)
TODO・未確認事項
なし