核心概念
コード生成モデルから得られる多数のソリューションの中から最適なソリューションを選択するために、ソリューションクラスター間の機能的な重複度を考慮したランキング手法を提案する。
要約
本研究では、コード生成タスクにおいて、コード生成モデルから得られる多数のソリューションの中から最適なソリューションを選択するための新しいランキング手法「SRank」を提案している。
まず、生成されたソリューションをクラスタリングし、各クラスター間の機能的な重複度を定量化する。この重複度を考慮してクラスターをランキングすることで、最も包括的な機能を持つクラスターを特定し、最適なソリューションを選択する。
具体的な手順は以下の通り:
- コード生成モデルを使ってソリューションとテストケースを生成する
- ソリューションをクラスタリングし、各クラスター間の機能的な重複度を計算する
- クラスターの特徴量(クラスターサイズ、パススコアなど)と重複度を組み合わせてランキングスコアを算出する
- ランキングスコアの高いクラスターから最適なソリューションを選択する
この手法は、従来のクラスター単体での評価ではなく、クラスター間の関係性を考慮することで、より適切なソリューション選択を実現している。
実験の結果、提案手法は既存手法と比べて、HumanEvalやMBPPベンチマークにおいて、Codex、WizardCoder、StarCoder、CodeGenなどの各種コード生成モデルで優れた性能を示した。特に、テストケースや生成ソリューション数が限られた場合でも頑健性を発揮することが確認された。
統計
提案手法SRankは、HumanEvalベンチマークでCodex002に対して69.66%、WizardCoder34Bに対して75.31%、StarCoderに対して53.99%、CodeGen2.5-Instructに対して60.55%のpass@1スコアを達成した。
これらの結果は、既存手法のCodeTやCoder-Reviewerと比べて、平均して6.1%の改善を示している。
引用
"By incorporating these inter-cluster relationships into the ranking pipeline, we can better identify the most promising solutions."
"Empirical results show that our method achieves remarkable results on pass@1 score."
"Even in scenarios with a limited number of sampled solutions and test cases, our approach demonstrates robustness and superiority, marking a new benchmark in code generation reranking."