Pass@kとは、生成AIや大規模言語モデルが問題を解決する精度評価の指標です。1つの課題に対してモデルがk個の回答を生成した際、その中に少なくとも1つ以上の正しい回答が含まれている確率を示します。主にコード生成AIの性能評価やベンチマークテストで用いられ、モデルの潜在的な回答能力を計測するのに役立ちます。
Pass@kとは
Pass@kは、一言でいうと「LLMがk回の試行で1回以上正しい答えを出力できる確率」を表す精度評価指標です。
詳しく解説
Pass@kは、主にプログラミングなどのコード生成を行う大規模言語モデルの性能を測定する目的で導入されました。単一の回答のみを評価する従来の精度指標とは異なり、サンプリングによって複数の回答を生成させ、その中に正しいプログラムが含まれる割合を試算します。計算においては、実際に大量のサンプルを生成してその中に正解が含まれる確率を直接計算する方法のほか、計算コストを抑えるために推定式を用いて算出する方法が一般的です。この指標によって、モデルの単なる一発の出力精度だけでなく、複数回生成した際の潜在的な解決能力を客観的に評価できます。
具体例・使われ方
例えば、コード生成モデルのベンチマークにおいてPass@1、Pass@10、Pass@100という数値を比較するケースが挙げられます。Pass@1は1回の生成で正しいコードを出せる確率であり、非常に厳しい基準です。一方、Pass@100は100回生成したうち1回でも成功すれば良いため、モデルが正解に到達可能な知識や能力を持っているかを測る指標として活用されます。
似た用語との違い
Pass@kと混同されやすい指標としてAccuracy(正解率)があります。一般的な正解率は1回の出力結果が正しいかどうかのみを判断しますが、Pass@kは複数回の生成試行を許容した評価指標です。また、Top-k精度はモデルが出力する確率分布の上位k個の候補を評価するのに対し、Pass@kは実際にサンプリングされた独立した複数の生成結果全体を評価点とする違いがあります。
注意点
Pass@kを利用する際の注意点として、kの値を大きく設定するほど見かけ上の数値が高くなりやすい点が挙げられます。開発現場の実装においては、Pass@100が高くてもユーザーが何十回も再生成を行わなければ正解が得られないモデルは実用的とは言えません。運用目的に合わせてPass@1などの厳格な指標と併せて確認することが重要です。