Artículo destacado
EG-CFG: Integrating Execution Feedback to Improve LLM Code Generation
Escrito por
MIIA
Publicado
19 de julio de 2025
Lectura
4 min
Los grandes modelos de lenguaje han avanzado mucho en la generación de código para distintas tareas de programación. Sin embargo, su enfoque se basa principalmente en identificar patrones a partir de ejemplos de código estático, sin realmente comprender cómo se comporta el código al ejecutarse. Esto provoca que a menudo generen programas que parecen correctos, pero fallan al correrlos. Aunque últimamente se han desarrollado métodos que introducen refinamientos iterativos y auto-corrección, estos suelen funcionar en etapas separadas: generar, probar y luego revisar el código. A diferencia de los programadores humanos, que ejecutan fragmentos de código constantemente y ajustan en tiempo real según los resultados, estos modelos no integran ese tipo de retroalimentación continua, lo que limita su capacidad de producir código funcional de manera confiable.
En el campo de la síntesis de programas, se ha utilizado desde hace tiempo para evaluar estos modelos y automatizar benchmarks de generación de código, como MBPP, HumanEval y CodeContests, al poner a prueba a los modelos en distintos desafíos. Las técnicas de prompting, como el few-shot o el Chain-of-Thought, han mejorado el rendimiento, pero los enfoques más recientes incorporan bucles de retroalimentación que aprovechan herramientas o resultados de ejecución para ajustar las respuestas. Incluso se han desarrollado sistemas que asignan diferentes tareas a múltiples agentes de lenguaje, cada uno abordando una parte del problema. No obstante, la mayoría de estos métodos siguen usando técnicas simples de decodificación. Algunas estrategias nuevas, como las basadas en CFG (gramáticas libres de contexto), ofrecen enfoques más dinámicos, aunque aún no se han aplicado mucho con retroalimentación en tiempo real durante la ejecución.
Investigadores de la Universidad de Tel Aviv presentaron EG-CFG, un nuevo enfoque para la generación de código que aprovecha activamente la retroalimentación de la ejecución mientras se escribe el código, imitando la forma en que trabajan los programadores humanos. En lugar de esperar hasta terminar para testear, EG-CFG evalúa fragmentos parciales durante el proceso, guiando el modelo para producir resultados correctos y ejecutables. Utiliza una búsqueda en haz (beam search) para generar múltiples opciones de código, las ejecuta y utiliza los resultados en tiempo real para influir en las etapas siguientes. Este ciclo de retroalimentación continuo mejora considerablemente el rendimiento en benchmarks como MBPP, HumanEval y CodeContests, incluso superando a modelos cerrados, además de permitir un razonamiento paralelo eficiente y exploración dinámica.
El funcionamiento de EG-CFG combina la búsqueda en haz con el análisis sintáctico (AST parsing) y la retroalimentación en tiempo real durante la inferencia. Para una tarea dada, primero genera soluciones parciales y explora diferentes continuaciones. Solo se ejecutan las variantes que pasan la revisión sintáctica, y sobre ellas se corren pruebas para recopilar trazas detalladas, como estados de variables y errores. Esta información se integra de nuevo en el prompt para orientar las predicciones futuras. Un mecanismo de guía equilibra la salida habitual del modelo y las sugerencias informadas por la ejecución, ayudando a refinar la solución paso a paso hasta que el código resuelve todos los casos de prueba.
En las pruebas con dos versiones de modelos DeepSeek —una local de 1.300 millones de parámetros y la versión más grande V3-0324 a través de API— EG-CFG fue evaluado en cinco benchmarks: MBPP, HumanEval, CodeContests, MBPP-ET y HumanEval-ET. En HumanEval, EG-CFG con DeepSeek V3 logró resolver correctamente el 90.1% de las tareas, superando a GPT-4 (85.5%) y Claude 2 (83.2%). En MBPP-ET alcanzó un 81.4%, estableciendo un nuevo récord. Incluso el modelo más pequeño mostró una mejora notable, pasando del 46.3% al 61.7% en HumanEval gracias a la guía de EG-CFG. Un estudio ablatio destacó que componentes como la retroalimentación dinámica y la búsqueda en haz son clave para estos resultados.
En resumen, EG-CFG representa un avance al simular la manera en que un programador humano depura código, incorporando la retroalimentación de ejecución en tiempo real durante la generación. A diferencia de los métodos tradicionales que se basan en patrones estáticos, este enfoque explora posibles continuaciones, las prueba con datos reales y ajusta la generación línea por línea con información estructurada y útil. Además, permite que múltiples agentes trabajen en paralelo, aumentando la eficiencia. Los resultados demuestran la eficacia de EG-CFG, incluso en tareas complejas y con modelos más pequeños, consolidándolo como una herramienta prometedora para mejorar la generación automática de código.