由北京大学、字节跳动 SEED 团队与香港大学联合研发的 SWE-Swiss-32B 正式亮相。
该模型在 SWE-bench Verified 基准测试中取得 60.2% 的通过率,不仅在同规模开源模型中树立新标杆,更与部分更大规模的闭源系统处于同一性能区间。
其背后是一套系统性的训练策略——SWE-Swiss 配方:通过多任务监督微调 + 强化学习优化,让模型掌握软件问题解决的三大核心能力:定位、修复、测试验证。

更重要的是,团队将完整模型权重与训练数据集全部开源,为社区提供了一个可复现、可扩展的高质量代码智能范本。
核心目标:打造真正会“修 Bug”的 AI 模型
当前许多 AI 编程助手擅长生成代码片段,但在面对真实 GitHub 项目中的复杂 Bug 时,往往束手无策。
SWE-Swiss 的目标不是写代码,而是完整模拟开发者解决实际问题的流程:
- 定位:找出需要修改的文件
- 修复:生成能通过测试的补丁
- 验证:确保修复有效且不引入新问题
这三步构成了一个闭环的软件工程工作流。SWE-Swiss 的训练方法,正是围绕这三个能力展开的“结构化课程设计”。

SWE-Swiss 配方:三技能课程 + 两阶段训练
整个训练分为两个清晰阶段:
- 第一阶段:多任务监督微调(SFT)
同时训练定位、修复和单元测试三大能力,建立通用理解 - 第二阶段:强化学习(RL)优化修复能力
在真实测试环境中获取反馈,持续提升最关键任务的表现
这种“先广度、后深度”的策略,使模型既能全面理解问题,又能精准执行关键操作。
第一阶段:高质量 SFT 数据构建
所有能力的基础,是高质量、经过验证的训练数据。SWE-Swiss 采用“验证拒绝采样”策略:先生成大量候选样本,再通过自动化测试筛选出真正成功的案例。
1. 定位任务:精准找到要改的文件
- 目标:根据问题描述,预测需修改的文件列表
- 数据来源:SWE-bench 和 SWE-Gym-Raw 中的真实 issue 与对应 commit
- 生成方式:用 DeepSeek-R1-0528 根据问题和仓库结构预测文件
- 筛选标准:
- 预测文件数 ≤ 5
- 召回率 = 1.0(所有真实修改文件都被覆盖)
- 结果:构建出 5,302 个高质量定位样本
这确保模型学会“聚焦”,避免盲目扫描整个项目。
2. 修复任务:生成可通过测试的补丁
- 目标:基于问题描述和目标文件,生成正确的代码补丁
- 环境支持:使用 SWE-gym 和 SWE-smith 提供的 Docker 环境进行安全执行
- 输入增强:除真实文件外,还加入干扰文件(LLM 错误预测的文件),提升难度
- 筛选标准:补丁必须在真实测试套件中完全通过
- 结果:获得 3,935 个成功修复样本
每一条数据都是“已被验证的有效解决方案”,而非猜测。
3. 单元测试生成:为修复提供验证能力
- 目标:根据问题描述,生成能重现 Bug 的新测试用例
- 筛选标准:生成的测试必须满足:
- 对正确补丁 → 通过
- 对错误补丁 → 失败
- 行为与原始测试一致
- 结果:构建 1,017 个高质量测试生成样本
这赋予模型“自我验证”能力,是实现可靠自动化修复的关键一环。
🚀 第二阶段:强化学习优化修复能力
在完成多任务 SFT 后,模型已具备基础能力。接下来,团队聚焦最关键的“修复”任务,引入基于真实测试反馈的强化学习。
训练机制
- 模型:以 Qwen2.5-32B-Instruct 为基座,SFT 后命名为 SWE-Swiss-SFT
- 算法:采用 GRPO(Group Relative Policy Optimization)
- 奖励函数:二元信号
- 关键技术:
- 无 KL 损失
- 更高剪裁阈值
- 动态采样
- 引入 DAPO 的令牌级策略梯度损失
课程式训练策略(受 POLARIS 启发)
为避免模型在简单任务上过拟合,采用两阶段 RL 训练:
- 第一阶段(200 步):全量数据训练,建立广泛能力
- 第二阶段(90 步):移除模型已掌握(准确率 >90%)的问题,集中攻坚难点
📈 性能表现:从 36.0% 到 60.2%
| 阶段 | SWE-bench Verified 分数 | 说明 |
|---|---|---|
| 基线(Qwen2.5-32B-Instruct) | ~20%(估计) | 未经专门训练 |
| SFT 后(SWE-Swiss-SFT) | 36.0% | 多任务学习已显著提升 |
| RL 后(单补丁) | 45.0% | 超越 DeepSeek-R1-0528(43.2%) |
| 多补丁 + 测试时扩展 | 60.2% | 达到当前开源模型领先水平 |
注:评估流程基于 Agentless 框架,确保公平可比。
这一提升充分证明:结构化训练 + 真实反馈优化 是通往高性能代码智能的关键路径。
测试时扩展:增强的自一致性机制
传统自一致性依赖“精确匹配”进行多数投票,在代码生成中效果有限——因为语义相同的补丁可能有多种写法(变量名不同、缩进差异等)。
为此,SWE-Swiss 提出 增强的自一致性(Enhanced Self-Consistency):
综合评分 = 精确匹配分 + 相似度代表分
- 精确匹配分(Score_EM)
候选补丁在多次生成中出现的频率 - 相似度增强分(Score_Sim)
- 使用编辑距离计算所有生成补丁间的相似度
- 对每个候选,取 top-k(k = 总数一半)最相似邻居
- 计算平均相似度,反映其在“合理解簇”中的代表性
最终选择综合得分最高的补丁作为输出。
这种方法既保留高频模式,又捕捉语义等价的变体,显著提升选择准确性。
多补丁生成与过滤流程
为提高成功率,系统支持生成多个候选补丁,并通过两轮过滤筛选最优解:
- 第一轮:回归测试过滤
所有候选补丁运行项目原有测试套件,淘汰失败项 - 第二轮:生成测试验证
- 使用 LLM 生成新的“重现测试”(reproduction test)
- 先验证该测试能否正确重现原问题
- 再用其验证候选补丁
- 最终选择:使用增强自一致性选出最佳补丁
这套机制显著提升了修复成功率,是 60.2% 高分的关键支撑。
🌐 开源计划
团队宣布将开源以下资源:
- ✅ SWE-Swiss-32B 模型权重
- ✅ 完整的训练数据集(定位、修复、测试生成)
- ✅ 训练与推理代码
项目地址将在近期公开,欢迎关注后续更新。
此举极大降低了复现门槛,有助于推动 AI for Code 领域的可验证研究。















