pass@k(パスアットケー)とは

pass@kとは、AIに同じ問題のコードをk回作らせたとき、その中に1つでも正解(テストに通るもの)が含まれる割合を表す評価指標のことです。HumanEvalと同じ2021年のOpenAIの論文で定義され、いまもコード生成や推論モデルの採点に広く使われています。「何回か試して当たればよい」という、現場の使い方に近い測り方です。

pass@1は「一発で当てる確率」

最もよく使われるのが、kを1にしたpass@1で、これは1問につき1つだけ生成し、それが正解する確率です。実務での「一発で正しく書ける確率」に最も近く、いちばん厳しく現実的な指標といえます。これに対しkを大きくすると、k回のうち1つでも当たればよいので、数値は必ず上がっていきます。

イメージとしては、開発者が現場でやっている「AIに何度か書き直させて、使えるものを選ぶ」という作業を、そのまま数字にしたものです。何回試せば使える答えにたどり着くか、という発想だと考えるとわかりやすいでしょう。

pass@1とpass@kを混同しない

モデル比較で注意したいのは、「pass@100で90%」と「pass@1で90%」はまったく意味が違う点です。前者は100回試した中に正解が混じっている確率にすぎません。順位を読むときは、必ず同じkで揃えて比べる必要があります。kがいくつなのかが書かれているかを確認するのが、正しい読み方です。

コストの面でも示唆があります。pass@1が高いモデルは一発で正解を出すため、現場での試行回数や人のレビュー手間が少なくて済むわけです。逆にpass@100は高いのにpass@1が低ければ、「当てるまで何十回も生成させる必要がある」と読め、運用コストの目安にもなります。

Topicなぜ「何度も試す」が評価になるのか

AIは同じ問いを与えても、毎回まったく同じ答えを返すとは限りません。1回だけ見ると、その結果は運に左右されます。pass@kはこの「ばらつき」を逆手に取り、何回かのうちどれだけ正解できるかで実力を測る指標です。元の論文も、結果が安定するように多めに生成してから割合を推定する工夫を入れており、1セットの生成からpass@1・pass@10・pass@100をまとめて算出できるようにしています。AIの気まぐれさを前提にした、現実的な測り方なのです。

pass@kに関するよくある質問

pass@1とpass@kはどう違うのですか?
pass@1は1問につき1つだけ生成して正解する確率で、「一発で正しく書ける確率」に最も近い厳しい指標です。kを大きくするとk回のうち1つでも当たればよくなるので数値は必ず上がり、「pass@100で90%」と「pass@1で90%」はまったく意味が違います。
モデルの成績を比べるとき何に注意すべきですか?
必ず同じkで揃えて比べることです。kがいくつなのか書かれているかを確認しましょう。pass@1が高いモデルは一発で正解を出すため現場の試行やレビューの手間が少なく、運用コストの目安にもなります。
なぜ「何度も試す」が評価になるのですか?
AIは同じ問いでも毎回同じ答えを返すとは限らず、1回だけ見ると結果が運に左右されるためです。pass@kはこの「ばらつき」を逆手に取り、何回かのうちどれだけ正解できるかで実力を測る、AIの気まぐれさを前提にした現実的な測り方です。