B4: Verso una Valutazione Ottimale delle Soluzioni di Codice Plausibili con Test Plausibili
B4: Towards Optimal Assessment of Plausible Code Solutions with Plausible Tests
September 13, 2024
Autori: Mouxiang Chen, Zhongxin Liu, He Tao, Yusu Hong, David Lo, Xin Xia, Jianling Sun
cs.AI
Abstract
La selezione della migliore soluzione di codice tra quelle generate è un compito essenziale nella generazione di codice, che può essere realizzato utilizzando alcuni validatori affidabili (ad esempio, casi di test scritti dagli sviluppatori) per assistenza. Poiché casi di test affidabili non sono sempre disponibili e possono essere costosi da creare nella pratica, i ricercatori propongono di generare automaticamente casi di test per valutare le soluzioni di codice. Tuttavia, quando sia le soluzioni di codice che i casi di test sono plausibili e non affidabili, diventa difficile selezionare la migliore soluzione. Sebbene siano state proposte alcune strategie euristiche per affrontare questo problema, queste mancano di una garanzia teorica forte ed è ancora una questione aperta se esista una strategia di selezione ottimale. Il nostro lavoro contribuisce in due modi. In primo luogo, dimostriamo che all'interno di un framework bayesiano, la strategia di selezione ottimale può essere definita in base alla probabilità a posteriori degli stati di superamento osservati tra le soluzioni e i test. Il problema di identificare la migliore soluzione viene quindi formulato come un problema di programmazione intera. In secondo luogo, proponiamo un approccio efficiente per approssimare questa strategia ottimale (ma non calcolabile), dove l'errore di approssimazione è limitato dalla correttezza della conoscenza precedente. Incorporiamo quindi una conoscenza preventiva efficace per adattare compiti di generazione di codice. Studi sia teorici che empirici confermano che le euristiche esistenti sono limitate nella selezione delle migliori soluzioni con casi di test plausibili. La nostra strategia approssimata proposta B4 supera significativamente le euristiche esistenti nella selezione delle soluzioni di codice generate da grandi modelli linguistici (LLM) con test generati da LLM, ottenendo un miglioramento delle prestazioni relative fino al 50% rispetto alla euristica più forte e del 246% rispetto alla selezione casuale nei casi più impegnativi. Il nostro codice è disponibile pubblicamente su 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