B4 : Vers une évaluation optimale des solutions de code plausibles avec des tests plausibles
B4: Towards Optimal Assessment of Plausible Code Solutions with Plausible Tests
September 13, 2024
Auteurs: Mouxiang Chen, Zhongxin Liu, He Tao, Yusu Hong, David Lo, Xin Xia, Jianling Sun
cs.AI
Résumé
Sélectionner la meilleure solution de code parmi plusieurs générées est une tâche essentielle en génération de code, qui peut être réalisée en utilisant des validateurs fiables (par exemple, des cas de test écrits par les développeurs) pour obtenir de l'aide. Étant donné que des cas de test fiables ne sont pas toujours disponibles et peuvent être coûteux à construire en pratique, les chercheurs proposent de générer automatiquement des cas de test pour évaluer les solutions de code. Cependant, lorsque les solutions de code et les cas de test sont plausibles mais pas fiables, la sélection de la meilleure solution devient un défi. Bien que certaines stratégies heuristiques aient été proposées pour résoudre ce problème, elles manquent d'une garantie théorique solide et il reste une question ouverte de savoir si une stratégie de sélection optimale existe. Notre travail apporte deux contributions. Tout d'abord, nous montrons que dans un cadre bayésien, la stratégie de sélection optimale peut être définie en fonction de la probabilité a posteriori des états de passage observés entre les solutions et les tests. Le problème d'identification de la meilleure solution est alors formulé comme un problème de programmation entière. Deuxièmement, nous proposons une approche efficace pour approximer cette stratégie optimale (mais non calculable), où l'erreur d'approximation est bornée par la justesse des connaissances antérieures. Nous incorporons ensuite des connaissances antérieures efficaces pour personnaliser les tâches de génération de code. Des études théoriques et empiriques confirment que les heuristiques existantes sont limitées dans la sélection des meilleures solutions avec des cas de test plausibles. Notre stratégie optimale approximée proposée B4 surpasse significativement les heuristiques existantes dans la sélection de solutions de code générées par de grands modèles de langage (LLMs) avec des tests générés par LLM, atteignant une amélioration de performance relative allant jusqu'à 50 % par rapport à la meilleure heuristique et 246 % par rapport à la sélection aléatoire dans les scénarios les plus difficiles. Notre code est publiquement disponible sur https://github.com/ZJU-CTAG/B4.
English
Selecting the best code solution from multiple generated ones is an essential
task in code generation, which can be achieved by using some reliable
validators (e.g., developer-written test cases) for assistance. Since reliable
test cases are not always available and can be expensive to build in practice,
researchers propose to automatically generate test cases to assess code
solutions. However, when both code solutions and test cases are plausible and
not reliable, selecting the best solution becomes challenging. Although some
heuristic strategies have been proposed to tackle this problem, they lack a
strong theoretical guarantee and it is still an open question whether an
optimal selection strategy exists. Our work contributes in two ways. First, we
show that within a Bayesian framework, the optimal selection strategy can be
defined based on the posterior probability of the observed passing states
between solutions and tests. The problem of identifying the best solution is
then framed as an integer programming problem. Second, we propose an efficient
approach for approximating this optimal (yet uncomputable) strategy, where the
approximation error is bounded by the correctness of prior knowledge. We then
incorporate effective prior knowledge to tailor code generation tasks. Both
theoretical and empirical studies confirm that existing heuristics are limited
in selecting the best solutions with plausible test cases. Our proposed
approximated optimal strategy B4 significantly surpasses existing heuristics in
selecting code solutions generated by large language models (LLMs) with
LLM-generated tests, achieving a relative performance improvement by up to 50%
over the strongest heuristic and 246% over the random selection in the most
challenging scenarios. Our code is publicly available at
https://github.com/ZJU-CTAG/B4.