SWE-smith: Scaling Data for Software Engineering Agents

2025年04月30日
  • 简介
    尽管最近在软件工程领域的语言模型(LMs)取得了进展,但收集训练数据仍然是一个重要的痛点。现有的数据集规模较小,最多只有来自不超过11个GitHub仓库的数千个训练实例。整理这些数据集的过程通常非常复杂,需要耗费数百小时的人工劳动;配套的执行环境也需要占用数TB的存储空间,这严重限制了它们的可扩展性和可用性。为了解决这一痛点,我们提出了SWE-smith,这是一种用于大规模生成软件工程训练数据的新方法。给定任何Python代码库,SWE-smith都会构建相应的执行环境,然后自动生成数百到数千个任务实例,这些实例能够破坏代码库中现有的测试用例。通过使用SWE-smith,我们从128个GitHub仓库中创建了一个包含5万实例的数据集,其规模比之前所有工作的总和大了一个数量级。我们训练了SWE-agent-LM-32B模型,在SWE-bench Verified基准测试中实现了40.2%的Pass@1解决率,这是开源模型中的最佳水平。我们开源了SWE-smith(包括数据收集流程、任务实例、轨迹和模型),以降低自动化软件工程领域LM系统研究的入门门槛。所有资源均可在https://swesmith.com获取。
  • 作者讲解
  • 图表
  • 解决问题
    论文试图解决软件工程领域中大规模语言模型训练数据不足的问题,尤其是现有数据集规模小、来源有限且生成复杂的问题。这是一个需要解决的重要问题,但并非全新的研究方向,而是对已有挑战的进一步优化。
  • 关键思路
    论文提出了一种名为SWE-smith的自动化流水线工具,能够从任意Python代码库中生成大量任务实例,并通过构建对应的执行环境自动合成测试用例。相比现有方法,SWE-smith显著降低了数据收集的复杂性和存储需求,同时大幅提升了数据规模(达到5万实例),从而为训练更强大的软件工程语言模型提供了可能。
  • 其它亮点
    论文的主要亮点包括:1) 创建了一个包含5万实例的大规模数据集,比现有数据集大一个数量级;2) 开源了整个工具链和相关资源(如任务实例、轨迹数据和预训练模型);3) 使用SWE-smith生成的数据训练出的SWE-agent-LM-32B模型,在SWE-bench Verified基准上达到了40.2%的Pass@1性能,是开源模型中的新纪录;4) 提供了一个可扩展的研究框架,为未来的工作奠定了基础。
  • 相关研究
    最近的相关研究包括:1) CodeXpert系列工作,专注于代码理解和生成任务;2) AlphaCode项目,探索了基于大规模代码数据的语言模型在编程竞赛中的表现;3)CodeGen模型,结合了代码生成与自然语言理解的能力;4) HumanEval和MBPP等基准测试集的开发,用于评估代码生成模型的性能。此外,还有类似的数据增强技术,例如CodexGLUE和GPT-4 Code Interpreter,这些研究共同推动了软件工程领域语言模型的发展。
许愿开讲
PDF
原文
点赞 收藏
向作者提问
NEW
分享到Link

提问交流

提交问题,平台邀请作者,轻松获得权威解答~

向作者提问