LLM Evaluation
LLM の評価は、generative model の中でも特に難しい問題です。「正解が一意に決まらない」「benchmark contamination がある」「user 体験は静的 metric では測れない」など、複数の課題を同時に抱えます。
評価軸
代表的 benchmark
| Benchmark | 評価対象 |
|---|---|
| MMLU / MMLU-Pro | 多分野知識 |
| GPQA | 大学院レベル科学 |
| HumanEval / MBPP | コード生成 |
| LiveCodeBench | 汚染しにくいコード評価 |
| GSM8K / MATH | 算数・数学 |
| AIME / MATH-500 | 高難度数学 |
| IFEval | 指示追従の精密評価 |
| MT-Bench | 自由対話 (LLM-as-a-Judge) |
| Chatbot Arena | 人間 pairwise 投票 |
| SWE-Bench | 実 GitHub issue 解決 |
| GAIA / AgentBench | Agent 系 task |
LLM-as-a-Judge
人手評価が高コストなため、強い LLM (GPT-4 / Claude 系) を judge に使う LLM-as-a-Judge が広まりました。
- Pairwise (A と B どちらが良いか)
- Pointwise (1〜10 で評価)
- Reference-based (正解と比較)
利点は安価で再現性が比較的高いこと。欠点は 判定 LLM の bias (verbosity bias、position bias、self-preference) があることです。
Chatbot Arena
Chatbot Arena は、ユーザーが匿名 2 モデルに同じ質問を投げ、勝者を投票 する人間評価です。Elo / Bradley-Terry rating でランキングを作ります。実利用に近い、もっとも信頼性が高い indicator の一つとして扱われています。
Benchmark contamination
Pretrain corpus に benchmark の解答が含まれていると、評価が無意味化します。最近の対策:
- Held-out / 新作 benchmark (LiveCodeBench、AIME、GPQA Diamond)
- N-gram / fuzzy match で contamination 検査
- Private holdout
- Process-level 評価 (中間ステップを見る)
評価設計の落とし穴
| 落とし穴 | 内容 |
|---|---|
| Few-shot 数の違い | 0-shot vs 5-shot で順位が変わる |
| Prompt の違い | system prompt / format で差が出る |
| Decoding 設定 | temperature / top-p で差が出る |
| Judge model の bias | LLM judge の自己選好 |
| Cherry-picked tasks | 公開 task が contamination 済み |
| 単一 benchmark への過適合 | "MMLU が高い ≠ 強い" |
実務では、複数 benchmark + Chatbot Arena + 自社 dogfood の組合せが標準です。
数式で見る LLM-as-a-Judge と Arena rating
Pairwise evaluation では、同じ prompt に対する二つの回答 を比較し、どちらが良いかを判定します。Judge model の score を とすると、A が B に勝つ確率は Bradley-Terry model で次のように書けます。
この式の気持ちは、「絶対点ではなく、同じ prompt に対してどちらの回答が相対的に良いかを比較する」というものです。
Chatbot Arena のような rating では、model の rating を として、model が model に勝つ確率を次のように置きます。
この式は Elo rating の標準的な形です。実利用に近い prompt で人間が pairwise に投票するため、static benchmark よりも user preference に近い signal を得られます。ただし、position bias、verbosity bias、style preference などを制御する必要があります。
Benchmark contamination は、training corpus に benchmark item が含まれる問題として書けます。
この状態では、model が一般化して解いたのか、記憶していたのかを区別しにくくなります。そのため、時間で切った live benchmark や、新作 problem を使う評価が重要になります。
関連ページ
主なソース
- MMLU: https://arxiv.org/abs/2009.03300
- HumanEval: https://arxiv.org/abs/2107.03374
- GPQA: https://arxiv.org/abs/2311.12022
- IFEval: https://arxiv.org/abs/2311.07911
- MT-Bench / LLM-as-a-Judge: https://arxiv.org/abs/2306.05685
- Chatbot Arena: https://arxiv.org/abs/2403.04132
- SWE-Bench: https://arxiv.org/abs/2310.06770