評価プロトコルと指標

September 18, 2026 · View on GitHub

機械可読仕様は metrics.json。実装は metrics.pyevaluate.pypaired.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真偽の教師根拠の十分性望ましい動作
entailmenttrueknown検証済みの条件を満たせば採用
contradictionfalseknown検証済みの条件を満たせば採用
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、負値、総和不一致、ラベル集合不一致は停止します。

指標定義・注意
NLLmean(-log(p_gold))。実装上は下限1e-15。クリップ規則を固定
Multiclass Briermean(sum_k((p_k - onehot(y)_k)^2))。クラス数で割らない。範囲0〜2
Binary Briermean((p_true-y)^2)。knownのみ。範囲0〜1。二値multiclass版の半分
ECE15等幅ビン、最大確率と正答率の差の加重平均。補助指標

Top-label校正の指標を計算する場合、予測が確率分布のargmaxと一致することも要求します。同率最大は許容します。 モデルの文章による自己申告の自信を、対数尤度や本物のモデル確率に変換しません。

確率補正には別の校正データを使います。テストで温度を選び、そのテスト上の改善を独立した結果として報告しません。 参考: Guo et al., 2017

3. Risk–coverageと信頼区間

aurc_right_step_tie_groupedは、confidenceの同点をまとめて採用したrisk–coverage曲線を右端階段積分したものです。 同点を正答順に並べて有利な曲線を作りません。この有限標本の積分規則まで同一でなければ、他実装のAURCと同じ値とは限りません

AURCはモデル全体の正答率にも依存します。曲線、指定された採用率でのrisk、業務上の誤採用率と併記し、単独順位に依存しません。 この注意は最近の選択的予測の研究でも議論されています:

片側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ごとに最低限、以下を保存します。

  1. データセット・split・全件/部分集合・データSHA・原典ID集合。
  2. モデルID・APIスナップショットまたは重みコミット・量子化・トークナイザー。
  3. 入力プロトコル版、ラベル説明、候補順序、few-shot例とその出典、回答抽出法。
  4. temperature、seed、max tokens、reasoningの有無/予算、無効回答・打切りの処理。
  5. 分布の取得方法。得られない確率指標は未測定のまま。
  6. 速度を比べるならhardware、入力長、枝数、バッチ、同時数、warmup、失敗率。
  7. 校正・閾値決定に用いたデータと対象範囲。評価データとの重複監査。

公開表は次の区分で保存しています:

  • reference_only_not_same_protocol: Nejumi意味解析等。タスクは関連するが部分集合・プロトコルが異なる。
  • reference_only_training_and_prompt_differ: JGLUEの教師ありモデル。
  • context_only_different_tasks: Swallowの総合・知識・コードなど。

同じデータで再実行していない公開成績との差を、そのまま「tiny-jevの優劣」と発表しません。