北大、字节跳动联手发布SWE-Swiss:一把修复代码Bug的「瑞士军刀」,完整配方直指开源SOTA

AITNT-国内领先的一站式人工智能新闻资讯网站
# 热门搜索 #
北大、字节跳动联手发布SWE-Swiss:一把修复代码Bug的「瑞士军刀」,完整配方直指开源SOTA
5504点击    2025-08-08 10:43

北大、字节跳动联手发布SWE-Swiss:一把修复代码Bug的「瑞士军刀」,完整配方直指开源SOTA


图 1: SWE-bench Verified 上的性能与模型尺寸对比。该研究的 32B 模型 SWE-Swiss,取得了 60.2% 的顶级分数,与更大的模型如 Kimi-Dev, DeepSeek-R1-0528 处于同一梯队。这证明了该研究的训练配方能让一个小得多的模型达到同样的 SOTA 性能级别,凸显了其卓越的效率。


近日,一项由北京大学、字节跳动 Seed 团队及香港大学联合进行的研究,提出了一种名为「SWE-Swiss」的完整「配方」,旨在高效训练用于解决软件工程问题的 AI 模型。研究团队推出的 32B 参数模型 SWE-Swiss-32B,在权威基准 SWE-bench Verified 上取得了 60.2% 的准确率,在同尺寸级别中达到了新的 SOTA。该工作证明,通过精巧的方法论设计,中等规模的模型完全有能力实现顶级性能,为 AI 在软件工程领域的应用提供了新的思路。为促进社区发展,该研究的模型、数据集将全部开源。


北大、字节跳动联手发布SWE-Swiss:一把修复代码Bug的「瑞士军刀」,完整配方直指开源SOTA


  • GitHub 地址: https://github.com/zhenyuhe00/SWE-Swiss


  • Hugging Face模型和数据: https://huggingface.co/SWE-Swiss


引言:软件工程 AI 的挑战与机遇


自动化解决真实世界的软件问题,是大型语言模型(LLM)面临的一项艰巨挑战。相较于纯粹的代码生成,这项任务要求模型具备理解复杂上下文、定位问题、生成修复并进行验证的综合能力。现有框架(如 Agentless)已证明,将此复杂任务分解为结构化工作流是一条可行的路径。然而,如何高效地训练一个模型以精通所有环节,是当前研究的核心问题。


本项工作提出的 SWE-Swiss 配方,正是为了解决这一问题。其核心原则是,通过对软件工程中的核心能力进行显式建模和训练,来构建一个功能强大且高效的问题解决模型。


方法概览:结构化的「SWE-Swiss 配方」


北大、字节跳动联手发布SWE-Swiss:一把修复代码Bug的「瑞士军刀」,完整配方直指开源SOTA


图 2: 由三个核心能力驱动的 LLM 补丁生成流程图示。模型首先利用问题描述和代码库结构进行代码定位和测试生成,随后修复模块利用定位和检索到的文件生成补丁,最后所有生成的测试和已有测试被用来过滤和验证最终的补丁。


SWE-Swiss 配方将问题解决流程解构为三项核心技能:


  • 代码定位 (Localization): 准确识别需要修改的文件。


  • 代码修复 (Repair): 生成能解决问题的正确代码补丁。


  • 单元测试生成 (Unit Test Generation): 创建单元测试以验证修复的有效性。


为确保训练数据的质量,研究团队采用验证性拒绝采样的来构建数据集。该过程首先生成大量候选数据,随后通过严格的、基于测试的自动化验证流程进行筛选,只保留被成功验证的样本用于模型微调


两阶段训练方法


SWE-Swiss 的训练分为两个主要阶段:


  • 第一阶段:通过多任务 SFT 构建基础能力


  • 此阶段将上述三种技能共 10,254 个高质量样本混合,对 Qwen2.5-32B 模型进行监督微调。这使得模型能够对整个问题解决流程建立全面的基础理解。完成此阶段后,模型在未进行测试时扩展的情况下,取得 36.0% 的基准性能。


  • 第二阶段:通过两阶段 RL 精通核心技能


  • 在 SFT 模型的基础上,此阶段专注于通过强化学习提升最关键的「修复」能力。受 POLARIS 的启发,团队设计了


两阶段 RL 课程:首先,模型在完整数据集上训练 200 步以建立广泛能力;随后,通过基于性能的剪枝,移除模型已掌握(准确率 > 90%)的简单样本,让模型在接下来的 90 步训练中专注于更具挑战性的难题。


这一阶段效果显著,在单补丁生成模式下,模型性能从 36.0% 跃升至 45.0%


北大、字节跳动联手发布SWE-Swiss:一把修复代码Bug的「瑞士军刀」,完整配方直指开源SOTA


图 3: 两阶段强化学习过程中的性能提升曲线。第一阶段(0-200 步)显示了在完整数据集上训练的稳定提升。第二阶段(200 步之后)则是在过滤后更具挑战性的数据集上继续训练,带来了进一步的性能增益。


测试时扩展


在评估阶段,类似 Agentless 和 Agentless Mini,SWE-Swiss 采用多补丁生成与过滤的策略。在自我一致性 (self-consistency) 的基础上,团队提出了一种「增强自我一致性 (Enhanced Self-consistency)」的最终选择方法。


北大、字节跳动联手发布SWE-Swiss:一把修复代码Bug的「瑞士军刀」,完整配方直指开源SOTA


北大、字节跳动联手发布SWE-Swiss:一把修复代码Bug的「瑞士军刀」,完整配方直指开源SOTA


图 4: SWE-Swiss-32B 的测试时扩展性能,增强自我一致性在 120 个补丁时达到了 60.2% 的准确率。


结论与开源


本项研究工作的核心贡献在于提出并验证了一套完整的、高效的 SWE-Swiss「配方」。实验证明,该配方能够使一个 32B 的中等规模模型和更大的模型相媲美。从 SFT 后的 36.0%,到 RL 后的 45.0%,再到结合测试时扩展和增强自洽性的最终 60.2%,这一系列的性能提升清晰地展示了配方中每一个环节的价值,为业界提供了一条通过优化大模型软件工程能力的有效路径。


该团队将开源 SWE-Swiss-32B 模型、全部训练数据,以期为社区的后续研究提供支持。


文章来自于微信公众号“机器之心”。


关键词: AI , 模型训练 , SWE-Swiss , AI修bug
AITNT-国内领先的一站式人工智能新闻资讯网站
AITNT资源拓展
根据文章内容,系统为您匹配了更有价值的资源信息。内容由AI生成,仅供参考
1
AI工作流

【开源免费】字节工作流产品扣子两大核心业务:Coze Studio(扣子开发平台)和 Coze Loop(扣子罗盘)全面开源,而且采用的是 Apache 2.0 许可证,支持商用!

项目地址:https://github.com/coze-dev/coze-studio


【开源免费】n8n是一个可以自定义工作流的AI项目,它提供了200个工作节点来帮助用户实现工作流的编排。

项目地址:https://github.com/n8n-io/n8n

在线使用:https://n8n.io/(付费


【开源免费】DB-GPT是一个AI原生数据应用开发框架,它提供开发多模型管理(SMMF)、Text2SQL效果优化、RAG框架以及优化、Multi-Agents框架协作、AWEL(智能体工作流编排)等多种技术能力,让围绕数据库构建大模型应用更简单、更方便。

项目地址:https://github.com/eosphoros-ai/DB-GPT?tab=readme-ov-file



【开源免费】VectorVein是一个不需要任何编程基础,任何人都能用的AI工作流编辑工具。你可以将复杂的工作分解成多个步骤,并通过VectorVein固定并让AI依次完成。VectorVein是字节coze的平替产品。

项目地址:https://github.com/AndersonBY/vector-vein?tab=readme-ov-file

在线使用:https://vectorvein.ai/付费

2
智能体

【开源免费】AutoGPT是一个允许用户创建和运行智能体的(AI Agents)项目。用户创建的智能体能够自动执行各种任务,从而让AI有步骤的去解决实际问题。

项目地址:https://github.com/Significant-Gravitas/AutoGPT


【开源免费】MetaGPT是一个“软件开发公司”的智能体项目,只需要输入一句话的老板需求,MetaGPT即可输出用户故事 / 竞品分析 / 需求 / 数据结构 / APIs / 文件等软件开发的相关内容。MetaGPT内置了各种AI角色,包括产品经理 / 架构师 / 项目经理 / 工程师,MetaGPT提供了一个精心调配的软件公司研发全过程的SOP。

项目地址:https://github.com/geekan/MetaGPT/blob/main/docs/README_CN.md

3
微调

【开源免费】XTuner 是一个高效、灵活、全能的轻量化大模型微调工具库。它帮助开发者提供一个简单易用的平台,可以对大语言模型(LLM)和多模态图文模型(VLM)进行预训练和轻量级微调。XTuner 支持多种微调算法,如 QLoRA、LoRA 和全量参数微调。

项目地址:https://github.com/InternLM/xtuner