pass@k の計算
入力
| 1サンプルあたりの成功率 | 40 % |
|---|---|
| サンプル数 | 10 |
pass@k の計算
コードや推論の評価における pass@k を計算する。1サンプルあたりの成功率から、独立したk個のモデルサンプルのうち少なくとも1つが問題を解く確率を求める。
入力
サンプリング
結果
値を入力すると計算結果が表示されます。
詳細
pass@k
pass@k は、候補の回答を自動で検査できるタスク、最も有名にはコード生成において、言語モデルを採点する標準的な方法である。コード生成では各試行はテストスイートに通るか通らないかのいずれかである。1つの回答が正しいかを問うのではなく、pass@k はk回の試行のいずれかが正しいかを問う。この計算は、モデルの1サンプルあたりの成功率を pass@k に変換し、1回測定した精度を任意の試行回数へ外挿できるようにする。
pass@k が測るもの
ベンチマークの各問題に対し、モデルはk個の独立した候補解を生成し、少なくとも1つの候補が通れば問題は解けたと数える。pass@k はその規則のもとで解けた問題の割合である。pass@1 は通常の1回限りの精度であり、pass@10 と pass@100 は何回か試した場合にモデルがどれだけの頻度で正解に達せるかを測る。この指標は、テストスイート、コンパイラ、証明検査器といった外部の検証器が多数の候補の中から正解を認識できる場面でこそ意味を持つ。そのとき追加の試行は、解けた問題の増加に直接つながるからである。
計算式
各サンプルが独立に確率 で成功するなら、一つのサンプルが失敗する確率は一から を引いた値であり、 個のサンプルすべてが失敗する確率は である。pass@k はその余事象である。
Pkqk=1−(1−p)k=(1−p)kここで が pass@k、 がすべての試行が失敗する確率である。全失敗確率は とともに等比的に小さくなる。これが、控えめな1サンプルあたりの成功率でも、十分な試行回数があれば確実性へと上っていく理由である。
計算例
あるモデルが1回の試行でコーディング問題を40%の確率で解き、評価が10サンプルを許す場合を考える。
q10P10=(1−0.4)10=0.610≈0.0060=1−0.0060≈0.994=99.4%1サンプルあたり40%の成功率が、pass@10 ではおよそ99%になる。この跳ね上がりは、pass@k の値がkとともになぜこれほど速く上がるか、そしてベンチマークの表がなぜkの複数の値を並べて報告するかを示している。その曲線の形は、単一の点よりもモデルについて多くを物語る。
どう測定されるか
ちょうどk個のサンプルを引いて pass@k を推定するとノイズが大きい。HumanEval などのベンチマークは代わりに、より大きな母集団の サンプルを引き、成功した 個を数え、不偏推定量 を用いて、 個から 個を選ぶあらゆる組み合わせにわたって平均する。ここで用いる独立形は、 を ととったときその推定量と一致し、既知の成功率を選んだ試行予算へ外挿する正しい道具である。この形はサンプル間で成功が等しく独立であることを仮定する。極めて低い温度ではサンプルがほぼ同一になり、追加してもほとんど効果がない。評価が安定した推定を得るために何問必要かを計画するには、LLM評価のサンプルサイズの計算を参照されたい。
よくある質問 (FAQ)
pass@k とは何ですか
pass@k は、コード生成やその他の「サンプリングして検査する」評価の標準的な指標です。問題ごとにモデルがk個の候補解を生成し、少なくとも1つの候補がテストに通れば問題は解けたと数えます。pass@k はその規則のもとで解けた問題の割合です。pass@1 は1回限りの精度を反映し、pass@10 や pass@100 は何回か試した場合にモデルがどれだけの頻度で問題を解けるかを測ります。テストスイートや検証器のような外部の検査機構が多数の中から正解を選び出せる場面で意味を持ちます。
この式はサンプルが独立であると仮定していますか
はい。1から(1引くp)のk乗を引くという式は、k個の各サンプルが同じ確率pで独立に成功すると仮定します。これはサンプルが0でない温度で引かれてばらつくときによく成り立ちます。サンプルがほぼ同一でいくつ引いてもほとんど増えない極めて低い温度では崩れ、また問題の難易度がばらつき1つの平均pが易しいケースと難しいケースの混在を覆い隠す場合にも崩れます。測定した成功率を別のkへ外挿するには、独立を仮定した形は良い一次近似です。
実際には pass@k はどう測定されますか
文字どおりk個のサンプルを引いて pass@k を推定するとノイズが大きくなります。HumanEval などのベンチマークは代わりに、より大きな数nのサンプルを引き、成功したc個を数え、不偏推定量 pass@k = 1 − C(n−c, k) / C(n, k) を用います。ここでCは二項係数です。これはn個からk個を選ぶすべての組み合わせにわたって平均し、はるかに安定した値を与えます。この計算はより単純な独立形を用います。これはpをc/nととったときの推定量と一致し、既知の成功率を選んだ試行回数の予算へ外挿するのに適しています。
免責事項
独立形は、1サンプルあたりの成功確率が等しく独立であることを仮定します。実際のサンプルは低温では相関し、問題ごとに難易度が変わるため、測定される pass@k は異なりえます。ベンチマーク結果を報告する際は、大きなサンプルの母集団と不偏推定量を用いてください。