HumanEvalとは
HumanEval とは、大規模言語モデルのコード生成能力を評価するためのベンチマークです。2021年にOpenAIがCodexの評価のために開発し、164個のPythonプログラミング問題で構成されています。各問題は関数のシグネチャとdocstringが与えられ、正しい関数本体を生成することが求められます。
| ひとことで言うと | 関数の説明からコードを書かせ、テストが通るかで評価するベンチマーク。 |
|---|---|
| 何がうれしいか | 見た目ではなく「実際に動くか」で評価するので、実用的な指標になる。 |
| 注意点 | 164問と少なく、短い関数が中心。大規模開発の能力は測れない。 |
HumanEvalの評価方法
HumanEvalではpass@k という指標が使われます。これは、モデルがk個のコードサンプルを生成したとき、少なくとも1つがすべてのテストケースをパスする確率を表します。pass@1はモデルの一発生成能力、pass@10やpass@100はモデルの潜在的な生成能力を測定します。
1関数の説明を与えるdocstringと関数名
▶
2コードを生成AIが実装を書く
▶
3テストを実行実際に動かす
▶
4pass@k で採点k回試して1回通れば正解
HumanEvalの問題内容
問題は文字列操作、数学的計算、リスト処理、再帰、ソートなど、さまざまなプログラミングスキルをカバーしています。各問題には平均7.7個のテストケースが用意されており、生成されたコードが正しく動作するかを自動的に検証します。
HumanEvalの発展
HumanEvalの問題は比較的簡単という指摘があり、HumanEval+(追加テストケースによる厳密な評価)、EvalPlus、MBPP、SWE-benchなどのより高度なコード評価ベンチマークが開発されています。最新のLLMではHumanEvalのpass@1が90%を超えるモデルも登場しています。