ChatPaper.aiChatPaper

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.
PDF282November 16, 2024