HumanEvalとは

HumanEvalとは、AIがPythonの関数を、仕様を書いた説明文から正しく実装できるかを測るコード生成ベンチマークのことです。OpenAIが2021年に公開し、生成AIのプログラミング能力を数値で比べる文化の出発点になりました。AIに簡単なプログラムを書かせ、用意したテストに通るかどうかで採点します。

164問のPython課題で実装力を測る

HumanEvalは2021年7月、OpenAIがコード生成モデルCodex」を紹介した論文の中で公開しました。ChatGPTの一般公開(2022年11月)より1年以上前のことで、AIのコーディング能力を測る試みは早くから始まっていました。164問の手書きPython課題からなり、各問は「この関数は何をするか」を書いた説明文(docstring)と、正解を判定するための平均7.7個のテストで構成されています。AIには説明文だけを渡して中身を書かせ、テストに通れば正解です。

特徴的なのは、問題をネット上のコードから取らず、手作業で新しく作った点です。AIはインターネットの大量のプログラムで学習しているため、既存の問題を使うと「答えを見たことがある」状態になりかねません。それを避け、公平に実力を測る工夫でした。

測れるのは小さな関数まで

公開当時のCodexの正答率は一発で約28.8%でしたが、その後のモデルは90%台に達し、ここでも飽和が進みました。いまでは最新モデルの差を測りにくい、入門的なベンチマークという位置づけです。スコアの判定には、何回か試して当たればよいとするpass@kという指標が使われます。

経営判断として読むときの注意は、HumanEvalの高得点が「実務のバグを直せる」を意味しないことです。測っているのは独立した小さな関数を書く力であり、既存の大きなプログラムを読み解いて修正する現場の難しさは、SWE-benchなど別の物差しが担います。

Topic「k回試して1回当たればOK」の発祥地

HumanEvalの論文で一緒に提案されたpass@kという測り方は、いまやAI評価の共通語になりました。k回生成させて、その中に1つでも正解があればよしとする発想で、もともとはコード生成のために考えられたものです。それが数学や推論モデルの評価にも広く転用され、ベンチマークの世界で当たり前の言葉として定着しました。元論文では1問につき最大100通りのコードを生成し、70.2%の問題を解けたと報告しています。

HumanEvalに関するよくある質問

HumanEvalの問題はどこから来ているのですか?
ネット上のコードからは取らず、164問すべてを手作業で新しく作っています。AIはインターネットの大量のプログラムで学習しているため、既存問題を使うと「答えを見たことがある」状態になりかねず、それを避けて公平に実力を測る工夫です。各問は説明文(docstring)と平均7.7個のテストからなり、テストに通れば正解とします。
HumanEvalの高得点は、実務でも役立つAIということですか?
必ずしもそうではありません。測っているのは独立した小さな関数を書く力で、既存の大きなプログラムを読み解いて修正する現場の難しさはSWE-benchなど別の物差しが担います。公開当時のCodexは約28.8%でしたが最新モデルは90%台に達し、いまでは入門的なベンチマークです。
「pass@k」とは何ですか?HumanEvalと関係ありますか?
pass@kはk回生成させて、その中に1つでも正解があればよしとする測り方で、HumanEvalの論文で一緒に提案されました。もともとコード生成のための指標でしたが、いまや数学や推論モデルの評価にも広く転用され、AI評価の共通語になっています。