トピックハブ

評価とベンチマーク

数値に意味をもたせるためのモデルの測り方。古典的な評価指標とホールドアウト分割から、ベンチマークの汚染、LLM-as-judgeの落とし穴、人手評価、オンラインのA/Bテストまでを解説します。

更新 2026年11月13日 · 評価指標、ホールドアウト集合、汚染、LLM-as-judge、人手評価、A/Bテスト、較正、リーダーボード

概要

評価は、機械学習のうち、他のすべてがうまくいったかどうかを決める部分です。モデルとは将来のデータについての主張であり、評価はその主張を検証する実験です。うまく行えば、2つのモデルのどちらを出荷すべきか、どの程度自信をもてるかを教えてくれます。まずく行えば、聞きたかったことを教えてくれるだけで、誤りはプロダクションに出てから初めて表面化します。

このハブは、数値を出してそれを擁護しなければならないエンジニアのためのページです。古典的なツールキット(評価指標、分割、信頼区間)、大規模な事前学習済みモデルとともに現れた問題(ベンチマークの汚染、飽和したリーダーボード、別のモデルによる評価)、そしてプロダクトにとって唯一の正解であり続けるオンライン手法(人間による評定、A/Bテスト)を扱います。指標の定義は/reference/evaluation-metrics/にあり、入門レッスン/learn/beginner/06-evaluation-that-does-not-lie/はコード付きで基礎を順に説明しています。

重要な考え方

ホールドアウト集合は一度きりの計測器

テスト集合は、ひとつの問いに正直に答えます。このモデルは、一度も影響を与えたことのないデータに対してどう振る舞うか、という問いです。テストスコアを見て何かを変えるたびに、集合はあなたの判断に少しずつ情報を漏らし、十分な回数を繰り返したあとでは、テストスコアは名前だけ立派な検証スコアになっています。守るべき規律は、3つに分割し(学習、検証、テスト)、検証集合だけで調整し、テスト集合はめったに見ないことです。時系列データやグループ化されたデータには、時間とグループの境界を尊重する分割が必要です。そうしないと、ほぼ重複したデータが分割をまたいでしまい、スコアが水増しされます。/learn/beginner/02-data-is-the-model/でリークを詳しく扱っています。

数値には不確かさを添えて報告してください。テスト集合に対するブートストラップなら数行で信頼区間が得られ、2つのモデルの差がその区間の内側にあるなら、それは結果ではありません。

ベンチマークは飽和し、漏れる

公開ベンチマークは全員が共有するホールドアウト集合であり、インターネット上にあります。つまり事前学習コーパスに含まれているということです。汚染は直接的なもの(テスト問題が学習データにそのまま現れる)も、間接的なもの(言い換え、解答、議論)もあります。Zhang et al.(2024)はGSM8Kを同じスタイルの新しい問題で再構築し、いくつかのモデルが元の集合よりも新しい集合で目に見えて低いスコアを出すことを見つけました。検出方法には、学習コーパスに対するn-gramの重複(コーパスを自分で保有している場合のみ可能)、ベンチマークに仕込んだカナリア文字列、元の版と摂動を加えた版のスコア比較があります。リーダーボードから読み取ったベンチマークスコアには、ベンチマーク名、日付、評価ハーネスが必要です。この3つすべてが数値を変えるからです。

ベンチマークはまた飽和します。MMLU(Hendrycks et al., 2020)は2021年には強い識別力をもっていましたが、2024年にはフロンティアモデルがそのラベルノイズの上限付近に集まっていました。分野はより難しい集合を作ることで対応し、それがまた同じサイクルをたどります。公開ベンチマークはどれもスクリーニング検査であって、決定ではないと考えてください。

オフライン指標held-out set, bootstrap CI数分、無料、狭い公開ベンチマークMMLU, GSM8K, SWE-bench汚染リスクLLM-as-judgepairwise, rubric, swap order人間の評価で較正人手評価rubric, 2+ raters, agreement数日、高コスト、基準A/B testreal users, guardrailmetrics, power calc本番での失敗が新しいテストケースとしてオフライン集合に戻るコストと忠実度が上がる各段は下の段を検証する
評価のはしご。段を上がるほど高価になり、ユーザーの体験に近づく。多くのチームは早すぎる段で止まっている。

判定モデル、評価者、ユーザーは予測可能な形で食い違う

強いモデルを使って別のモデルの出力を採点する方法はスケールしやすく、Zheng et al.(2023)がMT-Benchで示したように、チャットタスクでは人間の選好とそれなりに相関します。一方で既知のバイアスもあります。判定モデルは2つの回答のうち最初のものを好み、長い回答を好み、自分と同じファミリーのスタイルを好み、自信ありげな誤った文章にだまされることがあります。緩和策は機械的です。順序を入れ替えて平均し、単一のスコアではなく基準を明示したルーブリックを使い、長さを統制し、残りを任せる前に人間が評定したサンプルで判定モデルを測ってください。

人手評価は基準ではありますが真実ではありません。同じルーブリックを与えられた2人の評価者の一致率は思ったより低いので、一致度(Cohenのkappa、Krippendorffのalpha)を測り、ルーブリックをパイロット運用し、関心のある差よりも区間が狭くなるだけの評定数に費用をかけてください。A/Bテストは評価者が言うことではなくユーザーがすることを測ります。これはより優れていると同時に、別物です。テスト前に選んだ主要指標、悪化してはならないもののためのガードレール指標、どれだけの期間実行するかを示す検出力計算、そして途中で覗きたくなる誘惑への耐性が必要です。

どこから始めるか

分割とリークについて/learn/beginner/02-data-is-the-model/を読み、次に指標、ベースライン、信頼区間をコード付きで学ぶために/learn/beginner/06-evaluation-that-does-not-lie/を読んでください。/learn/beginner/09-using-an-llm-well/は、プロンプトを変更する前に小さな評価セットを作る方法を示しています。言語モデルの仕事では、公開ハーネスのタスクを1つ端から端まで実行し、それが使ったプロンプトテンプレートを読んでください。テンプレートは結果の一部だからです。/projects/tiny-rag-local-embeddings/プロジェクトには、拡張可能な検索の評価が含まれています。

ツールとプラットフォーム

ツール 用途 ライセンス プラットフォーム
scikit-learn metrics 分類、回帰、ランキングの指標、較正曲線 BSD-3 /platforms/opensource/
lm-evaluation-harness 固定プロンプトとfew-shot設定で公開LLMベンチマークを実行 MIT /platforms/opensource/
Hugging Face EvaluateとOpen LLM Leaderboard 指標の実装と再現可能なリーダーボード用ハーネス Apache-2.0 /platforms/huggingface/
OpenAI Evals 評価テンプレートのレジストリとモデル採点チェックのランナー MIT /platforms/openai/
Anthropicの評価ツール コンソールベースのプロンプト評価とモデル採点のテストスイート プロプライエタリ /platforms/anthropic/
Inspect 英国AI Security Instituteによる、ソルバーとスコアラーを備えた評価フレームワーク MIT /platforms/opensource/
Ragas RAGパイプライン向けの検索と生成の指標 Apache-2.0 /platforms/opensource/

よくある間違い

  • 不均衡な集合で正解率を報告する。陽性クラスが1%の集合での99%というスコアは自明なベースラインです。適合率、再現率、AUROC、あるいは自分のコスト構造が示す指標を使ってください。
  • テスト集合を一瞥ずつ使って調整し、最終的な数値をホールドアウトと呼ぶ。
  • ベンチマーク名、日付、ハーネスなしでリーダーボードのスコアを引用する。
  • 人間が較正したサンプルなしに、判定モデルに自分と同じファミリーを採点させる。
  • 結果が有意に見えるまでA/Bテストを続けてから止める。期間は先に決めてください。
  • 簡単で典型的な入力から評価セットを作る。プロダクションでの失敗と、チームで議論になったケースを含めてください。

さらに深く