6月20日,昆仑万维正式发布软件工程(Software Engineering,SWE)自主代码智能体基座模型 Skywork-SWE,在开源 32B 模型规模下实现了业界领先的仓库级代码修复能力。昆仑万维团队通过构建超过 1 万个可验证的 GitHub 仓库任务实例,打造出目前最大规模的可验证 GitHub 仓库级代码修复数据集,并系统性地验证了大模型在软件工程任务上的 数据缩放定律(Scaling Law)。
## Skywork-SWE-32B 模型的核心突破
Skywork-SWE-32B 模型在 SWE-bench Verified 基准上取得了 38.0% pass@1 准确率,刷新了 Qwen2.5-Coder-32B 系列模型在 OpenHands 代码框架下的最佳成绩。进一步引入测试时扩展技术后,模型表现提升至 47.0% 的准确率,不仅超越了现有参数规模在 32B 以下的开源模型,也显著缩小了与闭源模型之间的性能差距。
> **小提示**:测试时扩展技术(Test-Time Scaling,TTS)是一种在推理阶段增加计算量以提升模型性能的方法,相当于给模型更多“思考时间”来生成更优的解决方案。
### 模型性能对比亮点
| 对比维度 | 性能表现 |
|---------|---------|
| 相同参数规模开源模型 | 38.0% pass@1,刷新 Qwen2.5-Coder-32B 系列最佳成绩 |
| 引入 TTS 后 | 47.0% pass@1,超越 32B 以下所有开源模型 |
| 与 671B 参数模型对比 | 领先 DeepSeek-V3-0324 达 8.2 个百分点 |
| 与闭源模型对比 | 超越 GPT-4.1-mini(23.86%)、Claude 3.5 HaiKu(40.6%)、OpenAI-o1-preview(41.3%) |
### 模型资源直通车
- **技术报告**:https://huggingface.co/Skywork/Skywork-SWE-32B/resolve/main/assets/Report.pdf
- **博客地址**:https://quixotic-sting-239.notion.site/eb17f379610040ceb54da5d5d24065bd
- **HuggingFace地址**:https://huggingface.co/Skywork/Skywork-SWE-32B
## 什么是 SWE 任务?为什么它如此重要?
2025年被广泛认为是智能体(Agent)模型的元年,其核心特征包括“超多轮交互”和“超长上下文处理”。在众多应用方向中,软件工程 SWE 任务正成为大语言模型智能体的关键应用场景之一。
**相比传统的代码生成任务(如代码编程题解答),SWE 任务更加贴近真实的软件开发流程,涵盖了从定位 BUG、修改源代码,到验证修复效果的完整闭环。** 这类任务通常源自 GitHub 仓库中的实际代码工程问题,具备高度的真实性、复杂性和挑战性,是评估智能体模型能力的重要基准。
SWE 任务的独特之处在于,它对模型提出了更高要求:不仅需要支持多轮交互和长上下文推理,还需具备处理跨文件依赖、调用工具链,以及在复杂环境中持续修复代码问题的能力。这些能力全面考验了智能体模型的工程实践水平与系统性思维能力。
> **常见问题**:SWE 任务和普通代码生成任务有什么区别?
>
> **答案**:普通代码生成任务通常只需要根据描述生成一段代码,而 SWE 任务需要模型理解整个仓库的代码结构,定位问题所在文件,修改源代码,并运行测试验证修复效果。这更像是一个“程序员”的完整工作流程,而不是简单的“代码填空”。
## 三阶段自动化流程:构建大规模、高质量 SWE 任务训练数据集
尽管当前市面上已有不少工作聚焦于 SWE 任务并收集了相关数据集,但当前的主流(训练)数据集仍存在三大核心问题:
1. **缺乏可执行环境与验证机制**:已有开源数据(如 SWE-bench-extra、SWE-Fixer)通常缺乏环境或单元测试来验证数据正确性,导致生成的修复难以验证。
2. **高质量训练数据稀缺**:尽管某些数据集规模较大(如 SWE-Dev、SWE-Gym),但缺乏经过严格验证的训练样本,公开可用的高质量数据极为有限,导致开源模型在 SWE 任务上长期落后于闭源模型。
3. **数据规模法则适用性不明确**:相较于自然语言领域中的任务,SWE 任务现有的公开训练数据体量较小,尚无法有效验证数据扩展是否能带来模型能力的持续增长。
为打破上述瓶颈,打造具备工程实用性的 SWE 代码智能体模型,昆仑万维团队首先在训练阶段自行构建了一套自动化、结构化、可复现的 SWE 数据收集与验证流程,共分为三个阶段、九个步骤(如下图所示)。最终团队构建出超 1 万条高质量任务实例、8 千条多轮交互的轨迹,为模型训练提供坚实基础。
**图:Skywork-SWE 完整数据收集与验证流程**
### 阶段A:数据采集与预筛选
**步骤A.1 GitHub 元数据抓取**:通过 GitHub API 抓取超过 15 万个开源仓库的元信息,优先保留高 Star 仓库。为防止数据泄漏,在排除 SWE-bench Verified(测试数据集)已包含的仓库后,最终获得 8,472 个有效仓库的元信息,为后续数据构建打下基础。
**步骤A.2 PR 收集与任务初筛**:从上述仓库中提取已合并且明确关联 Issue 的 Pull Requests(PRs),仅保留修改测试相关文件的 PRs,构建出初始的 146,568 个任务样本。
**步骤A.3 安装验证**:回滚到每个 PR 的起始版本,运行统一的安装脚本完成环境部署,对样本执行自动化安装验证,保留 23,389 个任务样本。
> **小提示**:数据泄漏是机器学习中的常见问题,指训练数据中包含测试数据,导致模型性能评估不准确。昆仑万维团队通过排除已包含在 SWE-bench Verified 中的仓库,有效避免了这一问题。
### 阶段B:基于执行的验证机制
**步骤B.1 统一命令生成**:定义统一的默认配置,涵盖环境初始化、依赖安装与测试执行,高效适配多样化开源项目。
**步骤B.2 Docker 环境构建**:基于默认配置,采用分层容器构建机制,为每个任务样本生成隔离的三个级别 Docker 镜像(基础镜像;仓库镜像;Issue 镜像)。
**步骤B.3 单元测试验证**:在镜像环境中对每个任务应用补丁并执行测试,保留全部测试通过的样本,共计 10,169 条,确保问题修复有效并构建高质量验证数据。
> **常见问题**:为什么需要阶段 B 的验证机制?
>
> **答案**:因为 SWE 任务涉及真实的代码修复,如果没有验证机制,模型生成的“修复”可能只是形式上正确,但实际无法通过测试。通过单元测试验证,可以确保每个训练样本的修复方案都是真正有效的,从而保证训练数据的质量。
### 阶段C:智能体轨迹生成
**步骤C.1 智能体轨迹生成**:基于开源的 OpenHands 代码智能体框架,选用代码能力突出的商用大模型(如 Claude、DeepSeek 等)作为智能体基座,对每个任务执行最多 100 轮交互,完整记录智能体在问题求解过程中的交互轨迹,覆盖从理解任务到输出修复方案的全流程。
**步骤C.2 Patch 级验证**:针对每条轨迹中生成的最终补丁,在运行环境镜像中进行严格的自动化测试。仅保留所有测试用例均通过的补丁及其对应轨迹,确保智能体行为严格对齐仓库级代码修复目标。
**步骤C.3 构建训练样本库**:累计收集 8,209 条高质量、长上下文、多轮交互的验证通过轨迹,构建结构化训练样本,用于 Skywork-SWE-32B 智能体模型的微调训练。
## Skywork-SWE:万级高质量可验证数据集,驱动智能体模型能力跃迁
在上述三个阶段过程中,团队实施了严格的数据筛选与构建流程。如下图所示,团队从最初超过 15 万条候选代码仓库元数据中,最终筛选出约 1 万条高质量实例,构建出当前规模最大、质量最高的可验证 SWE 任务(训练)数据集——Skywork-SWE。
**图:数据构建过程中各个阶段数据样本量变化示意**
Skywork-SWE 数据集在任务数量与代码覆盖广度方面,远超现有同类数据集(如 SWE-Gym Lite 与 SWE-bench Verified),为大模型提供了丰富、多样且贴近实际的软件工程任务样本,持续推动智能体模型的能力进化。此外,Skywork-SWE 数据集不仅涵盖如 Pydantic、SQLGlot、DVC 等主流开源项目,还包含大量中小型仓库,呈现出高度贴近真实开发生态的任务分布特征。这种贴近真实开发生态的数据构成,有助于提升模型在复杂多样场景下的问题解决能力。
**图:Skywork-SWE 数据集的 GitHub 仓库词云**
> **小提示**:数据集的多样性对于模型泛化能力至关重要。Skywork-SWE 数据集不仅包含大型知名项目,还包括大量中小型项目,这使得模型能够在各种规模和类型的代码仓库中都表现出色。
## Skywork-SWE 登顶 32B 开源 SOTA
“Less artifact, more intelligence”(更少的人工约束,更多智能发挥)是团队开发软件工程自主代码智能体模型的核心理念。我们主张赋予 AI 更大自主权,由其决定工具使用与任务执行方式,而非人为预先设定规则流程。基于这一理念,最终选用目前最具自主性的开源 OpenHands 框架。
基于 Skywork-SWE 数据集的高质量智能体轨迹,昆仑万维团队微调得到 Skywork-SWE-32B 模型,该模型在 SWE-bench Verified 测评中取得优异成绩。截至目前,Skywork-SWE-32B 在 SWE-Bench 榜单中成为当前性能最强的 32B 开源代码智能体大模型,刷新 SWE-bench Verified 基准上同等规模模型的最佳成绩,充分展示了其工程实用价值:
1. **Skywork-SWE-32B 测评结果超越相同参数规模的模型。** Skywork-SWE-32B 基于开源 OpenHands 代码 Agent 框架,实现了 38.0% pass@1 的准确率,达到了 Qwen2.5-Coder-32B 系列模型在 OpenHands 代码框架下的最优水平。更为关键的是,实验结果进一步表明:随着训练数据规模的持续扩展,模型性能持续提升,充分验证了“数据规模扩展带来的性能增益”在软件工程任务中的有效性与适用性。
2. **应用测试时扩展技术之后,Skywork-SWE-32B 取得了最优性能。** 在引入测试时扩展技术(Test-Time Scaling, TTS)后,Skywork-SWE-32B (+ TTS) 的 pass@1 准确率进一步提升至 47.0%,刷新了 32B 参数规模以下开源模型的 SOTA。更值得关注的是,Skywork-SWE-32B 在与参数量高达 671B 的 DeepSeek-V3-0324 模型对比中仍展现出明显优势,领先 8.2 个百分点。
3. **Skywork-SWE-32B (+ TTS) 的表现接近甚至超越多数主流闭源大模型。** Skywork-SWE-32B (+ TTS) 的 pass@1 准确率显著超越了 GPT-4.1-mini(23.86%)、Claude 3.5 HaiKu(40.6%)和 OpenAI-o1-preview(41.3%),并且领先于 Claude v3.5(46.0%)。
### 案例展示:从 Issue 到修复的完整流程
开发者需要解决如下目标 Astropy 代码仓库中 #14309 代码合并请求:
**图:Astropy 仓库 Issue**
即可在 Skywork-SWE-32B 模型中输入上述 Astropy 仓库 Issue 和相应的代码仓库,模型即能精准定位问题源文件与具体缺陷,生成 patch 修复方案(如下图所示)。
**图:生成 patch 修复方案**
经过验证,Skywork-SWE-32B 通过全部测试样例,实现 GitHub 代码仓库从问题理解到解决的一站式代码修复功能。
**图:单元测试结果**
> **常见问题**:如果开发者想使用 Skywork-SWE-32B 模型,需要什么先决条件?
>
> **答案**:开发者需要具备基本的 Git 和 Docker 使用经验,熟悉 Python 环境配置。模型本身已开源在 HuggingFace,可以直接下载使用。建议使用支持长上下文处理的推理框架,以充分发挥模型在 SWE 任务上的优势。
## 持续探索更多 Agent 任务场景
过去半年多时间,昆仑万维在奖励模型、多模态、推理、视频生成等方向开源了一系列 SOTA 级别模型,如今又在 Agent(SWE 任务)方向再下一城。继5月天工超级智能体(Skywork Super Agents)面向全球发布后,今天我们又发布并开源了自主代码智能体模型 Skywork-SWE-32B 模型,这不仅是公司坚定开源策略的重要实践,更代表了我们对 Agent 在办公任务、SWE 任务场景中的重要探索。
通过 Skywork-SWE 数据集的构建,以及自主代码智能体模型 Skywork-SWE-32B 模型的发布,团队研究表明 高质量且可执行验证的数据是提升代码智能体模型性能的关键瓶颈,系统化的数据扩展策略将在推动开源模型性能突破中发挥关键作用。基于此,我们期望 Skywork-SWE-32B 的开源,能够助力社区在大语言模型驱动的软件工程研究中持续演进。
未来,Skywork-SWE-32B 模型将进一步拓展多编程语言支持以覆盖更广泛的开发场景,并探索融合运行时测试反馈的强化学习机制,为构建真正具备智能软件开发能力的大语言模型奠定坚实基础。同时,昆仑万维也将积极探索更多 Agent 任务场景。
> **小提示**:数据缩放定律(Scaling Law)在 SWE 任务上的验证具有重要意义。它表明,在软件工程领域,增加训练数据量同样可以带来模型性能的持续提升,这为后续研究提供了坚实的理论基础和方向指引。
综上所述,Skywork-SWE-32B 模型的开源是昆仑万维在 Agent 领域的重要探索,它不仅为开发者提供了强大的代码修复工具,也为社区提供了高质量的数据集和训练方法,期待未来在更多编程语言和任务场景中看到它的应用。昆仑万维开源Skywork-SWE-32B,揭示LLM软件工程能力数据缩放定律
昆仑万维开源Skywork-SWE-32B模型,在SWE-benchVerified上达38 0%pass@1,引入测试时扩展后提升至47 0%,超越多数开源和闭源模型。通过构建超1万条可验证GitHub仓库级代码修复数据集,验证了软件工程任务上的数据缩放定律。
# 昆仑万维开源 Skywork-SWE-32B 模型:刷新仓库级代码修复能力,验证 LLM 软件工程数据缩放定律
本文将深入解析昆仑万维开源的 Skywork-SWE-32B 模型,全面介绍其突破性性能、大规模高质量数据集的构建方法,以及验证的数据缩放定律,帮助你系统掌握这一重要技术成果。
## 核心主题一览
本文将从以下三个核心主题展开:
1. Skywork-SWE-32B模型 在仓库级代码修复任务中的突破性性能表现
2. 构建大规模、可验证的 GitHub 仓库级代码修复数据集的方法
3. 大模型在软件工程任务上的 数据缩放定律 验证
6月20日,昆仑万维正式发布软件工程(Software Engineering,SWE)自主代码智能体基座模型 Skywork-SWE,在开源 32B 模型规模下实现了业界领先的仓库级代码修复能力。昆仑万维团队通过构建超过 1 万个可验证的 GitHub 仓库任务实例,打造出目前最大规模的可验证 GitHub 仓库级代码修复数据集,并系统性地验证了大模型在软件工程任务上的 数据缩放定律(Scaling Law)。
## Skywork-SWE-32B 模型的核心突破
Skywork-SWE-32B 模型在 SWE-bench Verified 基准上取得了 38.0% pass@1 准确率,刷新了 Qwen2.5-Coder-32B 系列模型在 OpenHands 代码框架下的最佳成绩。进一步引入测试时扩展技术后,模型表现提升至 47.0% 的准确率,不仅超越了现有参数规模在 32B 以下的开源模型,也显著缩小了与闭源模型之间的性能差距。
> **小提示**:测试时扩展技术(Test-Time Scaling,TTS)是一种在推理阶段增加计算量以提升模型性能的方法,相当于给模型更多“思考时间”来生成更优的解决方案。
### 模型性能对比亮点
| 对比维度 | 性能表现 |
|---------|---------|
| 相同参数规模开源模型 | 38.0% pass@1,刷新 Qwen2.5-Coder-32B 系列最佳成绩 |
| 引入 TTS 后 | 47.0% pass@1,超越 32B 以下所有开源模型 |
| 与 671B 参数模型对比 | 领先 DeepSeek-V3-0324 达 8.2 个百分点 |
| 与闭源模型对比 | 超越 GPT-4.1-mini(23.86%)、Claude 3.5 HaiKu(40.6%)、OpenAI-o1-preview(41.3%) |
### 模型资源直通车
- **技术报告**:https://huggingface.co/Skywork/Skywork-SWE-32B/resolve/main/assets/Report.pdf
- **博客地址**:https://quixotic-sting-239.notion.site/eb17f379610040ceb54da5d5d24065bd
- **HuggingFace地址**:https://huggingface.co/Skywork/Skywork-SWE-32B
## 什么是 SWE 任务?为什么它如此重要?
2025年被广泛认为是智能体(Agent)模型的元年,其核心特征包括“超多轮交互”和“超长上下文处理”。在众多应用方向中,软件工程 SWE 任务正成为大语言模型智能体的关键应用场景之一。
**相比传统的代码生成任务(如代码编程题解答),SWE 任务更加贴近真实的软件开发流程,涵盖了从定位 BUG、修改源代码,到验证修复效果的完整闭环。** 这类任务通常源自 GitHub 仓库中的实际代码工程问题,具备高度的真实性、复杂性和挑战性,是评估智能体模型能力的重要基准。
SWE 任务的独特之处在于,它对模型提出了更高要求:不仅需要支持多轮交互和长上下文推理,还需具备处理跨文件依赖、调用工具链,以及在复杂环境中持续修复代码问题的能力。这些能力全面考验了智能体模型的工程实践水平与系统性思维能力。
> **常见问题**:SWE 任务和普通代码生成任务有什么区别?
>
> **答案**:普通代码生成任务通常只需要根据描述生成一段代码,而 SWE 任务需要模型理解整个仓库的代码结构,定位问题所在文件,修改源代码,并运行测试验证修复效果。这更像是一个“程序员”的完整工作流程,而不是简单的“代码填空”。
## 三阶段自动化流程:构建大规模、高质量 SWE 任务训练数据集
尽管当前市面上已有不少工作聚焦于 SWE 任务并收集了相关数据集,但当前的主流(训练)数据集仍存在三大核心问题:
1. **缺乏可执行环境与验证机制**:已有开源数据(如 SWE-bench-extra、SWE-Fixer)通常缺乏环境或单元测试来验证数据正确性,导致生成的修复难以验证。
2. **高质量训练数据稀缺**:尽管某些数据集规模较大(如 SWE-Dev、SWE-Gym),但缺乏经过严格验证的训练样本,公开可用的高质量数据极为有限,导致开源模型在 SWE 任务上长期落后于闭源模型。
3. **数据规模法则适用性不明确**:相较于自然语言领域中的任务,SWE 任务现有的公开训练数据体量较小,尚无法有效验证数据扩展是否能带来模型能力的持续增长。
为打破上述瓶颈,打造具备工程实用性的 SWE 代码智能体模型,昆仑万维团队首先在训练阶段自行构建了一套自动化、结构化、可复现的 SWE 数据收集与验证流程,共分为三个阶段、九个步骤(如下图所示)。最终团队构建出超 1 万条高质量任务实例、8 千条多轮交互的轨迹,为模型训练提供坚实基础。
**图:Skywork-SWE 完整数据收集与验证流程**
### 阶段A:数据采集与预筛选
**步骤A.1 GitHub 元数据抓取**:通过 GitHub API 抓取超过 15 万个开源仓库的元信息,优先保留高 Star 仓库。为防止数据泄漏,在排除 SWE-bench Verified(测试数据集)已包含的仓库后,最终获得 8,472 个有效仓库的元信息,为后续数据构建打下基础。
**步骤A.2 PR 收集与任务初筛**:从上述仓库中提取已合并且明确关联 Issue 的 Pull Requests(PRs),仅保留修改测试相关文件的 PRs,构建出初始的 146,568 个任务样本。
**步骤A.3 安装验证**:回滚到每个 PR 的起始版本,运行统一的安装脚本完成环境部署,对样本执行自动化安装验证,保留 23,389 个任务样本。
> **小提示**:数据泄漏是机器学习中的常见问题,指训练数据中包含测试数据,导致模型性能评估不准确。昆仑万维团队通过排除已包含在 SWE-bench Verified 中的仓库,有效避免了这一问题。
### 阶段B:基于执行的验证机制
**步骤B.1 统一命令生成**:定义统一的默认配置,涵盖环境初始化、依赖安装与测试执行,高效适配多样化开源项目。
**步骤B.2 Docker 环境构建**:基于默认配置,采用分层容器构建机制,为每个任务样本生成隔离的三个级别 Docker 镜像(基础镜像;仓库镜像;Issue 镜像)。
**步骤B.3 单元测试验证**:在镜像环境中对每个任务应用补丁并执行测试,保留全部测试通过的样本,共计 10,169 条,确保问题修复有效并构建高质量验证数据。
> **常见问题**:为什么需要阶段 B 的验证机制?
>
> **答案**:因为 SWE 任务涉及真实的代码修复,如果没有验证机制,模型生成的“修复”可能只是形式上正确,但实际无法通过测试。通过单元测试验证,可以确保每个训练样本的修复方案都是真正有效的,从而保证训练数据的质量。
### 阶段C:智能体轨迹生成
**步骤C.1 智能体轨迹生成**:基于开源的 OpenHands 代码智能体框架,选用代码能力突出的商用大模型(如 Claude、DeepSeek 等)作为智能体基座,对每个任务执行最多 100 轮交互,完整记录智能体在问题求解过程中的交互轨迹,覆盖从理解任务到输出修复方案的全流程。
**步骤C.2 Patch 级验证**:针对每条轨迹中生成的最终补丁,在运行环境镜像中进行严格的自动化测试。仅保留所有测试用例均通过的补丁及其对应轨迹,确保智能体行为严格对齐仓库级代码修复目标。
**步骤C.3 构建训练样本库**:累计收集 8,209 条高质量、长上下文、多轮交互的验证通过轨迹,构建结构化训练样本,用于 Skywork-SWE-32B 智能体模型的微调训练。
## Skywork-SWE:万级高质量可验证数据集,驱动智能体模型能力跃迁
在上述三个阶段过程中,团队实施了严格的数据筛选与构建流程。如下图所示,团队从最初超过 15 万条候选代码仓库元数据中,最终筛选出约 1 万条高质量实例,构建出当前规模最大、质量最高的可验证 SWE 任务(训练)数据集——Skywork-SWE。
**图:数据构建过程中各个阶段数据样本量变化示意**
Skywork-SWE 数据集在任务数量与代码覆盖广度方面,远超现有同类数据集(如 SWE-Gym Lite 与 SWE-bench Verified),为大模型提供了丰富、多样且贴近实际的软件工程任务样本,持续推动智能体模型的能力进化。此外,Skywork-SWE 数据集不仅涵盖如 Pydantic、SQLGlot、DVC 等主流开源项目,还包含大量中小型仓库,呈现出高度贴近真实开发生态的任务分布特征。这种贴近真实开发生态的数据构成,有助于提升模型在复杂多样场景下的问题解决能力。
**图:Skywork-SWE 数据集的 GitHub 仓库词云**
> **小提示**:数据集的多样性对于模型泛化能力至关重要。Skywork-SWE 数据集不仅包含大型知名项目,还包括大量中小型项目,这使得模型能够在各种规模和类型的代码仓库中都表现出色。
## Skywork-SWE 登顶 32B 开源 SOTA
“Less artifact, more intelligence”(更少的人工约束,更多智能发挥)是团队开发软件工程自主代码智能体模型的核心理念。我们主张赋予 AI 更大自主权,由其决定工具使用与任务执行方式,而非人为预先设定规则流程。基于这一理念,最终选用目前最具自主性的开源 OpenHands 框架。
基于 Skywork-SWE 数据集的高质量智能体轨迹,昆仑万维团队微调得到 Skywork-SWE-32B 模型,该模型在 SWE-bench Verified 测评中取得优异成绩。截至目前,Skywork-SWE-32B 在 SWE-Bench 榜单中成为当前性能最强的 32B 开源代码智能体大模型,刷新 SWE-bench Verified 基准上同等规模模型的最佳成绩,充分展示了其工程实用价值:
1. **Skywork-SWE-32B 测评结果超越相同参数规模的模型。** Skywork-SWE-32B 基于开源 OpenHands 代码 Agent 框架,实现了 38.0% pass@1 的准确率,达到了 Qwen2.5-Coder-32B 系列模型在 OpenHands 代码框架下的最优水平。更为关键的是,实验结果进一步表明:随着训练数据规模的持续扩展,模型性能持续提升,充分验证了“数据规模扩展带来的性能增益”在软件工程任务中的有效性与适用性。
2. **应用测试时扩展技术之后,Skywork-SWE-32B 取得了最优性能。** 在引入测试时扩展技术(Test-Time Scaling, TTS)后,Skywork-SWE-32B (+ TTS) 的 pass@1 准确率进一步提升至 47.0%,刷新了 32B 参数规模以下开源模型的 SOTA。更值得关注的是,Skywork-SWE-32B 在与参数量高达 671B 的 DeepSeek-V3-0324 模型对比中仍展现出明显优势,领先 8.2 个百分点。
3. **Skywork-SWE-32B (+ TTS) 的表现接近甚至超越多数主流闭源大模型。** Skywork-SWE-32B (+ TTS) 的 pass@1 准确率显著超越了 GPT-4.1-mini(23.86%)、Claude 3.5 HaiKu(40.6%)和 OpenAI-o1-preview(41.3%),并且领先于 Claude v3.5(46.0%)。
### 案例展示:从 Issue 到修复的完整流程
开发者需要解决如下目标 Astropy 代码仓库中 #14309 代码合并请求:
**图:Astropy 仓库 Issue**
即可在 Skywork-SWE-32B 模型中输入上述 Astropy 仓库 Issue 和相应的代码仓库,模型即能精准定位问题源文件与具体缺陷,生成 patch 修复方案(如下图所示)。
**图:生成 patch 修复方案**
经过验证,Skywork-SWE-32B 通过全部测试样例,实现 GitHub 代码仓库从问题理解到解决的一站式代码修复功能。
**图:单元测试结果**
> **常见问题**:如果开发者想使用 Skywork-SWE-32B 模型,需要什么先决条件?
>
> **答案**:开发者需要具备基本的 Git 和 Docker 使用经验,熟悉 Python 环境配置。模型本身已开源在 HuggingFace,可以直接下载使用。建议使用支持长上下文处理的推理框架,以充分发挥模型在 SWE 任务上的优势。
## 持续探索更多 Agent 任务场景
过去半年多时间,昆仑万维在奖励模型、多模态、推理、视频生成等方向开源了一系列 SOTA 级别模型,如今又在 Agent(SWE 任务)方向再下一城。继5月天工超级智能体(Skywork Super Agents)面向全球发布后,今天我们又发布并开源了自主代码智能体模型 Skywork-SWE-32B 模型,这不仅是公司坚定开源策略的重要实践,更代表了我们对 Agent 在办公任务、SWE 任务场景中的重要探索。
通过 Skywork-SWE 数据集的构建,以及自主代码智能体模型 Skywork-SWE-32B 模型的发布,团队研究表明 高质量且可执行验证的数据是提升代码智能体模型性能的关键瓶颈,系统化的数据扩展策略将在推动开源模型性能突破中发挥关键作用。基于此,我们期望 Skywork-SWE-32B 的开源,能够助力社区在大语言模型驱动的软件工程研究中持续演进。
未来,Skywork-SWE-32B 模型将进一步拓展多编程语言支持以覆盖更广泛的开发场景,并探索融合运行时测试反馈的强化学习机制,为构建真正具备智能软件开发能力的大语言模型奠定坚实基础。同时,昆仑万维也将积极探索更多 Agent 任务场景。
> **小提示**:数据缩放定律(Scaling Law)在 SWE 任务上的验证具有重要意义。它表明,在软件工程领域,增加训练数据量同样可以带来模型性能的持续提升,这为后续研究提供了坚实的理论基础和方向指引。
综上所述,Skywork-SWE-32B 模型的开源是昆仑万维在 Agent 领域的重要探索,它不仅为开发者提供了强大的代码修复工具,也为社区提供了高质量的数据集和训练方法,期待未来在更多编程语言和任务场景中看到它的应用。
6月20日,昆仑万维正式发布软件工程(Software Engineering,SWE)自主代码智能体基座模型 Skywork-SWE,在开源 32B 模型规模下实现了业界领先的仓库级代码修复能力。昆仑万维团队通过构建超过 1 万个可验证的 GitHub 仓库任务实例,打造出目前最大规模的可验证 GitHub 仓库级代码修复数据集,并系统性地验证了大模型在软件工程任务上的 数据缩放定律(Scaling Law)。
## Skywork-SWE-32B 模型的核心突破
Skywork-SWE-32B 模型在 SWE-bench Verified 基准上取得了 38.0% pass@1 准确率,刷新了 Qwen2.5-Coder-32B 系列模型在 OpenHands 代码框架下的最佳成绩。进一步引入测试时扩展技术后,模型表现提升至 47.0% 的准确率,不仅超越了现有参数规模在 32B 以下的开源模型,也显著缩小了与闭源模型之间的性能差距。
> **小提示**:测试时扩展技术(Test-Time Scaling,TTS)是一种在推理阶段增加计算量以提升模型性能的方法,相当于给模型更多“思考时间”来生成更优的解决方案。
### 模型性能对比亮点
| 对比维度 | 性能表现 |
|---------|---------|
| 相同参数规模开源模型 | 38.0% pass@1,刷新 Qwen2.5-Coder-32B 系列最佳成绩 |
| 引入 TTS 后 | 47.0% pass@1,超越 32B 以下所有开源模型 |
| 与 671B 参数模型对比 | 领先 DeepSeek-V3-0324 达 8.2 个百分点 |
| 与闭源模型对比 | 超越 GPT-4.1-mini(23.86%)、Claude 3.5 HaiKu(40.6%)、OpenAI-o1-preview(41.3%) |
### 模型资源直通车
- **技术报告**:https://huggingface.co/Skywork/Skywork-SWE-32B/resolve/main/assets/Report.pdf
- **博客地址**:https://quixotic-sting-239.notion.site/eb17f379610040ceb54da5d5d24065bd
- **HuggingFace地址**:https://huggingface.co/Skywork/Skywork-SWE-32B
## 什么是 SWE 任务?为什么它如此重要?
2025年被广泛认为是智能体(Agent)模型的元年,其核心特征包括“超多轮交互”和“超长上下文处理”。在众多应用方向中,软件工程 SWE 任务正成为大语言模型智能体的关键应用场景之一。
**相比传统的代码生成任务(如代码编程题解答),SWE 任务更加贴近真实的软件开发流程,涵盖了从定位 BUG、修改源代码,到验证修复效果的完整闭环。** 这类任务通常源自 GitHub 仓库中的实际代码工程问题,具备高度的真实性、复杂性和挑战性,是评估智能体模型能力的重要基准。
SWE 任务的独特之处在于,它对模型提出了更高要求:不仅需要支持多轮交互和长上下文推理,还需具备处理跨文件依赖、调用工具链,以及在复杂环境中持续修复代码问题的能力。这些能力全面考验了智能体模型的工程实践水平与系统性思维能力。
> **常见问题**:SWE 任务和普通代码生成任务有什么区别?
>
> **答案**:普通代码生成任务通常只需要根据描述生成一段代码,而 SWE 任务需要模型理解整个仓库的代码结构,定位问题所在文件,修改源代码,并运行测试验证修复效果。这更像是一个“程序员”的完整工作流程,而不是简单的“代码填空”。
## 三阶段自动化流程:构建大规模、高质量 SWE 任务训练数据集
尽管当前市面上已有不少工作聚焦于 SWE 任务并收集了相关数据集,但当前的主流(训练)数据集仍存在三大核心问题:
1. **缺乏可执行环境与验证机制**:已有开源数据(如 SWE-bench-extra、SWE-Fixer)通常缺乏环境或单元测试来验证数据正确性,导致生成的修复难以验证。
2. **高质量训练数据稀缺**:尽管某些数据集规模较大(如 SWE-Dev、SWE-Gym),但缺乏经过严格验证的训练样本,公开可用的高质量数据极为有限,导致开源模型在 SWE 任务上长期落后于闭源模型。
3. **数据规模法则适用性不明确**:相较于自然语言领域中的任务,SWE 任务现有的公开训练数据体量较小,尚无法有效验证数据扩展是否能带来模型能力的持续增长。
为打破上述瓶颈,打造具备工程实用性的 SWE 代码智能体模型,昆仑万维团队首先在训练阶段自行构建了一套自动化、结构化、可复现的 SWE 数据收集与验证流程,共分为三个阶段、九个步骤(如下图所示)。最终团队构建出超 1 万条高质量任务实例、8 千条多轮交互的轨迹,为模型训练提供坚实基础。
**图:Skywork-SWE 完整数据收集与验证流程**
### 阶段A:数据采集与预筛选
**步骤A.1 GitHub 元数据抓取**:通过 GitHub API 抓取超过 15 万个开源仓库的元信息,优先保留高 Star 仓库。为防止数据泄漏,在排除 SWE-bench Verified(测试数据集)已包含的仓库后,最终获得 8,472 个有效仓库的元信息,为后续数据构建打下基础。
**步骤A.2 PR 收集与任务初筛**:从上述仓库中提取已合并且明确关联 Issue 的 Pull Requests(PRs),仅保留修改测试相关文件的 PRs,构建出初始的 146,568 个任务样本。
**步骤A.3 安装验证**:回滚到每个 PR 的起始版本,运行统一的安装脚本完成环境部署,对样本执行自动化安装验证,保留 23,389 个任务样本。
> **小提示**:数据泄漏是机器学习中的常见问题,指训练数据中包含测试数据,导致模型性能评估不准确。昆仑万维团队通过排除已包含在 SWE-bench Verified 中的仓库,有效避免了这一问题。
### 阶段B:基于执行的验证机制
**步骤B.1 统一命令生成**:定义统一的默认配置,涵盖环境初始化、依赖安装与测试执行,高效适配多样化开源项目。
**步骤B.2 Docker 环境构建**:基于默认配置,采用分层容器构建机制,为每个任务样本生成隔离的三个级别 Docker 镜像(基础镜像;仓库镜像;Issue 镜像)。
**步骤B.3 单元测试验证**:在镜像环境中对每个任务应用补丁并执行测试,保留全部测试通过的样本,共计 10,169 条,确保问题修复有效并构建高质量验证数据。
> **常见问题**:为什么需要阶段 B 的验证机制?
>
> **答案**:因为 SWE 任务涉及真实的代码修复,如果没有验证机制,模型生成的“修复”可能只是形式上正确,但实际无法通过测试。通过单元测试验证,可以确保每个训练样本的修复方案都是真正有效的,从而保证训练数据的质量。
### 阶段C:智能体轨迹生成
**步骤C.1 智能体轨迹生成**:基于开源的 OpenHands 代码智能体框架,选用代码能力突出的商用大模型(如 Claude、DeepSeek 等)作为智能体基座,对每个任务执行最多 100 轮交互,完整记录智能体在问题求解过程中的交互轨迹,覆盖从理解任务到输出修复方案的全流程。
**步骤C.2 Patch 级验证**:针对每条轨迹中生成的最终补丁,在运行环境镜像中进行严格的自动化测试。仅保留所有测试用例均通过的补丁及其对应轨迹,确保智能体行为严格对齐仓库级代码修复目标。
**步骤C.3 构建训练样本库**:累计收集 8,209 条高质量、长上下文、多轮交互的验证通过轨迹,构建结构化训练样本,用于 Skywork-SWE-32B 智能体模型的微调训练。
## Skywork-SWE:万级高质量可验证数据集,驱动智能体模型能力跃迁
在上述三个阶段过程中,团队实施了严格的数据筛选与构建流程。如下图所示,团队从最初超过 15 万条候选代码仓库元数据中,最终筛选出约 1 万条高质量实例,构建出当前规模最大、质量最高的可验证 SWE 任务(训练)数据集——Skywork-SWE。
**图:数据构建过程中各个阶段数据样本量变化示意**
Skywork-SWE 数据集在任务数量与代码覆盖广度方面,远超现有同类数据集(如 SWE-Gym Lite 与 SWE-bench Verified),为大模型提供了丰富、多样且贴近实际的软件工程任务样本,持续推动智能体模型的能力进化。此外,Skywork-SWE 数据集不仅涵盖如 Pydantic、SQLGlot、DVC 等主流开源项目,还包含大量中小型仓库,呈现出高度贴近真实开发生态的任务分布特征。这种贴近真实开发生态的数据构成,有助于提升模型在复杂多样场景下的问题解决能力。
**图:Skywork-SWE 数据集的 GitHub 仓库词云**
> **小提示**:数据集的多样性对于模型泛化能力至关重要。Skywork-SWE 数据集不仅包含大型知名项目,还包括大量中小型项目,这使得模型能够在各种规模和类型的代码仓库中都表现出色。
## Skywork-SWE 登顶 32B 开源 SOTA
“Less artifact, more intelligence”(更少的人工约束,更多智能发挥)是团队开发软件工程自主代码智能体模型的核心理念。我们主张赋予 AI 更大自主权,由其决定工具使用与任务执行方式,而非人为预先设定规则流程。基于这一理念,最终选用目前最具自主性的开源 OpenHands 框架。
基于 Skywork-SWE 数据集的高质量智能体轨迹,昆仑万维团队微调得到 Skywork-SWE-32B 模型,该模型在 SWE-bench Verified 测评中取得优异成绩。截至目前,Skywork-SWE-32B 在 SWE-Bench 榜单中成为当前性能最强的 32B 开源代码智能体大模型,刷新 SWE-bench Verified 基准上同等规模模型的最佳成绩,充分展示了其工程实用价值:
1. **Skywork-SWE-32B 测评结果超越相同参数规模的模型。** Skywork-SWE-32B 基于开源 OpenHands 代码 Agent 框架,实现了 38.0% pass@1 的准确率,达到了 Qwen2.5-Coder-32B 系列模型在 OpenHands 代码框架下的最优水平。更为关键的是,实验结果进一步表明:随着训练数据规模的持续扩展,模型性能持续提升,充分验证了“数据规模扩展带来的性能增益”在软件工程任务中的有效性与适用性。
2. **应用测试时扩展技术之后,Skywork-SWE-32B 取得了最优性能。** 在引入测试时扩展技术(Test-Time Scaling, TTS)后,Skywork-SWE-32B (+ TTS) 的 pass@1 准确率进一步提升至 47.0%,刷新了 32B 参数规模以下开源模型的 SOTA。更值得关注的是,Skywork-SWE-32B 在与参数量高达 671B 的 DeepSeek-V3-0324 模型对比中仍展现出明显优势,领先 8.2 个百分点。
3. **Skywork-SWE-32B (+ TTS) 的表现接近甚至超越多数主流闭源大模型。** Skywork-SWE-32B (+ TTS) 的 pass@1 准确率显著超越了 GPT-4.1-mini(23.86%)、Claude 3.5 HaiKu(40.6%)和 OpenAI-o1-preview(41.3%),并且领先于 Claude v3.5(46.0%)。
### 案例展示:从 Issue 到修复的完整流程
开发者需要解决如下目标 Astropy 代码仓库中 #14309 代码合并请求:
**图:Astropy 仓库 Issue**
即可在 Skywork-SWE-32B 模型中输入上述 Astropy 仓库 Issue 和相应的代码仓库,模型即能精准定位问题源文件与具体缺陷,生成 patch 修复方案(如下图所示)。
**图:生成 patch 修复方案**
经过验证,Skywork-SWE-32B 通过全部测试样例,实现 GitHub 代码仓库从问题理解到解决的一站式代码修复功能。
**图:单元测试结果**
> **常见问题**:如果开发者想使用 Skywork-SWE-32B 模型,需要什么先决条件?
>
> **答案**:开发者需要具备基本的 Git 和 Docker 使用经验,熟悉 Python 环境配置。模型本身已开源在 HuggingFace,可以直接下载使用。建议使用支持长上下文处理的推理框架,以充分发挥模型在 SWE 任务上的优势。
## 持续探索更多 Agent 任务场景
过去半年多时间,昆仑万维在奖励模型、多模态、推理、视频生成等方向开源了一系列 SOTA 级别模型,如今又在 Agent(SWE 任务)方向再下一城。继5月天工超级智能体(Skywork Super Agents)面向全球发布后,今天我们又发布并开源了自主代码智能体模型 Skywork-SWE-32B 模型,这不仅是公司坚定开源策略的重要实践,更代表了我们对 Agent 在办公任务、SWE 任务场景中的重要探索。
通过 Skywork-SWE 数据集的构建,以及自主代码智能体模型 Skywork-SWE-32B 模型的发布,团队研究表明 高质量且可执行验证的数据是提升代码智能体模型性能的关键瓶颈,系统化的数据扩展策略将在推动开源模型性能突破中发挥关键作用。基于此,我们期望 Skywork-SWE-32B 的开源,能够助力社区在大语言模型驱动的软件工程研究中持续演进。
未来,Skywork-SWE-32B 模型将进一步拓展多编程语言支持以覆盖更广泛的开发场景,并探索融合运行时测试反馈的强化学习机制,为构建真正具备智能软件开发能力的大语言模型奠定坚实基础。同时,昆仑万维也将积极探索更多 Agent 任务场景。
> **小提示**:数据缩放定律(Scaling Law)在 SWE 任务上的验证具有重要意义。它表明,在软件工程领域,增加训练数据量同样可以带来模型性能的持续提升,这为后续研究提供了坚实的理论基础和方向指引。
综上所述,Skywork-SWE-32B 模型的开源是昆仑万维在 Agent 领域的重要探索,它不仅为开发者提供了强大的代码修复工具,也为社区提供了高质量的数据集和训练方法,期待未来在更多编程语言和任务场景中看到它的应用。来源:https://www.53ai.com/news/OpenSourceLLM/2025062004162.html
相关热点
继续查看同栏目近期热点。
延伸阅读
补充最近整理过的热点入口。
