B4: Auf dem Weg zur optimalen Bewertung plausibler Code-Lösungen mit plausiblen Tests
B4: Towards Optimal Assessment of Plausible Code Solutions with Plausible Tests
September 13, 2024
Autoren: Mouxiang Chen, Zhongxin Liu, He Tao, Yusu Hong, David Lo, Xin Xia, Jianling Sun
cs.AI
Zusammenfassung
Die Auswahl der besten Code-Lösung aus mehreren generierten Lösungen ist eine wesentliche Aufgabe in der Code-Generierung, die durch die Verwendung einiger zuverlässiger Validatoren (z. B. vom Entwickler verfasste Testfälle) unterstützt werden kann. Da zuverlässige Testfälle nicht immer verfügbar sind und in der Praxis teuer sein können, schlagen Forscher vor, Testfälle automatisch zu generieren, um Code-Lösungen zu bewerten. Wenn jedoch sowohl Code-Lösungen als auch Testfälle plausibel und nicht zuverlässig sind, wird die Auswahl der besten Lösung herausfordernd. Obwohl einige heuristische Strategien vorgeschlagen wurden, um dieses Problem zu lösen, fehlt es an einer starken theoretischen Garantie, und es ist immer noch eine offene Frage, ob eine optimale Auswahlstrategie existiert. Unsere Arbeit trägt auf zwei Arten bei. Erstens zeigen wir, dass innerhalb eines bayesianischen Rahmens die optimale Auswahlstrategie basierend auf der posterioren Wahrscheinlichkeit der beobachteten Bestehenszustände zwischen Lösungen und Tests definiert werden kann. Das Problem, die beste Lösung zu identifizieren, wird dann als ein ganzzahliges Programmierproblem formuliert. Zweitens schlagen wir einen effizienten Ansatz zur Approximation dieser optimalen (aber unberrechenbaren) Strategie vor, wobei der Approximationsfehler durch die Richtigkeit des Vorwissens begrenzt ist. Wir integrieren dann effektives Vorwissen, um Code-Generierungsaufgaben anzupassen. Sowohl theoretische als auch empirische Studien bestätigen, dass bestehende Heuristiken eingeschränkt sind bei der Auswahl der besten Lösungen mit plausiblen Testfällen. Unsere vorgeschlagene approximierte optimale Strategie B4 übertrifft signifikant bestehende Heuristiken bei der Auswahl von Code-Lösungen, die von großen Sprachmodellen (LLMs) mit LLM-generierten Tests erzeugt wurden, und erzielt eine relative Leistungsverbesserung um bis zu 50 % gegenüber der stärksten Heuristik und 246 % gegenüber der zufälligen Auswahl in den anspruchsvollsten Szenarien. Unser Code ist öffentlich verfügbar unter 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.Summary
AI-Generated Summary