От кода к корректности: закрытие последнего этапа генерации кода с иерархическим отладочным инструментом.From Code to Correctness: Closing the Last Mile of Code Generation with
Hierarchical Debugging
Хотя большие языковые модели сделали значительные успехи в генерации кода, процент прохождения сгенерированного кода ограничивается тонкими ошибками, часто требующими вмешательства человека для прохождения тестов, особенно для сложных задач. Существующие системы отладки на основе LLM рассматривают сгенерированные программы как монолитные единицы, не уделяя внимания ошибкам на нескольких уровнях детализации, от низкоуровневых синтаксических ошибок до высокоуровневых алгоритмических недочетов. В данной статье мы представляем Multi-Granularity Debugger (MGDebugger), иерархический отладчик кода, выделяющий, идентифицирующий и устраняющий ошибки на различных уровнях детализации. MGDebugger декомпозирует проблемный код в иерархическое дерево структуры подфункций, при этом каждый уровень представляет определенную детализацию ошибки. Во время отладки он анализирует каждую подфункцию и итеративно устраняет ошибки снизу вверх. Для эффективного тестирования каждой подфункции мы предлагаем LLM-симулированный исполнитель Python, который отслеживает выполнение кода и отслеживает важные состояния переменных для точного определения ошибок. Обширные эксперименты демонстрируют, что MGDebugger превосходит существующие системы отладки, достигая улучшения точности на 18,9% по сравнению с начальными поколениями в HumanEval и успешной скоростью восстановления на уровне 97,6% в HumanEvalFix. Более того, MGDebugger эффективно устраняет ошибки в различных категориях и уровнях сложности, демонстрируя свою надежность и эффективность.