把仓库级软件工程任务按类别拆成专家再蒸馏回单一模型,Pro-618 平均解决率升至 58.04%
核心概要
该工作针对仓库级软件工程任务中「类别跷跷板」现象——池化强化学习在某些任务类别上进步的同时另一些类别退步、而总体分数掩盖了这种变化——提出类别感知的专家训练与策略整合框架:用 SWE Labeler 把任务按仓库领域划分为服务/数据/安全(A)、面向用户应用(B)、系统/工具/运行时(C)三类,用 Agentic-miniRL 加 Refresh–Repair–Expand 循环训练同源类别专家,再用标签路由的多教师在线策略蒸馏(MOPD)把专家合并为一个可部署学生模型,最终策略在 Pro-618 上取得 58.04% 平均解决率、较基座提升 5.39 个百分点,在 SWE-bench Multilingual 上取得 59.
深度剖析
论文把仓库级软件工程任务按可观测标签划分为类别,并证明池化联合强化学习会掩盖类别间的反向变化。 此前跨域专家拆分与融合方法依赖数学、代码生成等天然可分的领域边界,而本文在同一个软件工程领域内部,用基于证据的层级标注系统(26 个 Task Type L1、119 个 L2,21 个 Repository Domain L1、108 个 L2,以及 3 个四档尺度轴)建立类别粒度,并据此定义「类别跷跷板」与 see-saw gap 指标。 在 Pro-618(SWE-bench Pro 的 618 条审计过滤子集,A/B/C 分别为 221/201/196 条)上,Pooled RL 的部分类别增益与另一些类别的回退同时出现,总体增益为正时最小类别增益可为负;Balanced RL 用 1,548 条任务(每类 516 条)取得与 6,723 条 Pooled RL 接近的总体成绩(55.34% 对 55.50%),平均最小类别增益更高(0.19 对 0.08 个百分点),但平均 see-saw gap 并未缩小(1.18 对 1.05 个百分点)。
Refresh–Repair–Expand(RRE)循环让类别专家在自身成功轨迹上反复巩固,从而把平均进步与实例级回退同时处理。 与先由更大教师合成轨迹再 SFT、然后 RL 的常见流程不同,三个专家都从同一基座出发、直接通过可执行奖励的 Agentic RL 获得类别行为,训练与整合全程不使用外部模型提供解题轨迹或动作目标;RRE 把「刷新掌握度—复用已验证成功轨迹做 Repair SFT—扩展任务前沿」耦合起来,使数据选择随策略变化。 在 2,769 条匹配训练记录上,初始 RL 使 A/B/C 平均成功率分别提升 7.26、6.76、4.60 个百分点,但 839 条(30.3%)记录下降;Repair SFT 后三类平均成功率升至 56.28%、59.59%、52.75%,较初始 RL 再提升 10.23、14.05、9.47 个百分点,纳入修复的 751 条回退记录中有 125(69.8%)、103(73.0%)、264(61.3%)恢复到或超过基座水平。对应 Pro-618 目标类别上,首次修复较初始 RL 提升 3.77、1.50、2.89 个百分点,最终专家较基座高出 7.84、4.48、5.61 个百分点。
标签路由的多教师在线策略蒸馏(MOPD)能把三个专家的能力整合进一个学生模型,并在总体与每个类别上超过两种联合 RL 基线。 MOPD 在在线蒸馏基础上加入 ReLU 门控的奖励外推项,只保留每个教师相对参考策略的提升方向;教师与学生同源(共享分词、提示格式、基座与智能体接口),路由由可观测类别标签决定,而非由领域边界给定。 最终 MOPD 策略在 Pro-618 上三轮平均 Full 解决率 58.04%,较基座提升 5.39 个百分点,A/B/C 分别为 58.07%、59.37%、56.63%(提升 6.33、4.98、4.76 个百分点);相对 Pooled RL 总体提升 2.54 个百分点、三类分别提升 3.32、2.65、1.53 个百分点,相对 Balanced RL 总体提升 2.70 个百分点、三类分别提升 3.62、2.32、2.04 个百分点,最小类别提升分别为 1.53 与 2.04 个百分点。在 SWE-bench Multilingual 上 59.00%,较基座提升 2.78 个百分点,Full 差值的配对自助 95% 区间为相对基座 [0.33, 5.22]、相对 Pooled RL [0.67, 6.22]。
整合后的收益并不均匀:不同类别保留专家增益的比例差异明显。 论文把「相对联合 RL 基线的提升」与「专家增益回收率」作为两个不同视角来评估整合,指出最终提升最小的类别未必是比例上损失最大的类别。 按增益回收率计算,MOPD 在 A/B/C 上分别保留对应专家增益的 80.8%、111.1%、84.8%;B 类超过 100% 意味着学生比对应专家高 0.50 个百分点,A 与 C 则分别低于对应专家 1.51 与 0.85 个百分点,但仍高于两种联合 RL 基线。
启示与展望
该框架面向仓库级软件工程智能体的后训练:适用于有容器化仓库、问题式任务描述和可执行 fail-to-pass / pass-to-pass 测试的任务池,并需要一套可审计的类别标签来同时驱动训练池构建、教师路由与类别级评测。它使后续工作可以在同一领域内部检验「先分专家、再整合」这一假设,也提供了 see-saw gap、最小类别提升与专家增益回收率等可直接复用的度量。对使用者而言,这意味着当总体分数稳定但类别表现互相抵消时,可以尝试按类别组织训练流,而不是只调整混合比例;论文中 Balanced RL 用 1,548 条任务取得与 6,723 条 Pooled RL 接近的总体成绩,也提示较小的类别均衡训练集在此设定下可以保持竞争力。
论文自身指出若干开放问题:任务可能跨多个类别,而当前硬路由把每条任务只分配给一个专家类别;训练多个专家并运行教师前向会显著增加算力,最优配置可能随数据、基座模型与预算变化;同源教师可能过于相似而信号不足,或在重度专门化后差异过大而难以稳定整合;基准通过率并不能完全衡量补丁质量,测试驱动的奖励可能诱发评测器攻击或反映脆弱的任务规格。作者还说明,仓库清理与全新沙箱重放可以阻止本地历史泄漏与 rollout 状态篡改,轨迹审计可以筛查外部检索,但这些控制无法消除预训练记忆或所有弱验证器失效;Pro-618 上的结果不能推广到未执行过滤的完整 Pro 集合;实验评估的是完整训练框架及其分阶段结果,并未单独分离各优化组件、回放选择或路由粒度的贡献;单次运行的类别轨迹也包含评测波动,采样与路由策略的更广泛比较仍待开展。此外,本次读取的文本中部分表格数值以占位形式呈现,因此 Repair SFT 各阶段在 Pro-618 上的具体分数、以及部分训练实例分解表只能依据正文叙述的百分点变化来理解。
