当前位置: 首页 > news >正文

RL 大模型逆袭!搞定真实软件工程任务,成功率从 20% 飙到 39%,无需教师模型蒸馏

当前,把强化学习(RL)用在大型语言模型(LLM)上的研究大多还停在“单回合”任务——比如做一道数学题或一次性生成一段代码。这类任务虽然也能被包装成多回合的马尔可夫决策过程,但本质上环境几乎不给任何中间反馈,属于最“退化”的多轮交互。然而,像软件工程(SWE)这样的真实场景,需要与“有状态”的环境进行丰富的多轮交互:每执行一步,环境都会给出复杂且信息量不小的回应。为填补这一空白,我们展示了 RL 在这一更具普适性的设定里的成功落地。基于改进的 Decoupled Advantage Policy Optimization(DAPO)算法,我们以 Qwen2.5-72B-Instruct 为底座,训练出一款专解真实软件工程任务的智能体。在 SWE-bench Verified 基准上,该方法把 agent 的成功率从 20%(拒绝式微调基线)提升到 39%,全程没用任何“老师模型”蒸馏。在 SWE-rebench 上,我们的 agent 与 DeepSeek-V3-0324、Qwen3-235B-A22B 等领先开源模型打成平手甚至反超,且脚手架完全一致,为基于开源模型打造更强、真正可落地的自主智能体提供了可行路径。

论文标题: "Training Long-Context, Multi-Turn Software Engineering Agents with Reinforcement Learning"
作者: "Alexander Golubev, Maria Trofimova, Sergei Polezhaev, et al."
会议/期刊: "arXiv preprint arXiv:2508.03501"
发表年份: 2025
原文链接: "https://arxiv.org/pdf/2508.03501v1"
代码链接: "未提供"
关键词: ["强化学习", "软件工程智能体", "长上下文处理", "多轮交互", "DAPO算法"]
}"

欢迎大家关注我的公众号:大模型论文研习社
往期回顾:大模型也会 “脑补” 了!Mirage 框架解锁多模态推理新范式,无需生成像素图性能还暴涨

核心要点:本文提出基于改进DAPO算法的两阶段强化学习框架,在无教师模型的情况下,将Qwen2.5-72B-Instruct训练为长上下文多轮软件工程智能体,SWE-BENCH VERIFIED成功率从20%提升至39%,性能媲美DeepSeek-V3-0324等顶级开源模型。

研究背景:软件工程智能体的三大痛点

当前AI编程助手面临着"三重困境":

  • 教师模型依赖:SWE-Fixer等主流方法需用更强模型生成演示数据,导致"强者愈强"的垄断局面
  • 单轮交互局限:传统RL应用多聚焦数学推理等单轮任务,如同"蒙眼射箭"(图2上),无法应对软件工程的多步骤调试过程
  • 长上下文挑战:代码库动辄数十万token,现有模型难以维持多轮交互中的上下文一致性

图2:单轮bandit任务与多轮POMDP任务的结构差异

以Django框架的bug修复为例,开发者需要:

  1. 通过grep定位相关代码
  2. 分析测试失败原因
  3. 编辑文件并验证修复
  4. 提交最终补丁

这个过程涉及10+轮交互50k+上下文,传统单轮RL如同"一次性提交所有代码",显然不现实。

方法总览:两阶段RL训练流水线

研究者设计了"拒绝微调+强化学习"的两阶段训练框架,像"驾校培训"一样循序渐进:

阶段一:拒绝微调(RFT)—— 学会规范操作

就像学开车先熟悉方向盘,RFT阶段通过:

  1. 运行初始模型10次生成7249个SWE任务轨迹
  2. 仅保留测试通过的交互序列(绿色轨迹,图3)
  3. 屏蔽格式错误的agent响应,聚焦有效动作

图3:RFT阶段的交互轨迹示例

这个阶段解决了"环境交互语法"问题,使模型学会使用edit命令修改文件、grep搜索代码等基础操作,成功率从11.4%提升至20%(表1)。

阶段二:多轮RL优化—— 掌握复杂决策

基于改进DAPO算法的强化学习阶段,如同"驾校路考",重点训练三大能力:

  • 长上下文管理:通过YaRN位置编码扩展至131k上下文窗口
  • 环境反馈利用:解析编译器错误、测试结果等环境信号(图2下)
  • 任务难度适配:动态过滤已解决/无法解决的任务,聚焦"跳一跳能够到"的中等难度问题

图2:软件工程任务的POMDP特性

关键结论:三项突破性发现

  1. 无教师模型的自主提升:仅用模型自生成轨迹,无需外部演示数据,性能超越SWE-Fixer等依赖教师模型的方法(表2)

  2. 长上下文训练有效性:131k上下文窗口使模型能处理完整代码库,Pass@10达58.4%(表1),表明正确解常出现在候选集中

  3. 两阶段训练的必要性:RFT阶段提升环境交互规范性,RL阶段优化任务策略,两者缺一不可(图1)

图1:RL训练过程中的性能变化曲线

深度拆解:DAPO算法的四大改进

1. 非对称剪辑范围:防止策略崩溃

传统PPO使用对称剪辑范围[1-ε, 1+ε],容易导致"策略坍缩"。DAPO采用[0.2, 0.3]的非对称范围(表3),像"松紧适度的方向盘",既限制激进更新,又允许有益探索。

2. 动态轨迹过滤:聚焦有效学习

训练中自动丢弃优势值为0的轨迹,如同"只保留错题本",使计算资源集中在有价值的样本上。实验显示这能减少30%的无效迭代。

3. 长度惩罚机制:控制交互效率

对超过阈值的轨迹施加线性惩罚:

R_length(τ) = (L_thr - |τ|) / (T_max - L_thr)  当|τ| ≥ L_thr

避免智能体陷入"无限调试"循环,平均交互步数稳定在35步左右(图4)。

4. 两阶段课程学习

训练阶段任务数量批大小剪辑范围上下文长度
阶段一7249128[0.2, 0.3]65k
阶段二2028256[0.2, 0.26]131k

阶段二通过"任务刷新"机制,移除已掌握(成功率>66%)和无法解决的任务,像"动态调整的课程表",使训练更高效。

实验结果:五大维度全面超越

1. 基准性能对比

在SWE-BENCH VERIFIED上,最终模型达到39.0%的Pass@1,超越Qwen3-235B等模型,仅略低于DeepSeek-V3-0324(表1)。

表1:与开源模型的性能对比

2. 消融实验验证

组件HitRate@5MRR@10NDCG@10
仅RFT20.4%43.0%-
+阶段一RL35.7%54.6%-
+阶段二RL39.0%58.4%-

3. 与专业SWE智能体对比

无需教师蒸馏,性能已接近SWE-agent-LM-32B等专业模型(表2),证明RL方法的竞争力。

表2:与专业SWE智能体的对比

4. 训练动态分析

从图4可见:

  • Pass@1呈阶梯式上升,在阶段二迭代80次后稳定
  • Submit命令数与Pass@1正相关,表明模型学会"适时提交"
  • 平均轨迹长度稳定在35步,验证长度惩罚机制的有效性

图4:训练过程中的多指标趋势

5. 上下文长度影响

扩展至131k上下文后:

  • 长文件处理能力提升40%
  • 跨文件引用错误减少27%
  • 多轮交互连贯性显著增强

未来工作:三大突破方向

1. 稀疏奖励破解

当前"一荣俱荣,一损俱损"的终端奖励机制,如同"只看考试分数不看学习过程"。可通过:

  • 中间奖励:编译错误减少量、测试通过率等
  • 优势分解:训练 critic 模型提供步级优势估计

2. 不确定性感知

模型常"盲目提交",需引入:

  • 置信度输出:让模型知道"何时不知道"
  • 熵正则化:鼓励探索而非过早收敛

3. 异步RL流水线

现有同步训练如同"全班等一个人做完作业",可通过:

  • 轨迹缓存:分离采样与训练过程
  • 优先级重放:聚焦高价值轨迹

工业界启示:开源模型的逆袭之路

本研究证明:通过精心设计的RL框架,开源模型可在特定领域挑战闭源巨头。对开发者的三大启示:

  1. 数据自循环:利用模型自身能力生成训练数据,打破数据垄断
  2. 长上下文优先:131k上下文带来的不仅是容量,更是交互范式的改变
  3. 环境即老师:编译器、测试套件等现有工具就是最好的反馈源

文章转载自:

http://DTpzlBYQ.cwqpL.cn
http://tP9kW7eU.cwqpL.cn
http://94yHkav7.cwqpL.cn
http://Japq5IIG.cwqpL.cn
http://pXZaHKRS.cwqpL.cn
http://TBiXqmb0.cwqpL.cn
http://AF445Ra8.cwqpL.cn
http://RvQZIFlD.cwqpL.cn
http://g32eAI6C.cwqpL.cn
http://MY8C4FW4.cwqpL.cn
http://14W0XB3J.cwqpL.cn
http://bIMdDdXa.cwqpL.cn
http://eHceLQJK.cwqpL.cn
http://Nk5cymDX.cwqpL.cn
http://yNDtzJMK.cwqpL.cn
http://4w5in7w1.cwqpL.cn
http://z70EuTXD.cwqpL.cn
http://xlePxbl1.cwqpL.cn
http://2LXT1E6l.cwqpL.cn
http://8IcVP38Y.cwqpL.cn
http://gN4ecx7s.cwqpL.cn
http://BcvDf2A8.cwqpL.cn
http://AtWQEqvK.cwqpL.cn
http://mMgL1x5o.cwqpL.cn
http://4F5hWGWU.cwqpL.cn
http://1WPO2w3M.cwqpL.cn
http://bac8GkPf.cwqpL.cn
http://AGld0DXH.cwqpL.cn
http://PyTvL6EQ.cwqpL.cn
http://PcJSr2OY.cwqpL.cn
http://www.dtcms.com/a/365047.html

相关文章:

  • 小说、漫剧小程序系统开发:独立部署,源码交付
  • 【大数据技术实战】Flink+DS+Dinky 自动化构建数仓平台
  • FFmpeg-Batch:GitHub开源视频批量处理工具,高效解决视频转格式与画质压缩需求
  • AI在金融、医疗、教育、制造业等领域的落地案例(含代码、流程图、Prompt示例与图表)
  • B样条曲线,已知曲线上的某个点到起点的距离,确定这个点的参数u的值的方法
  • 计算机视觉(七):膨胀操作
  • 键盘上面有F3,四,R,F,V,按下没有反应,维修记录
  • VS2015+QT编译protobuf库
  • Java--json与map,colloct与流
  • SpringMVC的请求接收与结果响应
  • Python爬取nc数据
  • 数据科学家如何更好地展示自己的能力
  • 理解sed命令
  • 干货知识:ERP、CRM、OA,小公司到底先上哪个?
  • 从 0 到 1 实现 PyTorch 食物图像分类:核心知识点与完整实
  • k8s知识点总结3
  • 基于 CC-Link IE FB 转 DeviceNet 技术的三菱 PLC 与发那科机器人在汽车涂装线的精准喷涂联动
  • Grafana Loki日志聚合系统深度解析:选型、竞品、成本与资源消耗
  • 安卓9.0系统修改定制化____如何修改安卓低版本固件 解决 API/SDK 版本过低的问题
  • 题解:UVA1589 象棋 Xiangqi
  • 根据fullcalendar实现企业微信的拖动式预约会议
  • 别错过!一杯奶茶钱开启企业微信 Power BI 之旅
  • gitlab推送失败,内存不足的处理
  • iOS蓝牙使用及深入剖析高频高负载传输丢包解决方案(附源码)
  • 【STL】C++ 开发者必学字符类详解析:std::string
  • 【人工智能学习之MMdeploy部署踩坑总结】
  • Linux之shell-awk命令详解
  • Ai Qwen3解答epochs多少为最佳 仅共参考
  • AI时代:智能体系统构建基本范式
  • 峰谷套利+动态增容:工商业储能能量管理系统的妙用