De Código a Corrección: Cerrando la Última Milla de la Generación de Código con Depuración JerárquicaFrom Code to Correctness: Closing the Last Mile of Code Generation with
Hierarchical Debugging
Si bien los modelos de lenguaje grandes han avanzado significativamente en la generación de código, la tasa de aprobación del código generado se ve obstaculizada por errores sutiles, que a menudo requieren intervención humana para pasar pruebas, especialmente en problemas complejos. Los sistemas de depuración existentes basados en LLM tratan los programas generados como unidades monolíticas, sin abordar los errores en múltiples niveles de granularidad, desde errores de sintaxis de bajo nivel hasta fallas algorítmicas de alto nivel. En este documento, presentamos Multi-Granularity Debugger (MGDebugger), un depurador de código jerárquico que aísla, identifica y resuelve errores en varios niveles de granularidad. MGDebugger descompone el código problemático en una estructura jerárquica de árbol de subfunciones, donde cada nivel representa una granularidad de error particular. Durante la depuración, analiza cada subfunción y resuelve iterativamente los errores de abajo hacia arriba. Para probar efectivamente cada subfunción, proponemos un ejecutor Python simulado por LLM, que rastrea la ejecución del código y sigue los estados variables importantes para identificar errores con precisión. Experimentos extensos demuestran que MGDebugger supera a los sistemas de depuración existentes, logrando una mejora del 18.9% en precisión sobre las generaciones iniciales en HumanEval y una tasa de éxito de reparación del 97.6% en HumanEvalFix. Además, MGDebugger soluciona efectivamente errores en diferentes categorías y niveles de dificultad, demostrando su robustez y efectividad.