評価プロトコルと指標
September 18, 2026 · View on GitHub
機械可読仕様は metrics.json。実装は metrics.py、evaluate.py、paired.py。
QWK、RPS、実モデルの速度計測など、仕様だけで今回未実装のものもJSONに区別しています。
1. 混ぜない三つの評価
A. 意味理解の比較(choice)
3値NLIは entailment / contradiction / neutral を通常の3候補として提示します。
このときneutralは「正しい分類結果」になり得るため、APIの保留候補にはしません。
2値NLIは entailment / non-entailment のままです。
現行APIが保留しても、調査用の proposed_value を使って意味理解の正答率を測れます。
この正答率は、自動処理に採用できる割合ではありません。
必須指標:
- Accuracy = 正答数 / 全指定例数。エラー・不正出力は不正解として分母に残す。
- Macro-F1 = 固定クラス集合のクラス別F1の平均。支持も予測も0なら当該F1は0。
- Balanced Accuracy = goldに出現するクラスごとのRecallの平均。欠けたクラス数も支持数表で確認する。
- クラス別支持数・Precision・Recall、混同行列、API/パースエラー数。
- 否定、語順、条件、時制、テンプレート等のタグ別正答率。
- group単位の全問正解率(群サイズに依存する補助指標)と、group bootstrapによるAccuracyの区間。
JNLIのような不均衡データではAccuracyのみでモデルを選びません。 HANSの30,000例で他の小さな診断セットを圧倒するmicro平均も採用しません。 単一の総合指標が必要になった場合は、対象データセットと重みをモデル評価前に固定します。
B. 製品としての真偽・保留(noul)
| NLI gold | 真偽の教師 | 根拠の十分性 | 望ましい動作 |
|---|---|---|---|
| entailment | true | known | 検証済みの条件を満たせば採用 |
| contradiction | false | known | 検証済みの条件を満たせば採用 |
| neutral | 教師値なし | unknown | 保留 |
| binary non-entailment | 不明 | 不明 | この変換をしない |
これはNLI規約内の診断上の対応付けです。現実の情報不足・対象業務外・権限不足を一つのneutralラベルだけで網羅したとはみなしません。
必須指標:
- knownのみの真偽Accuracy/F1/AUROC。neutralをfalseや0.5の正解として混ぜない。
- Coverage = 実際のaccepted / 全例。保留と運用エラーは分母に残す。
- Selective risk = accepted内の誤り / accepted。neutralの採用は真偽出力にかかわらず誤り。
- Unknown false acceptance rate = unknownの誤採用 / unknown。
- Unknown abstention recall = unknownで正常に保留した数 / unknown。HTTPエラーは正しい保留に含めない。
- knownの保留率、運用エラー数、acceptedの文書/原典グループ数。
evidence_scoreのknown/unknown AUROC。主判定との積を正解確率としない。
全部保留の場合はCoverage=0、Selective risk=null。誤り率0%・安全性100%とは出しません。 真偽の診断閾値は0.5ですが、これは業務上の自動採用閾値ではありません。 採用判定はモデル/業務/補正設定に結び付いたv1ポリシーで行い、この評価器が勝手にacceptedを作りません。
C. 段階・連続値(score)
今回取得したJSTSのgoldは0〜5の人手平均で、小数があります。 丸めずにPearson、Spearman、MAE、RMSEを報告します。
- MAE =
mean(abs(pred-gold))。 - RMSE =
sqrt(mean((pred-gold)^2))。 - Spearmanは同値を平均順位で扱う。
- 定数予測や標本不足で相関が定義できないときは
null。0で代用しない。 - 無効出力があれば全件の指標は
nullとし、成功例限定の診断値と失敗率を別記する。 - 本来の離散順序goldが得られたらQWKやRPSを追加可能。小数goldを丸めて別問題に変えない。
6段階の意味説明から期待値を返すAPI経路は、原典とgoldを共有する新しいモデル入力プロトコルです。 公開された回帰モデルの成績とは学習・入力方式が異なります。
2. 確率の質
完全な数値分布が全例にある場合のみ計算します。 一部の例だけに確率がある場合は件数を記録し、全件の確率指標を出しません。 NaN、Inf、負値、総和不一致、ラベル集合不一致は停止します。
| 指標 | 定義・注意 |
|---|---|
| NLL | mean(-log(p_gold))。実装上は下限1e-15。クリップ規則を固定 |
| Multiclass Brier | mean(sum_k((p_k - onehot(y)_k)^2))。クラス数で割らない。範囲0〜2 |
| Binary Brier | mean((p_true-y)^2)。knownのみ。範囲0〜1。二値multiclass版の半分 |
| ECE | 15等幅ビン、最大確率と正答率の差の加重平均。補助指標 |
Top-label校正の指標を計算する場合、予測が確率分布のargmaxと一致することも要求します。同率最大は許容します。 モデルの文章による自己申告の自信を、対数尤度や本物のモデル確率に変換しません。
確率補正には別の校正データを使います。テストで温度を選び、そのテスト上の改善を独立した結果として報告しません。 参考: Guo et al., 2017。
3. Risk–coverageと信頼区間
aurc_right_step_tie_groupedは、confidenceの同点をまとめて採用したrisk–coverage曲線を右端階段積分したものです。
同点を正答順に並べて有利な曲線を作りません。この有限標本の積分規則まで同一でなければ、他実装のAURCと同じ値とは限りません。
AURCはモデル全体の正答率にも依存します。曲線、指定された採用率でのrisk、業務上の誤採用率と併記し、単独順位に依存しません。 この注意は最近の選択的予測の研究でも議論されています:
- Zhou et al., ICML 2025: Population AURC
- Overcoming Common Flaws in the Evaluation of Selective Classification Systems, NeurIPS 2024
片側95%上限
採用例で誤り0件なら上限は 1 - 0.05^(1/n)。
独立性を仮定した場合、上限1%以下には最低299採用例が必要です。
binomial_upperは誤りがある場合もClopper–Pearson片側上限を計算します。
同じ画像・契約・テンプレートの派生例を299件集めても、独立299例にはなりません。
このツールのselective_risk_iid_upper95は独立性を未確認の参考値です。
現時点の公開データ集から、本番の「誤り率1%未満」を認定しません。
Accuracyのgroup bootstrapは原典groupを1000回復元抽出(seed=17)します。 グループが1つしかない場合は区間を返しません。巨大な群や少ない群では不安定なので群数も報告します。
4. 翻訳比較
同じモデル・設定を、同一source IDの英語・日本語へ適用します。
- Accuracy差(日本語−英語)とペアのgroup bootstrap区間。
- 日英の予測一致率。
- 両方正答、英語のみ正答、日本語のみ正答、両方誤答の件数。
- 翻訳後に人がgoldを変更した場合は、その例を同一goldのAccuracy差から分離。
予測一致は正解を意味しません。両方が同じ誤りをする可能性があります。 また、英語より低い成績の原因には、モデルの日本語能力だけでなく残存翻訳誤りもあり得ます。
5. フロンティア/オープンモデル比較の必要条件
runごとに最低限、以下を保存します。
- データセット・split・全件/部分集合・データSHA・原典ID集合。
- モデルID・APIスナップショットまたは重みコミット・量子化・トークナイザー。
- 入力プロトコル版、ラベル説明、候補順序、few-shot例とその出典、回答抽出法。
- temperature、seed、max tokens、reasoningの有無/予算、無効回答・打切りの処理。
- 分布の取得方法。得られない確率指標は未測定のまま。
- 速度を比べるならhardware、入力長、枝数、バッチ、同時数、warmup、失敗率。
- 校正・閾値決定に用いたデータと対象範囲。評価データとの重複監査。
公開表は次の区分で保存しています:
reference_only_not_same_protocol: Nejumi意味解析等。タスクは関連するが部分集合・プロトコルが異なる。reference_only_training_and_prompt_differ: JGLUEの教師ありモデル。context_only_different_tasks: Swallowの総合・知識・コードなど。
同じデータで再実行していない公開成績との差を、そのまま「tiny-jevの優劣」と発表しません。