B4: Hacia la Evaluación Óptima de Soluciones de Código Plausibles con Pruebas Plausibles
B4: Towards Optimal Assessment of Plausible Code Solutions with Plausible Tests
September 13, 2024
Autores: Mouxiang Chen, Zhongxin Liu, He Tao, Yusu Hong, David Lo, Xin Xia, Jianling Sun
cs.AI
Resumen
Seleccionar la mejor solución de código entre varias generadas es una tarea esencial en la generación de código, la cual se puede lograr utilizando validadores confiables (por ejemplo, casos de prueba escritos por desarrolladores) como ayuda. Dado que los casos de prueba confiables no siempre están disponibles y pueden ser costosos de construir en la práctica, los investigadores proponen generar automáticamente casos de prueba para evaluar las soluciones de código. Sin embargo, cuando tanto las soluciones de código como los casos de prueba son plausibles y no confiables, seleccionar la mejor solución se vuelve un desafío. Aunque se han propuesto algunas estrategias heurísticas para abordar este problema, carecen de una garantía teórica sólida y sigue siendo una pregunta abierta si existe una estrategia de selección óptima. Nuestro trabajo contribuye de dos maneras. Primero, mostramos que dentro de un marco bayesiano, la estrategia óptima de selección se puede definir en función de la probabilidad posterior de los estados de aprobación observados entre las soluciones y los tests. El problema de identificar la mejor solución se plantea entonces como un problema de programación entera. Segundo, proponemos un enfoque eficiente para aproximar esta estrategia óptima (aunque no computable), donde el error de aproximación está limitado por la corrección del conocimiento previo. Luego incorporamos conocimiento previo efectivo para adaptar tareas de generación de código. Estudios tanto teóricos como empíricos confirman que las heurísticas existentes son limitadas en la selección de las mejores soluciones con casos de prueba plausibles. Nuestra estrategia óptima aproximada propuesta B4 supera significativamente a las heurísticas existentes en la selección de soluciones de código generadas por grandes modelos de lenguaje (LLMs) con pruebas generadas por LLM, logrando una mejora de rendimiento relativa de hasta un 50% sobre la heurística más sólida y un 246% sobre la selección aleatoria en los escenarios más desafiantes. Nuestro código está disponible públicamente en 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