CodeMidas:从代码本身扩展 coding

来自 arXiv · 期号 2026-09-19

摘要

训练 coding agent 需要大量带验证器的任务,但现有方法依赖 issue/commit 等开发产物,能提取的任务有限。 CodeMidas 把已有代码库里的已实现功能自动转成 RL 环境:agent 先探索代码库、写出行为规格,再基于原始代码的执行结果构造测试用例,最后通过执行检查和多次 rollout 筛选出可靠任务。最终得到 5,545 个训练任务,覆盖 23 种编程语言、15 个技术领域。 用这些任务在 MiMo-V2.5 上做 GRPO 训练后,五个 benchmark 全部上涨:DeepSWE +11.7%、ProgramBench +17%、Terminal-Bench v2.1 +8.5%。轨迹分析显示 RL 训练后的 agent 更会探索代码库、自验证方式也更多样。 论文附了开源代码。

深读

导读 训练 coding agent 的强化学习(RL)需要大量带可靠验证器的任务,但现有方法受限于 issue/commit 等开发产物,能提取的任务有限。CodeMidas 提出一种新思路:直接从已有代码库中已实现的功能自动构造可执行的 RL 环境,最终产出 5,545 个训练任务,覆盖 23 种编程语言和 15 个技术领域。读完能理解一种不依赖人工标注、仅从源码规模化生成 RL 训练数据的方法及其效果。 关键信息 - 数据集包含 5,545 个训练任务,来自 3,185 个开源代码库,覆盖 23 种编程语言和 15 个技术领域。 - 用这些任务在 MiMo-V2.5 上做 GRPO 训练后,五个 benchmark 全部上涨:DeepSWE +11.7%、ProgramBench +17%、Terminal-Bench v2.1 +8.5%。 - 消融实验表明,增加高质量训练任务的数量能提升性能。 - 轨迹分析显示,RL 训练后的 agent 表现出更好的行为,包括增加代码库探索和更多样的自验证方式。 逐节讲解 问题:现有 RL 训练数据来源有限 训练 coding agent 需要大量带验证器的任务。现有方法依赖开发过程中产生的 issue(问题报告)和 commit(代码提交)等人工产物,能提取的任务范围有限。开源代码库本身包含大量已实现的功能,但缺乏一种系统化的方法将它们转化为可训练的 RL 环境。 方法:CodeMidas 的自动化流水线 CodeMidas 是一个 agentic 流水线,以源代码为唯一输入,将已有代码库中的已实现功能自动转为可执行的 RL 环境。流水线在每个环节都分配了 agentic 计算资源:agent 先探索已实现的功能,写出行为规格(behavioral specifications);然后基于原始代码的执行结果构造测试用例;最后通过执行检查和多次 rollout(试运行)来验证和筛选候选任务,确保任务可靠。 实验与效果 在 MiMo-V2.5 模型上使用这些任务进行 GRPO(一种 RL 训练方法)训练后,模型在五个不同的 benchmark 上均取得提升,覆盖三类任务:issue 修复(DeepSWE +11.7%)、完整程序构建(ProgramBench +17%)和终端操作(Terminal-Bench v2.1 +8.5%)。消融实验进一步确认了任务数量与性能之间的正相关关系。轨迹分析显示,RL 训练后的 agent 在代码库探索和自验证方式多样性方面均有改善。 值得注意 论文仅基于摘要,未提供具体的方法细节,例如 agent 如何探索代码库、行为规格的具体形式、测试用例的构造逻辑等。此外,实验仅在一个模型(MiMo-V2.5)和一种 RL 方法(GRPO)上验证,泛化性有待更多实验检验。

读原文

本站只做摘要与索引,全部内容版权归原作者所有。