Von Code zu Korrektheit: Die letzte Meile der Codegenerierung mit hierarchischem Debuggen schließen

Während große Sprachmodelle (Large Language Models, LLMs) erhebliche Fortschritte bei der Codegenerierung gemacht haben, ist die Durchlaufquote des generierten Codes durch feine Fehler begrenzt, die oft menschliches Eingreifen erfordern, um Tests zu bestehen, insbesondere bei komplexen Problemen. Bestehende LLM-basierte Debugging-Systeme behandeln generierte Programme als monolithische Einheiten und scheitern daran, Fehler auf verschiedenen Granularitätsebenen anzugehen, von niedrigstufigen Syntaxfehlern bis hin zu hochstufigen algorithmischen Fehlern. In dieser Arbeit stellen wir den Multi-Granularity Debugger (MGDebugger) vor, einen hierarchischen Code-Debugger, der durch Isolieren, Identifizieren und Beheben von Fehlern auf verschiedenen Granularitätsebenen arbeitet. MGDebugger zerlegt problematischen Code in eine hierarchische Baumstruktur von Unterfunktionen, wobei jede Ebene eine bestimmte Granularität von Fehlern repräsentiert. Während des Debuggings analysiert es jede Unterfunktion und löst iterativ die Fehler in aufsteigender Reihenfolge. Um jede Unterfunktion effektiv zu testen, schlagen wir einen LLM-simulierten Python-Executor vor, der die Codeausführung nachverfolgt und wichtige Variablenzustände verfolgt, um Fehler präzise zu lokalisieren. Ausführliche Experimente zeigen, dass MGDebugger bestehende Debugging-Systeme übertrifft und eine Genauigkeitsverbesserung von 18,9 % gegenüber den Seed-Generationen in HumanEval sowie einen Reparaturerfolgsrate von 97,6 % in HumanEvalFix erreicht. Darüber hinaus behebt MGDebugger effektiv Fehler in verschiedenen Kategorien und Schwierigkeitsstufen, was seine Robustheit und Effektivität unterstreicht.