HumanEval Benchmark — HumanEvalベンチマーク

From Systems analysis wiki
Jump to navigation Jump to search

HumanEvalは、タスクのテキスト記述に基づいてAIモデルが生成するコードの品質を客観的に評価するために設計されたデータセット(ベンチマーク)です[1]。2021年7月にマーク・チェンMark Chen)が率いるOpenAIの研究者によって発表され、生成されたプログラムの機能的な正しさを測定するための主要な標準の一つとなりました。

HumanEvalの開発は、コード生成を確実に評価する方法の必要性から生まれました。以前は、言語モデルによって生成されたコードの品質は、間接的なメトリクス(例:BLEU)や手作業で評価されることが多く、プログラムの実際の動作との一致を保証するものではありませんでした。HumanEvalは、機能的な正しさに焦点を当てることでこの問題を解決します。生成されたコードは、参照実装との構文的な類似性ではなく、一連の自動化されたユニットテストに合格する能力によって評価されます[1]

タスクセットの構造

このベンチマークは、モデルの学習データセットに含まれていないことを保証するために手作業で作成された164個のプログラミング問題で構成されています。すべての問題はPythonで記述されており、説明付きのコードスニペットとして提供されます[2]

各タスクには以下が含まれます:

  • 関数ヘッダ: 関数名とパラメータを含む関数のシグネチャ。
  • テキスト記述: 要求される機能性を説明する英語のdocstring。
  • 関数本体: モデルが生成したコードで埋めるべき空の領域。

各タスクには、モデルから隠された以下の要素も用意されています:

  • 標準解法: 正しい(参照)関数の実装。
  • ユニットテストスイート: 生成されたコードの正しさを自動的に検証するために使用されます。テストは、基本的なケースとエッジケースの両方をカバーしています。

タスクは、基本的な言語構造やアルゴリズムから単純な数学まで、幅広いトピックをカバーしており、モデルにとって多様で挑戦的なセットとなっています。

モデルの評価方法

HumanEvalにおける主要な成功メトリクスはpass@kであり、モデルが機能的に正しく解決した問題の割合を測定します[1]。生成されたコードが特定のタスクのすべての自動テストに合格した場合、その解法は成功と見なされます。

  • pass@1: 最も基本的で頻繁に使用される指標です。これは、モデルが最初の試行で解決した問題の割合を意味します(つまり、問題ごとに1つの解答バリアントを生成した場合)。
  • pass@k: 一般的なケースでは、このメトリクスは、モデルが生成したk個の解答バリアントのうち少なくとも1つがすべてのテストに合格した問題の割合を示します。例えば、pass@10は、各問題に対して最大10回の試行が許された場合にモデルが解決できる問題の割合を示します。

pass@kの直接計算は多数のサンプリングを必要とするため、著者らはこのメトリクスを統計的に正しく計算する方法を提案し、不偏推定値を得ることを可能にしました[1]

実際のテストは特別な「サンドボックス」環境で行われます。生成されたコードはコンパイルされ、一連の検証テストで実行されます。このアプローチにより、参照実装と構文的に似ているだけでなく、実行可能で正しいコードを生成するモデルの能力を測定できます。

結果と業界への影響

HumanEvalでの最初の実験では、汎用モデルとコードで特別に訓練されたモデルとの間に大きな差があることが示されました。

  • 2021年、OpenAI Codexモデル(120億パラメータ、GitHubのコードで訓練)は、最初の試行でタスクの約28.8%を解決しました(pass@1)。
  • 一方、コードで訓練されていない、より大規模な言語モデルであるGPT-3(1750億パラメータ)は、正しく解決できたタスクは1つもありませんでした[1]

これらの結果は、成功したコード生成のためにはプログラミングデータに関する専門的な訓練が必要であることを強調しました。HumanEvalの登場後、このベンチマークは新しいモデルの進歩を比較するための標準的なテストとして急速に普及しました。

  • GPT-3.5シリーズのモデル(2023年初頭)は、pass@1約72%を達成しました。
  • GPT-4モデル(2023年)はさらに高い結果を示し、基本バージョンで約67%、追加のチューニング後には85%を超えました[3]
  • Code Llama(Meta、2023年)やWizardCoder(2023年)などのオープンモデルも高い結果(それぞれpass@1約53%約57%)を示し、初期のプロプライエタリモデルを上回りました[4]

ベンチマークの拡張版と派生版

HumanEvalの成功は、より広範な条件下でモデルを評価することを目的とした、いくつかの派生バージョンの作成を促しました。

  • CL-HumanEval (Cross-Lingual HumanEval): 2024年に発表されたクロスリンガル版。元のHumanEvalのタスクを、様々な言語(英語以外)での記述を理解し、Pythonコードを生成するモデルの能力をテストするために適応させたものです[5]
  • Multilingual HumanEval: 2023年に発表された拡張版で、英語の記述に基づいて12の異なるプログラミング言語(Java、C#、JavaScriptなどを含む)でコードを生成する能力を評価することを目的としています[6]
  • HumanEval-XL: 2024年に発表された大規模なベンチマークで、両方のアプローチを組み合わせています。12のプログラミング言語のタスクと、ロシア語、中国語、アラビア語などを含む世界23言語へのテキスト記述の翻訳が含まれています。HumanEval-XLは合計で22,000以上の「記述とコード」のペアを収録しています[7]

リンク

参考文献

  • Liang, P. et al. (2022). Holistic Evaluation of Language Models (HELM). arXiv:2211.09110.
  • Chang, Y. et al. (2023). A Survey on Evaluation of Large Language Models. arXiv:2307.03109.
  • Ni, S. et al. (2025). A Survey on Large Language Model Benchmarks. arXiv:2508.15361.
  • Biderman, S. et al. (2024). The Language Model Evaluation Harness (lm-eval): Guidance and Lessons Learned. arXiv:2405.14782.
  • Kiela, D. et al. (2021). Dynabench: Rethinking Benchmarking in NLP. arXiv:2104.14337.
  • Ma, Z. et al. (2021). Dynaboard: An Evaluation‑As‑A‑Service Platform for Holistic Next‑Generation Benchmarking. arXiv:2106.06052.
  • Goel, K. et al. (2021). Robustness Gym: Unifying the NLP Evaluation Landscape. arXiv:2101.04840.
  • Xu, C. et al. (2024). Benchmark Data Contamination of Large Language Models: A Survey. arXiv:2406.04244.
  • Liu, S. et al. (2025). A Comprehensive Survey on Safety Evaluation of LLMs. arXiv:2506.11094.
  • Chiang, W.-L. et al. (2024). Chatbot Arena: An Open Platform for Evaluating LLMs by Human Preference. arXiv:2403.04132.
  • Boubdir, M. et al. (2023). Elo Uncovered: Robustness and Best Practices in Language Model Evaluation. arXiv:2311.17295.
  • Huang, L. et al. (2023). A Survey on Hallucination in Large Language Models. arXiv:2311.05232.

注釈

  1. 1.0 1.1 1.2 1.3 1.4 Chen, M. et al. “Evaluating Large Language Models Trained on Code”. arXiv:2107.03374, 2021. [1]
  2. “openai/openai_humaneval”. Hugging Face Datasets. [2]
  3. Niu, C. et al. “On Evaluating the Efficiency of Source Code Generated by LLMs”. Proceedings of the 2nd International Conference on AI-generated Content, 2024. [3]
  4. Lutfullaev, J. “HumanEval on LLMs Revisited in Late 2023”. arXiv:2402.14852, 2023. [4]
  5. Sato, M. et al. “CL-HumanEval: A Benchmark for Evaluating Cross-Lingual Transfer through Code Generation”. Proceedings of the 38th Pacific Asia Conference on Language, Information and Computation, 2024. [5]
  6. Athiwaratkun, B. et al. “Multilingual HumanEval: A Multilingual Code Generation Benchmark”. arXiv:2307.11892, 2023. [6]
  7. Liu, J. et al. “HumanEval-XL: A Multilingual Code Generation Benchmark for Cross-lingual Natural Language Generalization”. LREC-COLING 2024. [7]