- 简介自主程序改进通常涉及自动产生错误修复和功能添加。这种程序改进可以通过大型语言模型(LLM)和程序分析能力的组合来实现,以形成LLM代理。由于程序修复或改进通常需要指定预期行为 - 指定推理对于生成高质量的程序补丁非常有用。在这项工作中,我们研究了LLM代理内迭代规范推理的高效低成本工作流程。给定一个要在软件项目中解决的GitHub问题,我们的目标是进行伴随规范推理的迭代代码搜索 - 从而从项目结构和行为中推断出意图。然后,评审代理检查捕获的意图,目标是审核补丁并提供审核补丁的信心度量。我们的方法SpecRover(AutoCodeRover-v2)是建立在开源LLM代理AutoCodeRover之上的。在对由2294个GitHub问题组成的完整SWE-Bench进行评估时,它显示出比AutoCodeRover更高达50%的效率改进。与可用的开源代理相比,我们的工作在解决SWE-Bench lite中的平均GitHub问题时显示出适度的成本(每个问题0.65美元)。SpecRover的解释产生可以更好地向开发人员提供“信号”,以确定何时可以有信心接受建议的补丁。SpecRover还试图证明,在程序修复技术进入LLM时代时,规范推理在自动程序修复中仍然非常重要。
- 图表
- 解决问题本论文旨在探讨使用大型语言模型和程序分析技术,结合迭代式规范推理,实现自动程序修复和改进的方法,以及在GitHub项目中的应用。
- 关键思路论文提出了一种名为SpecRover的方法,使用大型语言模型和程序分析技术,结合迭代式规范推理,对GitHub项目中的问题进行自动修复和改进,并通过评审代理进行验证,同时提供高质量的解释和信心度。
- 其它亮点论文提出的SpecRover方法在SWE-Bench数据集上的实验表明,相对于开源代理AutoCodeRover,其有效性提高了50%以上,且解决一个问题的成本仅为0.65美元。此外,论文强调规范推理在自动程序修复中的重要性,并提供了开源代码。
- 在相关研究方面,最近的一些论文包括:“Automatic Program Repair Using Machine Learning: A Review”和“DeepRepair: A Deep Learning Approach to Automated Program Repair”。
沙发等你来抢
去评论
评论
沙发等你来抢