新智元报道
编辑: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)实习,并在蚂蚁集团担任过高级算法工程师。
参考资料: