AI・機械学習
中級

HumanEval ベンチマーク(ヒューマンエバル)

OpenAI が2021年に公開した LLM のコード生成能力を評価するベンチマーク。164問の Python プログラミング問題で構成され、モデルが生成したコードがユニットテストを通過するかで正解判定する。Pass@k 指標で評価され、コード生成 LLM の標準的な評価基準として広く使用されている。

0 回閲覧
0 いいね

HumanEval ベンチマークとは

HumanEval は OpenAI が2021年に Codex 論文と共に公開したコード生成ベンチマークである。164問の Python プログラミング課題で構成され、各問題には関数シグネチャ・docstring・ユニットテストが含まれる。モデルが生成したコードを実際に実行し、テストをパスするかで正誤を判定する「実行ベース評価」が特徴である。

データセットの構成

HumanEval の各問題は以下の要素で構成される。

  • 関数シグネチャ: def function_name(param: type) -> return_type:
  • Docstring: 関数の仕様を自然言語で説明
  • ユニットテスト: 正解判定用のテストケース(平均7.7個/問)
  • 正解実装: 参考用の人間による実装

問題の難易度はアルゴリズム入門〜中級レベルで、文字列操作・リスト処理・数学・再帰・ソートなど基本的なプログラミングスキルを測定する。

Pass@k 評価指標

HumanEval では Pass@k という指標で性能を評価する。k 回コードを生成し、1回でもテストを通過すれば成功とみなす。

指標意味使い方
Pass@11回の生成で正解する確率実用性能の指標(ユーザーが最初に得る結果)
Pass@1010回中1回以上正解する確率モデルの潜在能力
Pass@100100回中1回以上正解する確率理論上の上限性能

実用上は Pass@1 が最も重要で、Pass@10 や Pass@100 はモデルの潜在的な能力を示す参考値として使われる。

主要モデルの HumanEval スコア

モデルPass@1リリース時期
GPT-4o90.2%2024年
Claude 3.5 Sonnet92.0%2024年
DeepSeek-Coder-V290.2%2024年
Llama 3.1 405B89.0%2024年
GPT-4 (初期)67.0%2023年
Codex (code-davinci-002)47.0%2021年
GPT-3.5 Turbo48.1%2022年

2024年以降の最先端モデルは Pass@1 で90%前後に到達しており、HumanEval 単体ではモデル間の差別化が困難になっている。

HumanEval の派生ベンチマーク

HumanEval の限界を補うために複数の派生ベンチマークが登場している。

  • HumanEval+: テストケースを大幅に追加(80倍)して偽陽性を減らした強化版。EvalPlus プロジェクト
  • MBPP (Mostly Basic Python Problems): Google が公開した974問のPython問題。HumanEval より簡単だが量が多い
  • MultiPL-E: HumanEval を18言語(Java, C++, Rust, Go 等)に翻訳した多言語版
  • SWE-bench: 実際の GitHub Issue を解決させる実践的なベンチマーク。HumanEval より難度が桁違いに高い
  • LiveCodeBench: 時系列で新問題が追加される「生きた」ベンチマーク。汚染対策

HumanEval の限界

  • 問題が簡単すぎる: 最先端モデルが90%超を達成しており、天井効果が発生
  • Python のみ: 他言語の能力を測定できない(MultiPL-E で補完)
  • 実務との乖離: 短い関数の実装問題であり、実際のソフトウェア開発(大規模コード・デバッグ・リファクタ)とは異なる
  • ベンチマーク汚染リスク: 問題が公開されているため、学習データに含まれている可能性がある

FAQ

Q1: HumanEval で高スコアのモデルは実務でも使えますか?

A1: HumanEval の高スコアはコード生成の基礎能力を示すが、実務ではコンテキスト理解・大規模コードベースの把握・デバッグ能力なども重要。SWE-bench や実際のタスクでの評価も併用すべき。

Q2: HumanEval の問題は見ることができますか?

A2: GitHub で公開されている(openai/human-eval)。ただしモデルの学習データに混入する汚染リスクがあるため、新しいベンチマーク(LiveCodeBench等)も参照すべき。

Q3: ローカル LLM の HumanEval スコアを測定するには?

A3: bigcode/bigcode-evaluation-harness または lm-evaluation-harness で測定可能。vLLM や llama.cpp バックエンドに対応しており、GGUF 形式のモデルも評価できる。