HumanEval(ヒューマンエバル)
OpenAIが2021年に公開したLLMコード生成評価ベンチマーク。Pythonの164問の関数補完タスクで構成され、pass@k指標でモデルの正解率を測定する。
HumanEval とは
HumanEvalは、OpenAIが2021年に発表した論文「Evaluating Large Language Models Trained on Code」で公開したコード生成評価ベンチマークです。LLMがプログラミング問題を解く能力を定量的に測定するための標準的な手法として、研究コミュニティで広く採用されています。
ベンチマークの構成
問題形式
HumanEvalは164問のPython関数補完タスクで構成されています。各問題には以下が含まれます。
- 関数シグネチャ: 関数名と引数の定義
- ドキュメント文字列 (docstring): 関数の説明と入出力例
- テストケース: 正解を検証する単体テスト群
モデルはdocstringを読み、関数本体のコードを生成します。
評価指標: pass@k
HumanEvalの主要指標はpass@kです。
- pass@1: 1回の生成で正解率
- pass@10: 10回中少なくとも1回正解する確率
- pass@100: 100回中少なくとも1回正解する確率
pass@kはn回生成してc回正解した場合、数式 1 - C(n-c, k)/C(n, k) で不偏推定されます。
主要モデルの比較
モデル別のHumanEval pass@1スコア(2025年時点):
- GPT-4: 約85〜90%
- Claude 3.5 Sonnet: 約88%
- Gemini Ultra: 約74%
- code-davinci-002 (Codex): 約47%(初期モデル)
- StarCoder2-15B: 約46%
- DeepSeek-Coder-33B: 約79%
HumanEvalの限界
問題の多様性が低い
164問はPython中心で、アルゴリズム的な中程度の問題が多く、実際の開発シナリオ(バグ修正・マルチファイル・ライブラリ活用)を反映していません。
データ汚染問題
HumanEvalの問題が学習データに含まれているモデルはスコアが水増しされる可能性があります(train/test contamination)。
HumanEval+(拡張版)
2023年にMIT等が公開したHumanEval+は、各問題に約80倍のテストケースを追加した強化版です。より厳密なコーナーケース検証が可能で、pass@1が約10〜15%低下するモデルも多く、真の正解率を測定できます。
後継ベンチマーク
HumanEvalの限界を補う後継が多数登場しています。
- MBPP: 簡単な問題から難問まで幅広い500問
- SWE-Bench: GitHubの実際のissueを解決するタスク
- LiveCodeBench: Codeforces/LeetCode等の最新問題で汚染を防ぐ
- BigCodeBench: 多様なライブラリ活用を評価
まとめ
HumanEvalは2021年以降のLLMコード生成評価の標準として普及し、Codex → GPT-4 → Claude等の世代間比較に不可欠な役割を果たしました。しかし問題の多様性・データ汚染・実世界反映の不足から、現在は補完的な指標として他のベンチマークと組み合わせて評価するのが一般的です。