Abstract
LLMが生成したテストを用いてLLM生成コード候補を選択するのは困難です。なぜなら、テスト自体が誤っている可能性があるからです。既存手法は、すべてのテストを等しく扱うか、信頼できないテストを除外するための場当たり的なヒューリスティックに依存しています。しかし、テストの正しさを判断するには、どのコードが正しいかを知る必要があり、これが
\emph{循環依存} を生みます。私たちの重要な洞察は、そもそもテストの正しさを決定する必要はない、という点です。すなわち、
\emph{テストの投票は数えるだけでなく順位付けを行うべき} です。テストに何本のコードが合格するかが重要なのではなく、そのテストが正しいコードと誤ったコードを
\emph{識別} できるかどうかが重要です。私たちは、leave-one-out(LOO)評価によって循環依存を解消します。つまり、1つのテストを除外し、残りのすべてのテストに対する各コードの総合スコアでコードを順位付けし、除外したテストの合否パターンがこの順位付けと一致するかどうかを測定します。この一致を、leave-one-out AUC~(LOO-AUC) として形式化し、期待されるLOO-AUCが、正しいコードと誤ったコードを分離する各テストの能力に比例することを証明します。これを基に、\textbf{ACES}~(\textbf{A}UC \textbf{C}onsist\textbf{E}ncy \textbf{S}coring) を提案します。これは2つの補完的な変種を持ちます。ACES-C は、平均テスト品質に関する穏やかな仮定の下で期待値としてオラクルを確率的に近似することが証明できる閉形式の重みを提供します。一方、ACES-O はこの仮定を捨て、微分可能なLOO-AUC目的関数を反復的に最適化します。両手法はバイナリのパス行列のみを用いて、オーバーヘッドはごくわずかであり、複数のコード生成ベンチマークにおいて最先端の Pass@k を達成します。