1回で通った課題は59.5%でした。10回試すと91.0%になります。数字だけ見れば大きく伸びています。
ところが難しさ別に分けると、伸びているのは中間の帯だけでした。難しい28件は10回試しても10件しか通りません。
試す回数を変えて走らせました。全体の数字は伸びますが、内訳を見ると伸びている場所が限られます。
pass@kで回数を増やすと何が起きるのかを、実際に走らせて測りました。用意したのは課題200件です。
課題ごとに1回で通る確率を変えてあります。易しいもの、ふつうのもの、難しいものを混ぜました。
for (const k of [1, 2, 3, 5, 10]) {
const passed = trials.filter((row) => row.slice(0, k).some(Boolean)).length;
// passed が、k回のうち1回でも通った課題の数
}
試す回数 1件でも通った課題 全体に対する割合 1課題あたりの試行
1回 119件 59.5% 1回
2回 152件 76.0% 2回
3回 160件 80.0% 3回
5回 174件 87.0% 5回
10回 182件 91.0% 10回
難しさ 件数 1回で通る 10回で通る
易しい 89件 80件 89件
ふつう 83件 39件 83件
難しい 28件 0件 10件
上の表を見てください。1回だと59.5%、10回だと91.0%です。31.5ポイント伸びました。
下の内訳が中身を示しています。ふつうの帯は39件から83件に増えました。44件の増加です。
易しい帯は80件から89件で、増えたのは9件だけです。もともとほとんど通っているので、伸びしろがありません。
難しい28件は、1回では0件でした。10回試しても10件です。
つまり18件は10回試しても一度も通りません。全体の数字が91.0%まで上がっても、この18件は解けないままです。
伸びているのは中間の帯。難しい帯はほとんど動かない。
repeated sampling from the model is a surprisingly effective strategy for producing working solutions原文Chen et al.「Evaluating Large Language Models Trained on Code」 この内容の有効期限2027-02-18
k回試して1回でも通れば成功と数える測り方です。通ったかどうかを機械で判定できることが前提になります。
pass@kは、k回試して1回でも通れば、その課題は解けたと数える測り方です。
この測り方は、コードを書かせる課題の評価から広まりました。元になった論文は、プログラムの合成について機能的な正しさを測るために公開した新しい評価用の集合を示しています。
コードならテストを実行すれば通ったかどうかが分かります。判定に人が要りません。ここがこの測り方の前提です。
3番目が抜けると意味がなくなります。どれが通ったか分からないなら、10回試しても選べません。同じ問いを何度も解かせて多数決を取る手立ては自己整合性の記事で扱っています。
1回で通る確率が5割の課題なら、2回試せばどちらかが通る確率は7割5分になります。回数を増やすほど上がります。
元の論文も、モデルから繰り返し標本を取ることが、動く解を得るうえで驚くほど有効な方策であるとしています。前の節の実測でもふつうの帯が39件から83件になりました。
課題ごとの通る確率はこちらで置いた値です。実際のモデルを呼び出してはいません。ここで見せているのは、全体の割合が伸びても内訳では帯によって動き方が違うという関係です。実際に測るときは、自分の課題で同じ内訳を出してください。
a new evaluation set we release to measure functional correctness for synthesizing programs原文Chen et al.「Evaluating Large Language Models Trained on Code」 この内容の有効期限2027-02-18
回数を明示せずに数字だけを比べることです。同じモデルでも、回数が違えば数字は大きく変わります。
pass@kでいちばん多い読み違えは、回数を確かめずに数字を比べることです。
前の節の実測では、同じ条件でも59.5%と91.0%の両方が出ました。違うのは回数だけです。
元の論文も、1つの課題につき100個の標本で、課題の70.2%を解けると回数を明示しています。回数を書かない数字は比べられません。
実務では1回で返すことが多いです。その場合、実態に近いのは1回のときの数字です。
10回の数字を見て導入を決めると、使ったときの感触と合いません。試す回数と、測る回数をそろえてください。
前の節では、難しい28件のうち18件が10回試しても一度も通りませんでした。
全体の数字が上がっても、この部分は動きません。どの課題が解けていないかを見ないと、何が残っているか分かりません。
回数を書かない数字は比べられない。
we solve 70.2% of our problems with 100 samples per problem原文Chen et al.「Evaluating Large Language Models Trained on Code」 この内容の有効期限2027-02-18
同じ課題を持つ会社にとって、動いている設定は「作る時間」を買えるということです。ServiceDockは自作のワークフローやテンプレートを出品できるマーケットプレイスです。手数料や出品の流れは出品者向けページにまとまっています。
出品の仕組みを見る