信頼度校正ベンチマーク(シンライドコウセイベンチマーク)
信頼度校正ベンチマーク(Calibration Benchmark)とは、LLMや機械学習モデルの信頼度校正品質を標準化された条件下で定量的に評価するためのデータセット・評価指標・実験プロトコルの総称である。ECE、ACE、Brier Score等の校正指標をTriviaQA、MMLU、MedQA等の標準データセット上で計測しモデル間の校正性能を公正に比較する。
信頼度校正ベンチマークとは
信頼度校正ベンチマーク(Calibration Benchmark)は、モデルの校正品質を再現可能かつ公正に評価するための標準化されたフレームワークである。個別のタスクやデータセットでの校正評価は条件のばらつきにより比較困難であるため、統一的なベンチマークの必要性が高まっている。
2024-2025年にかけてLLMの校正評価に関する研究が急増し、複数のベンチマークスイートが提案された。代表的なものとして、Kadavath et al.(2022)のTruthfulQAベース評価、Tian et al.(2023)のJust Ask for Calibration評価、Kuhn et al.(2023)のSemantic Uncertainty評価がある。
校正ベンチマークが満たすべき要件は以下の通りである。
| 要件 | 説明 | 重要度 |
|---|---|---|
| 再現性 | 同一条件で同一結果が得られる | 必須 |
| 公正性 | モデル間の比較が妥当である | 必須 |
| 包括性 | 多様なドメイン・難易度をカバー | 高 |
| 効率性 | 評価コスト(API料金・時間)が現実的 | 高 |
| 解釈性 | 結果からの改善示唆が明確 | 中 |
主要な評価データセット
LLMの校正評価に広く使用されるデータセットを分類別に整理する。
一般知識・推論
| データセット | 問題数 | タスク | ドメイン | 難易度 |
|---|---|---|---|---|
| TriviaQA | 95,000+ | 短答式QA | 一般知識 | 中 |
| MMLU | 15,908 | 4択 | 57学術分野 | 中〜高 |
| ARC-Challenge | 2,590 | 4択 | 理科 | 中 |
| HellaSwag | 10,042 | 4択 | 常識推論 | 中 |
| WinoGrande | 1,267 | 2択 | 代名詞解決 | 中 |
| BoolQ | 3,270 | Yes/No | 読解 | 低〜中 |
| TruthfulQA | 817 | 自由回答 | 事実性 | 高 |
専門ドメイン
| データセット | 問題数 | タスク | ドメイン | 校正の重要度 |
|---|---|---|---|---|
| MedQA | 12,723 | 4択 | 医療(USMLE) | 極高 |
| LegalBench | 10,000+ | 多様 | 法律 | 極高 |
| FinanceBench | 10,231 | 数値/4択 | 金融 | 高 |
| SciQ | 13,679 | 4択 | 科学全般 | 中 |
| CodeContests | 13,328 | コード生成 | プログラミング | 中 |
数学
| データセット | 問題数 | 難易度 | 校正の特徴 |
|---|---|---|---|
| GSM8K | 8,792 | 小中学校 | 推論ステップ数と校正の関係を評価 |
| MATH | 12,500 | 高校〜大学 | 高難易度での過信傾向を評価 |
| AIME | 900+ | 数学オリンピック | 極高難易度での校正を評価 |
校正評価指標の詳細
ECE(Expected Calibration Error)
最も標準的な校正指標。確信度をM個のビンに等間隔分割し各ビンの確信度と正答率の乖離を加重平均する。
def compute_ece(confidences, correctness, n_bins=15):
bin_boundaries = np.linspace(0, 1, n_bins + 1)
ece = 0.0
for i in range(n_bins):
mask = (confidences > bin_boundaries[i]) & (confidences <= bin_boundaries[i+1])
if mask.sum() == 0:
continue
bin_acc = correctness[mask].mean()
bin_conf = confidences[mask].mean()
ece += (mask.sum() / len(confidences)) * abs(bin_acc - bin_conf)
return ece
ACE(Adaptive Calibration Error)
ECEのビン幅依存性を解消するため等サンプル数ビン(各ビンに同数のサンプルを含む)を使用する。
Brier Score
確率予測の精度を測る複合指標。校正(Calibration)と識別力(Refinement)の両方を捕捉する。
Brier Score = (1/N) Σ (p_i - y_i)^2
p_iは予測確率、y_iは実際のラベル(0 or 1)。0に近いほど良い。Brier Scoreは以下のように分解可能である。
Brier Score = Calibration + Refinement + Uncertainty
AUROC(Area Under Receiver Operating Characteristic)
確信度スコアを用いて正解と不正解を分離する能力を測る。校正そのものではなく識別力の指標だがSelective Predictionの性能評価に重要である。
| 指標 | 測定対象 | 範囲 | 最適値 | ビン依存性 |
|---|---|---|---|---|
| ECE | 校正誤差 | [0, 1] | 0 | あり |
| ACE | 校正誤差(適応型) | [0, 1] | 0 | なし |
| MCE | 最大校正誤差 | [0, 1] | 0 | あり |
| Brier Score | 校正+識別力 | [0, 1] | 0 | なし |
| AUROC | 識別力 | [0.5, 1] | 1 | なし |
| AUPRC | 識別力(不均衡対応) | [0, 1] | 1 | なし |
LLMの校正ベンチマーク結果
2025年時点の主要LLMの校正性能を代表的データセット上で比較する(Temperature Scaling適用前後)。
| モデル | MMLU ECE(校正前) | MMLU ECE(TS後) | TriviaQA ECE(校正前) | TriviaQA ECE(TS後) |
|---|---|---|---|---|
| GPT-4o | 0.15 | 0.04 | 0.18 | 0.05 |
| Claude 3.5 Sonnet | 0.12 | N/A(logit非公開) | 0.14 | N/A |
| Gemini 1.5 Pro | 0.14 | 0.03 | 0.16 | 0.04 |
| Llama 3.1 70B | 0.19 | 0.05 | 0.22 | 0.06 |
| Llama 3.1 8B | 0.25 | 0.08 | 0.28 | 0.09 |
| Mistral Large | 0.16 | 0.05 | 0.19 | 0.06 |
| Mixtral 8x22B | 0.20 | 0.06 | 0.23 | 0.07 |
校正の傾向分析
上記結果から以下の傾向が読み取れる。
- モデルサイズと校正: 大規模モデル(70B+)は小規模モデル(8B)より校正が良好。ただし完全校正には至らない
- Temperature Scalingの効果: logit公開モデルではTemperature ScalingによりECEが60-80%改善
- ドメイン依存性: 一般知識(TriviaQA)より専門知識(MMLU)の方が校正が良好な傾向
- 過信の普遍性: 全モデルが校正前に過信傾向を示す。ECE > 0.10が一般的
ベンチマーク実行の実装
import json
from dataclasses import dataclass
@dataclass
class CalibrationResult:
model: str
dataset: str
ece: float
ace: float
brier: float
auroc: float
coverage_at_95: float
n_samples: int
def run_calibration_benchmark(model_client, dataset, calibrator=None):
confidences = []
correctness = []
for item in dataset:
response = model_client.generate(item["question"])
conf = model_client.get_confidence(item["question"], response)
if calibrator:
conf = calibrator.transform(conf)
is_correct = evaluate_answer(response, item["answer"])
confidences.append(conf)
correctness.append(is_correct)
confs = np.array(confidences)
corrs = np.array(correctness)
return CalibrationResult(
model=model_client.name,
dataset=dataset.name,
ece=compute_ece(confs, corrs),
ace=compute_ace(confs, corrs),
brier=compute_brier(confs, corrs),
auroc=compute_auroc(confs, corrs),
coverage_at_95=compute_coverage_at_accuracy(confs, corrs, target_acc=0.95),
n_samples=len(confidences)
)
Reliability Diagram(信頼性図)
校正品質を視覚的に評価する最も重要なツールがReliability Diagram(信頼性図)である。横軸に確信度、縦軸に正答率をプロットし対角線(完全校正)からの乖離を可視化する。対角線より上にプロットされた領域は過小評価(Underconfident)、下の領域は過信(Overconfident)を示す。
import matplotlib.pyplot as plt
def plot_reliability_diagram(confidences, accuracies, n_bins=10, title="Reliability Diagram"):
bin_boundaries = np.linspace(0, 1, n_bins + 1)
bin_accs = []
bin_confs = []
bin_sizes = []
for i in range(n_bins):
mask = (confidences > bin_boundaries[i]) & (confidences <= bin_boundaries[i+1])
if mask.sum() > 0:
bin_accs.append(accuracies[mask].mean())
bin_confs.append(confidences[mask].mean())
bin_sizes.append(mask.sum())
else:
bin_accs.append(0)
bin_confs.append((bin_boundaries[i] + bin_boundaries[i+1]) / 2)
bin_sizes.append(0)
fig, ax = plt.subplots(1, 1, figsize=(8, 6))
ax.bar(bin_confs, bin_accs, width=1.0/n_bins, alpha=0.7, label="Model")
ax.plot([0, 1], [0, 1], "r--", label="Perfect Calibration")
ax.set_xlabel("Confidence")
ax.set_ylabel("Accuracy")
ax.set_title(title)
ax.legend()
return fig
よくある質問(FAQ)
Q1: 校正ベンチマークのビン数はいくつが適切ですか?
A1: ECE計算のビン数は結果に大きく影響する。ビン数が少なすぎると(M=5)局所的な校正不良を見逃しビン数が多すぎると(M=50)各ビンのサンプル数が不足し統計的に不安定になる。一般的な推奨はM=10〜15であり、Nixon et al.(2019)はM=15を標準として提案している。より頑健な評価にはACE(等サンプル数ビン)を併用することが推奨される。サンプル数が1,000未満の場合はM=10、10,000以上の場合はM=20まで増やしてもよい。
Q2: 校正とモデル精度(Accuracy)の関係は?
A2: 校正とモデル精度は独立した概念である。精度が高くても校正が悪いモデル(過信する高性能モデル)も精度が低くても校正が良いモデル(自身の限界を正しく認識するモデル)も存在する。GPT-4oは精度86%でECE 0.15(校正前)であり高性能だが過信気味である。一方Llama 3.1 8Bは精度65%でECE 0.25と精度も校正も低い。重要なのは両方の指標を並行して評価し用途に応じて重み付けすることである。
Q3: 新しいLLMの校正評価にはどのベンチマークを使うべきですか?
A3: 用途に応じた推奨ベンチマークセットは以下の通りである。(1)汎用評価: MMLU(57分野カバー) + TriviaQA(一般知識) + TruthfulQA(事実性) + GSM8K(数学推論)の4データセット。API費用は約$50-100/モデル。(2)医療特化: MedQA + PubMedQA + 臨床シナリオデータセット。校正評価に加えSelective Prediction性能も測定必須。(3)最小評価セット: 予算制約がある場合はMMLU(15,908問)のみで一定の信頼性ある校正評価が可能。ただし1データセットでの評価はドメインバイアスのリスクがあるため、少なくとも2データセット以上での評価が望ましい。
Q4: 校正評価の結果をどのように報告すべきですか?
A4: 校正評価の報告には以下の5要素を含めるべきである。(1)使用した評価データセットとサンプル数。(2)ビン数Mと分割方法(等間隔 vs 等サンプル数)。(3)ECE/ACE/Brier Scoreの数値(標準誤差付き)。(4)Reliability Diagramの可視化。(5)Selective Prediction性能(95%精度時のカバレッジ等)。複数回実行した場合は平均値と標準偏差を報告する。プロンプト(System Prompt含む)の全文も再現性のために公開すべきである。