⏶8
SWE-smith:为软件工程智能体规模化数据
发表
由
John 提交

作者:
John Yang, Kilian Leret, Carlos E. Jimenez, Alexander Wettig, Kabir Khandpur, Yanzhe Zhang, Binyuan Hui, Ofir Press, Ludwig Schmidt, Diyi Yang

摘要
尽管软件工程领域的语言模型(LM)近期取得了进展,但收集训练数据仍然是一个显著的痛点。现有数据集规模较小,最多只有几千个训练实例,且通常来自11个或更少的GitHub仓库。整理这些数据集的流程往往很复杂,需要数百小时的人力投入;配套的执行环境也占用数TB的存储空间,严重限制了它们的可扩展性和可用性。为了解决这个痛点,我们引入了SWE-smith,这是一个用于大规模生成软件工程训练数据的新颖流程。给定任何Python代码库,SWE-smith会构建相应的执行环境,然后自动生成数百到数千个任务实例,这些实例会使代码库中现有的测试失败。利用SWE-smith,我们创建了一个包含5万个实例的数据集,这些数据来自128个GitHub仓库,比之前所有工作的数据集规模大一个数量级。我们训练了SWE-agent-LM-32B模型,在SWE-bench Verified基准测试上实现了40.2%的Pass@1解决率,这是开源模型中的最先进水平。我们开源了SWE-smith(包括收集流程、任务实例、轨迹和模型),以降低自动化软件工程领域LM系统研究的门槛。所有相关资源可在 https://swesmith.com 获取。

使用 100% 开源模型、代理和数据,在 SWE-bench verified 上单次尝试、未使用验证器的情况下突破 40%。
我们知道微调和强化学习对于将语言模型训练为编码代理非常有前景——对于像 SWE-bench 这样的 SWE 任务,瓶颈在于如何获取训练数据。
我们已经使用 SWE-smith 弥补了这一空白,它是一个可以为任何 Python 仓库合成数百到数千个任务实例的工具包。
我们为 128 个流行的 GitHub 仓库生成了 5 万多个任务实例,然后训练了我们自己的语言模型用于 SWE-agent。SWE-agent-LM-32B 在 SWE-bench Verified 上取得了 40% 的 pass@1 成绩——这是开源模型中的新 SoTA。
了解更多:
- 论文 (arXiv 版本基本相同,有一些小改动,v2 版本即将上传)。
- 代码
- 网站