SWE-Fuse: Empowering Software Agents via Issue-free Trajectory Learning and Entropy-aware RLVR Training

本文提出了 SWE-Fuse 框架,通过融合无问题轨迹学习与熵感知 RLVR 训练,有效解决了真实软件问题中描述与解决方案不匹配导致的噪声干扰,在 SWE-bench Verified 基准测试中显著提升了大语言模型智能体的代码修复成功率。

Xin-Cheng Wen, Binbin Chen, Haoxuan Lan, Hang Yu, Peng Di, Cuiyun Gao

发布于 Tue, 10 Ma
📖 1 分钟阅读☕ 轻松阅读

Each language version is independently generated for its own context, not a direct translation.

这篇论文介绍了一个名为 SWE-Fuse 的新系统,它的目标是教会人工智能(AI)像人类程序员一样去修复软件中的 Bug。

为了让你更容易理解,我们可以把修复软件 Bug想象成修理一辆坏掉的汽车,而AI 模型就是那个正在学习修车的学徒

1. 核心问题:学徒被“错误的维修手册”带偏了

在传统的训练方法中,我们给 AI 看很多“问题描述”和“修复方案”的配对数据(就像给学徒看维修手册)。

  • 现实困境:现实世界里的“维修手册”(GitHub 上的问题描述)经常写得乱七八糟,甚至和真正的故障完全不搭界。
    • 比喻:这就好比车主说“我的车喇叭不响了”,但维修手册上写的却是“请更换发动机皮带”。如果学徒死板地照着手册修,不仅修不好喇叭,还可能把发动机搞坏。
  • 后果:AI 被这些不准确的信息误导,学不到真正的修车逻辑,反而学会了“猜谜”或者走捷径(比如直接去翻维修记录找答案,而不是真正思考怎么修)。

2. SWE-Fuse 的解决方案:两个“独门秘籍”

为了解决这个问题,作者给 AI 设计了两个关键的学习模块:

秘籍一:不看说明书,只靠“试错”来学习(Issue-free Trajectory Learning)

  • 做法:在训练初期,作者故意不给 AI 看那些乱七八糟的“问题描述”。他们只给 AI 看“车坏了”这个事实,以及“测试用例”(比如:按喇叭没声音,按喇叭应该有声音)。
  • 比喻:这就像让学徒在没有说明书的情况下,通过反复按喇叭、听声音、检查线路,自己摸索出“哦,原来是因为线路断了”的推理过程。
  • 好处:这样 AI 学到的不是死记硬背的“问题 - 答案”配对,而是一步步排查故障的逻辑。它学会了如何像侦探一样,通过观察现象(测试失败)来推导原因,而不是被错误的文字描述带偏。

秘籍二:聪明的“奖惩机制”(Entropy-aware RLVR)

  • 做法:当 AI 开始尝试自己修车时,作者用了一种特殊的强化学习方法(RLVR)。这个方法会根据 AI 的“自信程度”(熵)来调整奖惩的严格程度。
  • 比喻
    • 当 AI 很迷茫(高熵)时:就像学徒第一次修车,很不确定该拧哪颗螺丝。这时候,教练(训练系统)会放宽要求,鼓励它大胆尝试,哪怕试错了也没关系,只要它在探索。
    • 当 AI 很自信(低熵)时:就像学徒已经很有经验了,这时候教练会严格要求,如果它乱拧螺丝,惩罚会很重,防止它因为太自信而犯大错。
  • 好处:这种动态调整让 AI 在“大胆探索”和“稳健操作”之间找到了完美的平衡,学得更稳、更快。

3. 成果:小模型也能干大事

  • 数据:作者收集了 1.4 万个高质量的“修车过程”数据(包括有说明书的和没说明书的)。
  • 成绩
    • 在著名的软件修复测试(SWE-bench)中,SWE-Fuse 训练的 32B 模型(相当于一个中等体型的 AI)解决了 60.2% 的问题。
    • 如果加上“测试时扩展”(TTS,相当于让 AI 多思考几次再动手),解决率甚至达到了 65.2%
  • 对比:这个成绩不仅超过了其他同体量的开源模型,甚至能和一些更庞大、更昂贵的闭源商业模型(如 GPT-5, Claude 等)掰手腕。

总结

SWE-Fuse 的核心思想就是:别光听那些可能写错了的“问题描述”,要教 AI 学会像真正的工程师一样,通过“动手试错”和“逻辑推理”去解决问题。

它就像是一个聪明的教练,不仅教徒弟怎么修车,还教徒弟如何思考,甚至故意把“错误的说明书”拿掉,逼着徒弟去观察和推理,最终培养出了一个能独立解决复杂软件问题的 AI 专家。