伯克利最强代码Agent屠榜SWE-Bench!用Scaling RL打造,配方全公开

  新智元报道

  编辑:YHluck

  【新智元导读】新晋 AI 编程冠军 DeepSWE 来了!仅通过纯强化学习拿下基准测试 59% 的准确率,凭啥?7 大算法细节首次全公开。

  AI 编程领域竞争激烈,但多被闭源模型主导。

  如今,一款开源软件工程模型 DeepSWE 横空出世,以 59% 的准确率大幅刷新了 SOTA。

  DeepSWE 基于 Qwen3-32B 打造,并且只使用强了化学习进行训练。

  地址:https://github.com/agentica-project/rllm

  模型:https://huggingface.co/agentica-org/DeepSWE-Preview

  Agentica 的项目负责人 Michael Luo 感叹道,「那个过度定价、黑箱式的编码助手时代要终结了!」

  另外一个好消息是,Agentica 团队也慷慨解囊,开源了所有内容。

  除了模型,还包括训练代码(rLLM)、数据集(R2EGym)以及实现完全可复现的训练配方。

  训练方法

  DeepSWE 最大亮点是,相较于之前许多依赖「老师模型」(如 GPT-4)进行模仿学习(SFT 或蒸馏)的路径不同。

  它仅用强化学习(RL)就能从零开始将一个基础模型训练成性能亮眼的智能体。

  据官方介绍,DeepSWE 是在模块化 RL 后训练框架 rLLM 上训练的。

  rLLM 有一个好处,说白了,就是让你自己动手攒一个用强化学习训练出来的 AI 小能手,从头到尾都不再那么费劲了,直接拿去干活儿就行。

  使用 R2E-Gym 进行可扩展数据集管理

  训练环境方面,DeepSWE 是在 R2E-Gym 训练环境中(一个现有的 Gym 环境)训练,用于高质量可执行 SWE 环境的可扩展管理。

  状态与动作

  R2E-Gym 定义了一组四个工具作为动作空间的一部分:

  1. 执行 Bash:输出 LLM 生成的 bash 命令的 stdout 和 stderr。

  2. 搜索:搜索并返回目录或单个文件中所有符合 LLM 定义的查询的结果。

  3. 文件编辑器:允许查看、创建、替换字符串、插入以及撤销对特定文件的编辑。

  4. 完成/提交:LLM 已决定解决了该拉取请求,这将终止轨迹生成。

  奖励模型

  奖励函数采用了一种稀疏的结果奖励模型(ORM)。

  研究人员惊喜的发现,仅仅通过简单的「成功/失败」奖励信号,DeepSWE 自发地学会高级程序员才具备的复杂行为,例如:

  • 主动思考边缘案例和回归测试。

  • 根据任务的复杂程度,自适应地调整「思考」的深度

  通过扩展 RL 训练 SWE 智能体

  算法方面,DeepSWE 仅仅使用了强化学习来直接训练,没有使用蒸馏方法。

  更值得关注的是,研发人员使用了独家改良的GRPO++算法,这个算法在之前的基础上做了增强。

  为了提升模型训练的稳定性和性能的提升,研发人员整合 7 个算法:

  1. Clip High (DAPO):提高 GRPO/PPO 替代损失的上限可以鼓励探索并稳定熵。

  2. 无 KL 损失(DAPO):消除 KL 损失可以防止 LLM 受限于原始 SFT 模型的信任区域。

  3. 无奖励标准差(Dr.GRPO):去除奖励标准差可消除 GRPO 损失中的难度偏差,从而更好地区分难易问题。

  4. 长度归一化(Dr.GRPO):将替代损失除以最大上下文长度,可以消除 GRPO 中存在的长度偏差,这种偏差会增加错误响应的长度。

  5. 一法(Loop/RLOO):在优势估计中移除一个样本,可以在不引入偏差的情况下降低策略梯度的方差。

  6. 紧凑过滤:受 DAPO 启发,对达到最大上下文长度、生成过程中超时(20 分钟)或达到最大步数的轨迹进行损失屏蔽。

  7. 无熵损失:熵损失会引入更高的不稳定性,最终导致熵呈指数增长,从而使训练崩溃。如果基础模型的令牌级熵在 0.3 到 1 之间,则不需要熵损失。

  针对其中一个算法「紧凑过滤」,研发人员强调了其对模型训练优势:

  好处1:防止或延缓训练过程中的奖励崩溃(上图)

  好处2:减少了每一步的过度思考,并鼓励跨步骤的长篇推理(下图)

  挑战

  当然,在训练过程中也遇到了挑战——扩展 SWE-Bench 环境。

  研发人员指出,你可以想象下,在最后的训练过程中,需要同时启动好几百个 Docker 容器。

  因为跑得太多、太猛,一瞬间搞出了几千个,直接把 Docker 给整崩溃了。

  为了解决这个问题,研发人员将 Kubernetes 支持集成到了 R2E-Gym 环境中,使编排器能够在节点池中调度容器。

  研发人员,给每个干活的服务器都配了顶配装备

  差不多 200 核的 CPU,还有 6T 多的超高速固态硬盘。

  为了让程序跑得飞快,研究员提前把所有要用的软件(镜像)都下载好存到本地硬盘里了。

  这样一来,每次启动程序就跟打开桌面软件一样秒开,根本不用再吭哧吭哧地去网上下载了。

  研究人员指出,该集群可以扩展到超过 1000 个 CPU 核心,并依赖 Kubernetes 集群自动缩放器来自动添加或移除节点。

  当 Pod 在短时间内无法调度时,自动缩放器会配置额外的工作节点;相反,它会移除那些大约二十分钟内利用率较低的节点。

  这种弹性设置能够可靠地收集数百万条轨迹,同时保持计算成本与负载成比例。

  评估策略(TTS)

  除了强大的模型本身,DeepSWE 还采用了「测试时扩展 (TTS)」这一评估策略。

  该策略通过「多方案生成 + 智能验证」的方式,将性能推向了新的高度。

  为了提升其模型的 Pass@1 性能,研发人员在「测试时」想到了两种方法:

  方法一:扩展上下文长度(见上图):

  将最大上下文从 16K 扩展到 128K 个标记,性能有所提升。在超过 32K 时收益约为2%,达到 42.2% 的 Pass@1。

  方法二:扩展代理部署(见下图):

  使用最佳选择策略为每个问题生成了多个代理部署。采用结合基于执行和免执行方法的混合验证器,以选择最佳的代理轨迹。

  两种方法确实带来了性能的提升,在 SWE-Bench Verified 上达到 59%,在开放权重的 SWE-Agent 中实现新的 SOTA。

  作者简介

  Michael Luo

  Michael Luo,加州大学伯克利分校电气工程与计算机科学系博士生,研究兴趣聚焦人工智能和系统领域。

  硕士和本科研究主要集中在强化学习(RL)的实际问题和应用,包括自然语言处理(NLP)、数据库查询优化以及视频流。

  Sijun Tan

  Sijun Tan,目前是加州大学伯克利分校计算机科学系在校三年级的博士生,本科毕业于弗吉尼亚大学,获得了计算机科学和数学双学士学位。

  研究重点是 LLM 后训练和代理 AI。曾在 Facebook 人工智能研究(FAIR)实习,并在蚂蚁集团担任过高级算法工程师。

  参考资料:

  https://pretty-radio-b75.notion.site/DeepSWE-Training-a-Fully-Open-sourced-State-of-the-Art-Coding-Agent-by-Scaling-RL-22281902c1468193aabbe9a8c59bbe33 https://x.com/michaelzluo/status/1940504105686126748

  https://x.com/hardmaru/status/1940592814884376919

  https://pretty-radio-b75.notion.site/rLLM-A-Framework-for-Post-Training-Language-Agents-21b81902c146819db63cd98a54ba5f31