从“一个”到“多个”再回到“一个”:面向类别的软件工程智能体训练
导语
软件工程智能体面对的并不是一类单一任务:代码修复、功能实现、测试调整和跨文件修改等问题,在推理路径、工具使用方式与失败模式上都可能不同。将所有任务混在同一个强化学习池中训练,虽然有机会推高总体成功率,却也可能让某些类别获益、另一些类别退化。论文《One to More, More to One》把这种现象概括为类别之间的“跷跷板”,并提出一套先分化训练、再统一部署的方法。
核心方法
- 先按类别组织训练数据。 研究使用可执行任务构造流程,并引入 SWE Labeler,从证据出发对任务进行多轴标注,以便形成更清晰的训练池和评估维度。
- 训练类别专家。 初始阶段分别进行类别特定的强化学习。研究观察到,平均训练成功率可以提升,但单个实例的进步仍然不均衡,因此不能只依赖总体指标判断训练是否有效。
- 采用 RRE 迭代循环。 Refresh–Repair–Expand(刷新—修复—扩展)让更新后的策略重新检查已掌握的实例;随后复用自身已经验证成功的轨迹进行 Repair SFT,再根据当前策略重新选择任务,继续开展长程 Agentic-miniRL。这个闭环将成功行为的巩固、薄弱样本的修复和新任务探索连接起来。
- 把多个专家合并为一个模型。 在部署阶段,标签路由的多教师在线策略蒸馏(MOPD)根据任务类别选择更合适的教师信号,再将其整合到单一学生模型中。论文还使用 ReLU 门控的奖励外推,只保留教师相对于参考策略的改进方向,降低不同专家信号相互抵消的风险。
结果与意义
论文同时比较了混合任务强化学习、平衡式强化学习、类别专家训练以及单模型整合,并从总体和类别级别观察变化。作者报告,最终模型在 Pro-618 上达到 58.04%,在 SWE-bench Multilingual 上达到 59.00%。这些结果的价值不只在于一个总体分数,更在于提供了检查“哪些类别真正进步、哪些类别被牺牲”的训练视角。
该框架的另一个特点是,专家训练和策略整合不依赖外部模型提供解决轨迹或动作标签。模型通过执行环境获得反馈,再利用自身经过验证的成功轨迹进行修复式学习,这为降低专家数据构造成本提供了思路。不过,类别标注质量、任务路由策略以及不同基准之间的可迁移性,仍是评估这类方法时需要重点关注的问题。
相关模型、数据集与 SWE Labeler 代码已公开,执行环境镜像也通过 GHCR 提供。对开发软件工程智能体的团队而言,这项工作提示了一种值得尝试的训练范式:不要只追求一个更高的平均分,而要先识别能力结构,再通过可验证的整合机制把分散的专长收拢到同一个模型中。
评论
正在确认登录状态……
正在加载评论……