Skywork-SWE:揭示大型语言模型(LLMs)中软件工程的数据扩展定律

发表
Liang ZengLiang Zeng 提交
作者: Liang ZengLiang Zeng, lycfightYongcong Li, Ricky ShawYuzhen Xiao, Changshi LiChangshi Li, Chris (Yuhao) LiuChris Yuhao Liu, Rui Yan, Tianwen Wei, Jujie He, Xuchen Song, Yang Liu, Yahui Zhou

摘要

软件工程(SWE)最近已成为下一代 LLM 智能体的关键试验台,它要求在两个关键维度上具备内在能力:持续迭代问题解决(例如,>50 轮交互)和长上下文依赖解析(例如,>32k tokens)。然而,SWE 中的数据整理过程仍然非常耗时,因为它严重依赖于人工标注来过滤代码文件以及设置专门的运行时环境来执行和验证单元测试。因此,大多数现有数据集仅限于几千个来自 GitHub 的实例。为此,我们提出了一种增量式、自动化数据整理管道,系统地扩大 SWE 数据集的数量和多样性。我们的数据集包含来自 2,531 个不同 GitHub 存储库的 10,169 个真实世界 Python 任务实例,每个实例都附带自然语言指定的任务和用于自动化单元测试验证的专用运行时环境镜像。我们已经从我们提出的 SWE 数据集中精心整理了超过 8,000 条成功通过运行时验证的训练轨迹。当在这些轨迹上微调 Skywork-SWE 模型时,我们发现了一个惊人的数据扩展现象:训练模型在 LLM 软件工程能力方面的性能随着数据量的增加而持续提高,没有出现饱和的迹象。值得注意的是,我们的 Skywork-SWE 模型在 SWE-bench Verified 基准测试上达到了 38.0% 的 pass@1 准确率,而无需使用验证器或多次运行,在基于 OpenHands 智能体框架构建的 Qwen2.5-Coder-32B LLM 中树立了新的最先进(SOTA)水平。此外,通过结合测试时扩展技术,性能进一步提高到 47.0% 的准确率,超越了之前低于 32B 参数模型的 SOTA 结果。我们发布 Skywork-SWE-32B 模型检查点以加速未来的研究。
查看 arXiv 页面查看 PDF

评论

Liang ZengLiang Zeng
论文作者
论文提交者

软件工程(SWE)最近已成为下一代大型语言模型(LLM)代理的关键试验平台,要求其具备两个关键维度的固有能力:持续迭代问题解决(例如,>50轮交互)和长上下文依赖解析(例如,>32k token)。然而,软件工程中的数据整理过程耗时且闻名,因为它严重依赖于手动标注来过滤代码文件,并需要设置专门的运行时环境来执行和验证单元测试。因此,大多数现有数据集仅限于数千个来自GitHub的实例。为此,我们提出了一种增量式自动化数据整理管道,该管道系统地扩展了SWE数据集的数量和多样性。我们的数据集包含来自2,531个不同GitHub仓库的10,169个真实世界的Python任务实例,每个实例都附带自然语言描述的任务以及一个用于自动化单元测试验证的专用运行时环境镜像。我们从提出的SWE数据集中精心整理了超过8,000个成功通过运行时验证的训练轨迹。在这些轨迹上微调Skywork-SWE模型时,我们发现了一个显著的数据扩展现象:随着数据量的增加,训练出的模型在大型语言模型软件工程能力方面的性能持续提升,未显示出饱和的迹象。值得注意的是,我们的Skywork-SWE模型在SWE-bench Verified基准测试中,在不使用验证器或多次运行的情况下,实现了38.0%的pass@1准确率,在基于OpenHands代理框架构建的Qwen2.5-Coder-32B模型中确立了新的最先进(SOTA)水平。此外,通过结合测试时扩展技术,性能进一步提高到47.0%的准确率,超越了之前低于32亿参数模型的SOTA结果。最后,我们提炼了一套实用指南,旨在进一步推动大型语言模型驱动的软件工程在学术研究和工业实践中的发展。我们发布了Skywork-SWE-32B模型检查点,以加速未来的研究。

Akshay GulabraoAkshay Gulabrao

干得好!我完全同意高质量数据是瓶颈,任何能自动化此过程的工具都很好。