ACES:誰がテストをテストするのか?コード生成におけるリーン・ワン・アウトAUCの一貫性

arXiv cs.LG / 2026/4/7

📰 ニュースSignals & Early TrendsIdeas & Deep AnalysisModels & Research

要点

  • 本論文は、LLMが生成したテストを用いたコード選択は難しいと論じる。テスト自体が誤っている可能性があるため、正しいコードを特定することとテストの正しさを検証することの間に、循環的な依存関係が生じるからである。
  • 各テストが正しいかどうかを推定するのではなく、テストが正しいコードと誤ったコードを*分離する*能力に着目すべきであり、それをリーン・ワン・アウトのランキング一貫性指標で捉えることを提案する。
  • 本手法ではLOO-AUC(leave-one-out AUC)を導入し、理論的に、期待されるLOO-AUCが各テストの真の弁別的能力に比例することを示す。
  • ACESとして2つのバリアントを提示する:平均的なテスト品質を仮定した閉形式の重み付けによるACES-C、ならびにその仮定に依存しない、微分可能なLOO-AUC目的関数の反復最適化によるACES-Oである。
  • 本アプローチは、バイナリのパス行列のみを用い、オーバーヘッドは無視できることに基づいており、複数のコード生成ベンチマークにおいて最先端のPass@$k$の改善を報告している。

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 を達成します。