LLM2D
从代码到正确性:用分层调试弥合代码生成的最后一步
From Code to Correctness: Closing the Last Mile of Code Generation with Hierarchical Debugging
作者: Yuling Shi, Songsong Wang, Chengcheng Wan, Xiaodong Gu
发布日期: 10/3/2024
arXiv ID: oai:arXiv.org:2410.01215v1

摘要

尽管大型语言模型在代码生成方面取得了重大进展,但生成的代码通过率却受到细微错误的限制,通常需要人工干预才能通过测试,尤其是在处理复杂问题时。现有的基于大型语言模型的调试系统将生成的程序视为整体单元,无法解决从低级语法错误到高级算法缺陷等不同粒度的错误。本文介绍了多粒度调试器 (MGDebugger),这是一种通过隔离、识别和解决不同粒度级别的错误来实现的层次化代码调试器。MGDebugger 将有问题的代码分解为一个层次化的子函数树结构,每一层代表着特定粒度的错误。在调试过程中,它会分析每个子函数并以自底向上的方式迭代地解决错误。为了有效地测试每个子函数,我们提出了一种基于大型语言模型的模拟 Python 执行器,它可以跟踪代码执行并跟踪重要变量状态,以准确地定位错误。大量的实验表明,MGDebugger 的性能优于现有的调试系统,在 HumanEval 中比种子生成实现了 18.9% 的准确率提升,在 HumanEvalFix 中的修复成功率达到了 97.6%。此外,MGDebugger 可以有效地修复不同类别和难度级别的错误,这证明了其鲁棒性和有效性。