- 简介大型语言模型(LLMs)在代码生成方面取得了重要进展。除了单次代码生成外,最近的研究进一步将单元测试和程序验证器整合到LLMs中,以迭代地改进生成的程序。然而,这些研究将生成的程序视为一个不可分割的实体,这在调试程序时对LLMs来说存在不足,特别是当程序包含复杂的逻辑流和数据操作时。相反,当人类开发人员调试程序时,他们通常设置断点并有选择地检查运行时执行信息。执行流和中间变量在调试过程中起着至关重要的作用,但它们在现有的代码生成文献中被低估了。在本研究中,我们介绍了大型语言模型调试器(LDB),这是一个新的调试框架,使LLMs能够使用运行时执行信息来改进生成的程序。具体而言,LDB将程序分段成基本块,并在整个运行时执行过程中跟踪每个块后的中间变量的值。这使得LLMs能够集中精力处理整体执行流程中的简单代码单元,逐块验证它们的正确性,并有效地定位任何潜在的错误。实验证明,LDB在HumanEval、MBPP和TransCoder基准测试中始终将基准性能提高了高达9.8%,在各种LLM选择的代码调试方面实现了新的最先进性能。
- 图表
- 解决问题本论文旨在解决大型语言模型在调试程序时的不足,尤其是在处理复杂逻辑和数据操作时。论文提出了一种新的调试框架,使大型语言模型能够利用运行时执行信息来改进生成的程序。
- 关键思路论文提出的Large Language Model Debugger(LDB)框架将程序分成基本块,并跟踪每个块后的中间变量值,从而使大型语言模型能够集中精力研究整个执行流程中的较简单的代码单元,并逐块根据任务描述验证其正确性,快速定位潜在错误。
- 其它亮点论文的实验结果表明,LDB框架能够在HumanEval、MBPP和TransCoder基准测试中将基线性能提高高达9.8%,并在各种大型语言模型选择中实现了新的最佳性能。值得关注的是,论文还提到了该框架的开源代码和未来研究方向。
- 在相关研究方面,最近的一些工作探索了将单元测试和程序验证器整合到大型语言模型中,但这些工作将生成的程序视为不可分割的实体,无法有效地调试程序。
沙发等你来抢
去评论
评论
沙发等你来抢