AutoCodeRover: Autonomous Program Improvement

AutoCodeRover: Autonomous Program Improvement

Published on Jun 8
8分钟
大模型论文天天读
0:00
0:00
<p>https://arxiv.org/abs/2404.05427 在过去几十年中,研究人员在实现软件开发过程自动化方面取得了重大进展。大语言模型(LLMs)的最新进展对开发过程产生了重大影响,开发人员可以使用基于 LLM 的编程助手来实现自动编码。然而,除了编码之外,软件工程还涉及程序改进过程,特别是为了实现软件维护(如修复漏洞)和软件演进(如添加功能)。在本文中,我们提出了一种自动解决 GitHub 问题的方法,以自主实现程序改进。在我们名为 AutoCodeRover 的方法中,LLMs 与复杂的代码搜索功能相结合,最终实现程序修改或补丁。与人工智能研究人员和从业者最近提出的 LLM 代理方法不同,我们的视角更侧重于软件工程。我们处理的是程序表示(抽象语法树),而不是将软件项目仅仅视为文件的集合。 我们的代码搜索利用类/方法形式的程序结构,来增强大语言模型(LLM)对问题根本原因的理解,并通过迭代搜索有效地检索上下文。只要有测试套件,使用基于测试的频谱故障定位,就能进一步优化上下文。在 SWE-bench-lite(300 个真实的 GitHub 问题)上进行的实验表明,解决 GitHub 问题的效率有所提高(在 SWE-bench-lite 上提高了 19%),高于最近报道的 SWE-agent 的效率。此外,与其他基线相比,AutoCodeRover 以显著更低的成本(平均 0.43 美元)实现了这一效率。我们认为,我们的工作流程能够实现自主软件工程,未来,大语言模型(LLMs)自动生成的代码可以得到自主改进</p>