De Código à Correção: Fechando a Última Etapa da Geração de Código com Depuração HierárquicaFrom Code to Correctness: Closing the Last Mile of Code Generation with
Hierarchical Debugging
Embora os grandes modelos de linguagem tenham avançado significativamente na geração de código, a taxa de aprovação do código gerado é limitada por erros sutis, frequentemente exigindo intervenção humana para passar nos testes, especialmente para problemas complexos. Os sistemas de depuração existentes baseados em LLM tratam os programas gerados como unidades monolíticas, falhando em abordar bugs em múltiplos níveis de granularidade, desde erros de sintaxe de baixo nível até falhas algorítmicas de alto nível. Neste artigo, apresentamos o Depurador de Múltipla Granularidade (MGDebugger), um depurador de código hierárquico que isola, identifica e resolve bugs em vários níveis de granularidade. O MGDebugger decompõe o código problemático em uma estrutura de árvore hierárquica de subfunções, sendo que cada nível representa uma granularidade específica de erro. Durante a depuração, ele analisa cada subfunção e resolve iterativamente os bugs de baixo para cima. Para testar efetivamente cada subfunção, propomos um executor Python simulado por LLM, que rastreia a execução do código e monitora estados importantes de variáveis para identificar erros com precisão. Experimentos extensivos demonstram que o MGDebugger supera os sistemas de depuração existentes, alcançando uma melhoria de 18,9% na precisão em relação às gerações iniciais no HumanEval e uma taxa de sucesso de reparo de 97,6% no HumanEvalFix. Além disso, o MGDebugger corrige efetivamente bugs em diferentes categorias e níveis de dificuldade, demonstrando sua robustez e eficácia.