Industry & PracticeResearch & Benchmarks
编码 智能 体 上 的 强化 学习, 能否 跨 基准 迁移
Surge AI 只用强化学习,在 1,700 道专家编码任务上后训练 Kimi K2.7 Code。六个外部基准的 pass@1 全部上升,包括训练时没用过的 harness,以及长达数小时的 SWE-Marathon。

In this piece
智能体编码任务上的强化学习,能否跨基准迁移
Sushant Mehta、Logan Ritchie、Edwin Chen
隶属机构:Surge AI。邮箱:research@surgehq.ai
arXiv:2610.00890v1 [cs.LG],2026 年 10 月 1 日。许可证:CC BY 4.0。本文问的是,编码智能体上的强化学习能否迁到训练时没见过的基准。
摘要
编码智能体常常倒在最后一公里:功能大体做出来了,却漏掉一条需求;测试只覆盖自己的实现已经能处理的情形;把本该保持不变的行为弄坏;或者拿一个未经核验的假设去验收。我们问两件事:在专家编写的智能体编码任务上做强化学习(RL),能不能补上这段差距;学到的东西会不会迁移到训练分布之外。我们只用 RL,对 Kimi K2.7 Code 做后训练。这是一个一万亿参数(320 亿激活)的开源权重混合专家模型。训练任务共 1,700 道:1,000 道仓库任务,用隐藏的 fail-to-pass 测试给改动打分,并用 pass-to-pass 测试守住已有行为;700 道终端任务,用专家写的隐藏验证器打分。奖励是目标检查通过的比例;只要有一条 pass-to-pass 测试失败,奖励就降为零。在秩为 32 的 LoRA 适配器上做一轮 GSPO,我们评测的六个外部基准上 pass@1 全部上升,横跨三种智能体 harness:SWE-Bench Pro(60.1$\rightarrow$64.8)、DeepSWE(31.0$\rightarrow$43.4)、Terminal-Bench 2.1(67.4$\rightarrow$82.0)、Terminal-Bench 3(1.4$\rightarrow$12.1)、Terminal-Bench 4(0.0$\rightarrow$7.6)、SWE-Marathon(5.0$\rightarrow$25.0)。把五个相互独立的任务集合起来看(Terminal-Bench 4 是对 Terminal-Bench 3 的修订),改进是显著的($p<0.001$);在训练数据采集之后才发布的三个集合上,改进仍然显著($p=0.004$)。在两种训练时从未用过的 harness 上,模型也有提升。DeepSWE 和 Terminal-Bench 3 上,轨迹的智能体步数中位数缩短 24% 到 35%。基座模型在 DeepSWE 上失败的运行大多是差一点就通过;在训练后模型新解出的任务上,成对轨迹显示它避开了上面四种失败模式的每一种。
1 引言
带可验证奖励的强化学习(RLVR)已经成为训练编码智能体的标准阶段 [DeepSeek-AI et al., 2025; Wei et al., 2025; Luo et al., 2025; Kimi Team et al., 2025]。一次训练是否有效,通常的证据是:在某个与训练数据格式相同的基准上分数更高。这留下两个问题。模型学到的是领域知识,还是把一件任务做到完的更一般的本事?换一个基准、换一个智能体 harness、换一个时间跨度,改进还在不在?一个只吸收了某个基准惯例的智能体,不如一个学会把真实工作做完的智能体。
图 1:在 1,700 道专家编写的编码任务上做强化学习之前和之后,六个外部基准上的 pass@1。按任务格式分组,SWE-Marathon 那种长达数小时的构建单独画出。加粗数字是以百分点计的增益。Harness 用斜体,其中训练时没有用过的两个再加粗。斜线阴影的基线,是同一检查点、同一 harness 上公开报告的分数(DeepSWE:基准排行榜;Terminal-Bench 2.1:Artificial Analysis);其余是我们自己跑的。星号标出训练数据采集之后才发布的基准;Terminal-Bench 4 修订了 Terminal-Bench 3。
我们用一次训练、六个外部基准来同时研究这两个问题。我们只用 RL,在来自两个家族的 1,700 道专家编写的智能体编码任务上后训练 Kimi K2.7 Code [Moonshot AI, 2026](§3)。1,000 道仓库任务里,每一道都把一个真实仓库钉在某次提交上,再配一条变更请求;隐藏的 fail-to-pass 测试给这次改动打分,pass-to-pass 测试守住已有行为。700 道终端任务里,每一道都把一个可工作的环境配上一项交付物,由专家写的隐藏验证器打分。配方故意做得很简单,好让这次运行检验的是任务和奖励本身:在秩为 32 的 LoRA 适配器上做组序列策略优化(GSPO)[Zheng et al., 2025; Hu et al., 2022],没有监督预热,没有 KL 惩罚,奖励是已满足检查的比例,并且只要有一条 pass-to-pass 测试发生回归就降为零(§4)。
我们在 SWE-Bench Pro、DeepSWE、Terminal-Bench 2.1、3、4 以及 SWE-Marathon 上比较基座模型和训练后模型。每个基准固定一种 harness,一共三种(§5)。这六个基准覆盖了两种训练格式、新的任务来源和领域,以及训练里没有的时间跨度:SWE-Marathon 那种长达数小时的构建。其中四个是在训练数据采集之后发布的。训练后的模型在全部六个上都有提升(§6;图 1),幅度是 4.7 到 20.0 个百分点,其中包括两种训练时从未用过的 harness:SWE-Marathon 上的 Claude Code(20 道里从 1 道变成 5 道),以及 Terminal-Bench 2.1 上的 Terminus 2(相对其公开基线 +14.6 个百分点)。因为 Terminal-Bench 4 修订了 Terminal-Bench 3,六个基准构成五个相互独立的任务集;合在一起看,改进是显著的($p<0.001$),在训练数据采集之后才发布的三个集合上仍然显著($p=0.004$)。训练后的模型用的智能体步数也更少:DeepSWE 上中位数从 150 降到 98,Terminal-Bench 3 上从 102 降到 78。
为了看清变了什么,我们把基座模型和训练后模型在同一批任务上的轨迹配成对来读(§7)。基座模型在 DeepSWE 上的失败大多是差一点:失败运行的目标测试通过率中位数仍有 86%,84% 的失败运行保住了每一条 pass-to-pass 测试。在我们读过的那些配对里——全部来自训练后模型新解出的任务——基座模型的失败反复落在四种模式上,对应一条标准的工程回路:需求丢失(理解)、测试过窄(测试)、无声回归(维护)、地面真值太弱(验证)。在同样的任务上,训练后的模型会实现整份规格说明,从需求而不是从自己的实现导出测试,盯住哪些东西必须继续能用,并在没有现成答案时自己造出地面真值。每一种行为,都是训练任务和奖励所偏向的。证据指向迁移的是什么:不是领域知识——基座模型大体已经有了——而是一种把工作做完的方式。
##### 贡献。
- 1. 从一个很小的、专家编写的 RL 数据集发生迁移:在 1,700 道任务上训练一轮,我们评测的六个外部基准上 pass@1 全部上升,横跨三种 harness,其中包括四个在数据采集之后才发布的基准,以及一个长达数小时、训练里没有对应物的时间跨度(§6)。
- 2. 一次成对轨迹分析:基座模型在 DeepSWE 上的失败大多是最后一公里的差一点;在训练后模型新解出的任务上,基座模型的失败反复落在四种模式里,而训练后的模型避开了它们(§7)。
- 3. 一种以回归为门控的部分得分奖励,并说明每一种行为变化如何连到训练任务和奖励的某一条性质(§§3–4,§7)。
2 相关工作
##### 面向软件工程智能体的 RL。
RLVR 这个名字和做法,是在数学和指令遵循上确立的 [Lambert et al., 2025];DeepSeek-R1 把基于规则的奖励做大,用 GRPO 来优化 [Shao et al., 2024],用到数学和短篇代码上 [DeepSeek-AI et al., 2025];此后 RL 进入了长程的智能体软件工程。SWE-RL [Wei et al., 2025] 从软件演化数据学习,奖励是基于规则的补丁相似度;SWE-Gym [Pan et al., 2025]、SWE-smith [Yang et al., 2025] 和 R2E-Gym [Jain et al., 2025] 从真实仓库大规模构造可执行的训练环境;DeepSWE-Preview [Luo et al., 2025] 是一个与 DeepSWE 基准无关的智能体,只在这类环境里用 RL 训练;SkyRL [Cao et al., 2025] 给长程智能体提供一条 RL 流水线;Kimi K2 这类前沿开源模型 [Kimi Team et al., 2025] 则把大规模智能体数据合成和 RL 合在一起。这些工作大多大规模挖掘或合成任务,并在格式与训练环境相配的 SWE-bench 风格基准上评测 [Jimenez et al., 2024; Chowdhury et al., 2024]。我们在一小批专家编写的任务上训练。这些任务的规格说明把可以逐条打分的需求列出来,部分得分以回归为门控,并且我们跨基准、跨 harness、跨时间跨度来测量迁移。
##### 智能体编码的基准。
SWE-bench [Jimenez et al., 2024] 及其经过人工核验的子集 [Chowdhury et al., 2024],把在真实仓库上解决 issue 做成了标准任务;SWE-Bench Pro [Deng et al., 2026] 用长程、多文件、经过人工核验的问题把难度抬高。Terminal-Bench [Merrill et al., 2026] 在容器化的命令行环境里评测智能体做困难任务的能力,并经由 Harbor 框架 [Harbor Framework Team, 2026] 变成一个持续改版的基准(2.0、2.1、3、4)[Terminal-Bench Team, 2026; Marten et al., 2026; Marten, 2026]。DeepSWE [Huang et al., 2026] 要求在已有仓库里做原创功能,SWE-Marathon [Desai et al., 2026] 要求在长达数小时的跨度上做出完整系统。这些基准上的分数都依赖于智能体 harness [Merrill et al., 2026; Desai et al., 2026]。Harness 固定了模型所使用的工具、提示和控制循环。常见 harness 包括 SWE-agent 和 mini-swe-agent [Yang et al., 2024; Lieret and Jimenez, 2025]、OpenHands [Wang et al., 2025]、Terminus 2 [Merrill et al., 2026],以及 Claude Code 这类商业命令行工具 [Anthropic, 2025]。分数随 harness 改变,是因为工具、提示和控制循环都变了。
##### 部分得分与基于量规的奖励。
与通过的单元测试比例成正比的奖励,在代码 RL 里已经成立 [Liu et al., 2023]。基于量规的奖励被用来训练指令遵循 [He et al., 2026; Mehta et al., 2026a] 和开放式推理 [Gunjal et al., 2026];Mehta 等人 [2026a] 奖励的是专家所写标准里被满足的那一部分。代理奖励可以被钻空子 [Skalse et al., 2022],而部分得分打开了一种具体的交换:用已有行为去换新检查的满足。我们的奖励在被请求的行为上保留部分得分,并用一道门把这种交换拿掉:只要有一条 pass-to-pass 测试失败,奖励就是零。
##### 后训练带来的迁移。
Chu 等人 [2025] 发现,RL 能泛化到没见过的规则变体和视觉变体,而监督微调会记住;Huan 等人 [2026] 发现,在数学上做 RL,向其他领域的迁移好于在同样问题上做监督微调;Yue 等人 [2025] 认为,RLVR 在推理任务上的 pass@1 增益,很大一部分来自把概率集中到基座模型本来就能采样到的解上。我们组此前的工作报告过跨任务分布的迁移:在长程、多工具的办公室工作上做后训练,完全没有软件工程任务,却在五项外部评测上带来增益,其中包括 SWE-Bench Pro 从 20.5% 到 26.3% [Mehta et al., 2026c; Ritchie et al., 2026];单轮约束遵循训练,增益最大的反而是多轮维度,其中 MultiChallenge 的指令保持 +22.1 个百分点 [Mehta et al., 2026a; Deshpande et al., 2025];在一个企业模拟上训练,提高了分布外的通过率 [Mehta et al., 2026b]。这里训练和评测都是编码,但基准、harness 和时间跨度并不相同。
3 训练数据
训练集有 1,700 道任务,来自 Surge AI 由专家编写的智能体编码题库,格式是智能体编码评测里最常见的两种。每一道任务都把智能体能看见的规格说明,和针对所请求行为的隐藏检查配在一起。
3.1 两个任务家族
##### 仓库任务(1,000 道)。
每一道任务都是钉在某次提交上的真实仓库,外加一项具体、贴近真实的改动请求。两组测试给结果打分:隐藏的 fail-to-pass 测试编码所请求的行为,在原始提交上失败,在任务作者的参考补丁上通过;pass-to-pass 测试守住已有行为,在两边都通过,依据是仓库自己的测试套件,大约一半任务里还有任务作者写的隐藏测试。格式与 SWE-bench 相同 [Jimenez et al., 2024],但每一道都由专家新写,规格说明写出具体、可以逐条打分的需求:边界情况、精确接口、输出格式、限制,以及哪些东西必须保持不变。
##### 终端任务(700 道)。
每一道任务把智能体放进一个可工作的容器环境,要求一项具体交付物,风格与 Terminal-Bench 相同 [Merrill et al., 2026]。专家写的隐藏验证器检查环境的最终状态,并对一组标准打分。
3.2 塑造训练信号的性质
任务有四条性质,决定奖励能教什么;§7 会回到每一条。
- (P1)可打分的需求。每一条写明的需求对应一项或多项检查,因此奖励可以给部分进展记分(§4.1)。
- (P2)隐藏的评分器。智能体看得到规格说明,但永远看不到给所请求行为打分的 fail-to-pass 测试或验证器,所以不能对着可见用例写代码,必须自己决定要检查什么。
- (P3)受保护的行为。仓库任务的规格说明写明什么不能改,pass-to-pass 测试执行这一点;一次回归就把奖励清零。
- (P4)没有神谕。智能体拿不到参考解,所以任何「结果是对的」的证据,都必须在这一次 rollout 内部造出来。
隐藏评分器和没有神谕,在可执行的编码环境里很常见。这些任务特有的是:规格说明把可以逐条打分的需求列出来,包括什么不能改;奖励按检查给部分得分,并以回归为门控。
3.3 与评测基准隔开
全部训练任务都是在 DeepSWE、Terminal-Bench 3 和 4、SWE-Marathon 发布之前采集的。两个家族在格式上分别对应 SWE-bench 和 Terminal-Bench,但都不是为了抬高某个基准分数而挑选的。我们把每一道训练任务对全部六个基准做了核对 [Deng et al., 2026; Huang et al., 2026; Terminal-Bench Team, 2026; Marten et al., 2026; Marten, 2026; Desai et al., 2026]:没有一道训练任务与基准任务重叠,也没有一道是从基准任务派生的。
4 方法
配方大约是在这 1,700 道任务上做一轮 RL(108 个 rollout 步,216 次优化器更新),没有监督阶段。任务按粗的两阶段课程排列:先 1,000 道仓库任务,再 700 道终端任务,并按难度排序——基座模型在仓库任务上的通过率略高一些。每个阶段内部把提示打乱。
4.1 奖励
每次 rollout 结束时,对着环境的最终状态执行该任务的检查。设 $P_{i}\in\{0,1\}$($i\leq N_{P}$)为 pass-to-pass 测试(已有行为)的结果,$F_{j}\in[0,1]$($j\leq N_{F}$)为 fail-to-pass 测试或验证器标准(所请求行为)的结果,全部等权。奖励是
$$R\;=\;\mathbf{1}\!\left[\,\sum_{i=1}^{N_{P}}P_{i}=N_{P}\right]\cdot\frac{1}{N_{F}}\sum_{j=1}^{N_{F}}F_{j}.\qquad (1)$$
第二项给部分得分:一次 rollout 满足 12 项所请求检查中的 3 项,得 0.25。第一项是硬门:一次 rollout 满足全部 12 项,但 100 条 pass-to-pass 测试里失败 1 条,得 0。终端任务没有 pass-to-pass 测试($N_{P}=0$),所以奖励就是验证器标准被满足的比例。被长度上限截断的 rollout 不进入损失,类似于 DAPO 的过长过滤 [Yu et al., 2025]。已有行为的结果是零或一,所请求行为的结果可以是零到一之间的分数,并且各项等权。
##### 为什么在组内相对优势下,部分得分很重要。
奖励进入更新,只经由在一条提示的 $G$ 次 rollout 内部标准化之后的优势。在二元的通过/失败奖励下,只要一组里 $G$ 次 rollout 全部失败或全部通过,这一组就没有信号。对一道每次 rollout 以概率 $q$ 通过的任务,这件事发生的概率是 $q^{G}+(1-q)^{G}$。当 $G=8$ 时,$q=0.1$ 为 43%,$q=0.05$ 为 66%:任务越难,沉默的组越多。在式 (1) 下,即使一组里没有任何一次 rollout 通过每一项检查,仍然可以按各自满足的目标检查比例,给那些保住已有行为的 rollout 排序。门把每一次发生回归的 rollout 都放在零上,不管它满足了多少条新需求,因此策略没有一条可以钻的、在新行为与已有行为之间的兑换率。这两条性质会在 §7 里重新表现为行为。
4.2 策略优化
我们用 GSPO 优化策略 [Zheng et al., 2025]。对一条提示 $x$,rollout 为 $y_{1},\dots,y_{G}$,奖励为 $R_{1},\dots,R_{G}$,GSPO 使用按长度归一化的序列比率,以及组内标准化的优势:
$$s_{i}(\theta)=\left(\frac{\pi_{\theta}(y_{i}\mid x)}{\pi_{\theta_{\text{old}}}(y_{i}\mid x)}\right)^{1/\|y_{i}\|},\qquad\hat{A}_{i}=\frac{R_{i}-\operatorname{mean}_{j}R_{j}}{\operatorname{std}_{j}R_{j}},\qquad (2)$$
当一组里所有奖励相等时 $\hat{A}_{i}=0$,并最大化
$$\mathcal{J}(\theta)=\mathbb{E}\left[\frac{1}{G}\sum_{i=1}^{G}\min\!\Big(s_{i}(\theta)\,\hat{A}_{i},\ \operatorname{clip}\big(s_{i}(\theta),1-\varepsilon_{\text{low}},1+\varepsilon_{\text{high}}\big)\,\hat{A}_{i}\Big)\right].\qquad (3)$$
在多轮 rollout 里,$y_{i}$ 只包含模型生成的 token;工具输出从似然和损失里掩掉。在混合专家模型里,GRPO 的 token 级比率会随专家路由波动 [Shao et al., 2024],这促使 GSPO 使用序列级比率 [Zheng et al., 2025]。rollout 引擎和训练器之间的数值偏差,用截断重要性采样校正 [Yao et al., 2025]。没有 KL 惩罚,也没有熵奖励。每个 rollout 步采样 16 条提示,每条 $G=8$ 次 rollout,这 128 条轨迹分两次优化器更新吃掉,每次 64 条。若一组里有一次 rollout 被基础设施中止(例如容器崩溃),整组丢弃,并用从额外提示采样的组替换;若一组里所有 rollout 拿到相同奖励,则保留该组,但它不贡献梯度。序列比率按生成长度开方归一,优势在同一条提示的八次 rollout 里做标准化;裁剪上下界分开,没有 KL 项,也没有熵奖励。工具返回的文本不计入似然。
##### 低秩适配。
我们不更新混合专家模型的全部参数,而是在注意力投影和 MLP 投影上训练一个秩为 32 的 LoRA 适配器 [Hu et al., 2022],$\alpha=32$,优化器是带解耦权重衰减的 Adam [Kingma and Ba, 2015; Loshchilov and Hutter, 2019]。Schulman 与 Thinking Machines Lab [2025] 发现,把 LoRA 用到全部权重矩阵上、包括 MLP 层,即使秩很小,在 RL 上也能追上全参数微调,因为一次 RL 回合携带的信息很少。
4.3 rollout 与基础设施
rollout 跑在一个极简的、只有 bash 的智能体循环里,风格与 mini-swe-agent 相同 [Lieret and Jimenez, 2025],放在隔离沙箱中。沙箱提供该任务的仓库或环境,并在 rollout 结束时运行该任务的检查。模型以思考模式、最高推理力度运行,并用核采样(top-$p$ 0.95);每一轮模型生成上限为 65,536 个 token,一条轨迹可以使用模型全部 262,144 token 的上下文窗口。训练在 64 块 NVIDIA H200 GPU 上运行,rollout 生成和策略更新放在同一处。技术栈由开源组件搭成:Miles [Miles Team, 2026] 是从 slime 派生的 RL 框架 [Zhu et al., 2025],它编排 SGLang [Zheng et al., 2024] 做生成,并用带 Megatron-Bridge 的 Megatron-LM [Shoeybi et al., 2019; NVIDIA, 2025] 以及 FlashAttention [Dao et al., 2022] 做训练,组合张量并行、流水线并行、上下文并行和专家并行,以放下这个一万亿参数的模型。全部结果使用事先固定的最终检查点;没有任何超参数是在任何一个基准上调出来的。
5 评测协议
表 1:六个外部基准,以及每一个相对训练数据的偏离。训练使用的是仓库任务和终端任务,循环是 mini-swe-agent 风格,没有 SWE-Marathon 那种构建的时间跨度和范围。∗ 在训练数据采集之后发布。
| 基准 | 任务数 | 它要求什么 | Harness | 相对训练的偏离 |
|---|---|---|---|---|
| SWE-Bench Pro | 731 | 在 11 个仓库里解决 issue(公开划分);经过人工核验、需要改多个文件的问题 | mini-swe-agent | 格式相同 |
| DeepSWE v1.1∗ | 113 | 在 91 个仓库、五种语言里做原创功能;参考解平均新增 668 行 | mini-swe-agent | 功能更大 |
| Terminal-Bench 2.1 | 89 | 软件工程、系统管理、科学计算、安全和数据科学中的困难命令行任务 | Terminus 2 | 格式相同;未见过的 harness |
| Terminal-Bench 3∗ | 74 | 七个领域(软件、科学、机器学习、运维、安全、硬件、媒体)里更难、更长的任务;可以上公开互联网 | mini-swe-agent | 任务更难;公开互联网 |
| Terminal-Bench 4∗ | 66 | Terminal-Bench 3 去掉 8 道、修好 19 道;智能体时限 8 小时 | mini-swe-agent | 同 Terminal-Bench 3 |
| SWE-Marathon v1.1∗ | 20 | 完整系统(库的复现、产品克隆、机器学习工程、算法优化);智能体时限最长 10 小时;专家估计最长 400 小时 | Claude Code | 数小时的时间跨度;未见过的 harness |
##### 基准。
表 1 列出六个基准及其 harness [Deng et al., 2026; Huang et al., 2026; Terminal-Bench Team, 2026; Marten et al., 2026; Marten, 2026; Desai et al., 2026]。Terminal-Bench 4 修订了 Terminal-Bench 3(去掉 8 道,修好 19 道),因此我们把二者当作一个家族,不把它们当成两个独立的任务集合。这六个是我们评测过的全部基准,没有另做挑选。
##### Harness。
分数在不同 harness 之间差得很大 [Merrill et al., 2026; Desai et al., 2026],所以我们每个基准固定一种,并且对两个模型都不改:SWE-Bench Pro、DeepSWE(所有模型的排行榜 harness)以及 Terminal-Bench 3 和 4(Artificial Analysis [2026b] 在 Terminal-Bench 4 上使用的 harness)用 mini-swe-agent [Lieret and Jimenez, 2025];Terminal-Bench 2.1 用 Terminus 2 [Merrill et al., 2026],也就是其公开基线所用的 harness;SWE-Marathon 用 Claude Code [Anthropic, 2025],这是基准作者评测过的 harness 之一,经由一个 API 兼容的端点接到模型上。Terminus 2 和 Claude Code 在工具接口、提示和控制流上,都和训练时的循环不同。接口、提示词和谁来决定下一步,三处都不一样。
##### 指标与基线。
我们报告每个基准单次运行、使用最终检查点、思考模式、最高推理力度下的 pass@1。两个模型的内部运行使用同一套推理栈和采样设置;不同的只有 LoRA 适配器。有两条基线是同一检查点、同一 harness 上公开报告的分数:Terminal-Bench 2.1 的 67.4% 来自 Artificial Analysis [2026a],它在 Terminus 2 下把三次运行取平均(Vals AI [2026] 独立报告为 67.0%);DeepSWE 来自基准排行榜 [Huang et al., 2026]。我们在同一 harness 下自己跑的 DeepSWE 基座是 26.5%(113 道里的 30 道),低于公开的 31.0%,因此标题里的 DeepSWE 增益是保守的;§7 的轨迹分析用的是这次内部运行。其余基线都是内部运行,这使得 Terminal-Bench 2.1 成为唯一没有内部基座运行的基准。评分规则和统计见附录 A。
6 结果
表 2:Kimi K2.7 Code 在 1,700 道专家编写的编码任务上做强化学习之前和之后的 pass@1(%)。增益是四舍五入后分数的差。表中基座列是强化学习之前,加 RL 列是训练之后,最后一列是百分点差。
| 基准 | Harness | 任务数 | 基座 | +RL | 增益(百分点) |
|---|---|---|---|---|---|
| SWE-Bench Pro | mini-swe-agent | 731 | 60.1 | 64.8 | +4.7 |
| DeepSWE | mini-swe-agent | 113 | 31.0† | 43.4 | +12.4 |
| Terminal-Bench 2.1 | Terminus 2 | 89 | 67.4† | 82.0 | +14.6 |
| Terminal-Bench 3 | mini-swe-agent | 74 | 1.4 | 12.1‡ | +10.7 |
| Terminal-Bench 4 | mini-swe-agent | 66 | 0.0 | 7.6 | +7.6 |
| SWE-Marathon | Claude Code | 20 | 5.0 | 25.0 | +20.0 |
- $\dagger$ 同一检查点、同一 harness 上的公开报告(§5);我们内部的 DeepSWE 基座运行是 26.5。
- $\ddagger$ 训练后模型的 74 次运行里,有 8 次因 harness 原因失败、不计分;其余 66 次里有 8 次通过。星号任务是训练数据采集之后才发布的;匕首号基线来自公开报告,不是我们自己复现的基座。
6.1 训练后的模型在全部六个基准上都有提升
表 2 和图 1 里的增益,对应多解出的任务数是:SWE-Bench Pro 35 道,DeepSWE 14 道(相对我们的内部基座运行是 19 道),Terminal-Bench 2.1 为 13 道,Terminal-Bench 3 为 7 道,Terminal-Bench 4 为 5 道,SWE-Marathon 为 4 道。不做多重比较校正时,Terminal-Bench 2.1、3、4 上的增益,以及 DeepSWE 相对我们内部基座运行的增益,在 0.05 水平上各自显著(Boschloo 精确检验 [Boschloo, 1970])。在五个相互独立的任务集上做 Cochran–Mantel–Haenszel 检验 [Mantel and Haenszel, 1959],Terminal-Bench 3/4 家族只通过 Terminal-Bench 4 计一次,在 $p<0.001$ 上拒绝通过率相等的零假设(附录 A.2)。合并时 Terminal-Bench 的两个版本只算一个任务集。
6.2 增益出现在哪里
增益并不局限在离训练最近的基准上(表 1),也就是 SWE-Bench Pro(+4.7 个百分点)和 Terminal-Bench 2.1(+14.6 个百分点)。训练数据采集之后才发布的四个,提升 7.6 到 20.0 个百分点;把它们的三个独立任务集合起来,改进本身就是显著的($p=0.004$)。在训练里没有出现过的 harness 上评测的两个基准,提升都超过 14 个百分点:Terminus 2 下的 Terminal-Bench 2.1,以及 Claude Code 下的 SWE-Marathon——它那种长达数小时的构建在训练里没有对应物。只有这两个检验跨 harness 的迁移:另外四个跑在 mini-swe-agent 下,训练循环跟随的就是它那种只有 bash 的循环。增益也跨过难度范围。在 Terminal-Bench 2.1 上,基座模型通过大约三分之二的任务,RL 补上了剩余差距的 45%;在 Terminal-Bench 3 和 4 上,基座模型分别通过 74 道里的 1 道和 66 道里的 0 道,训练后的模型分别通过 66 道里的 8 道和 66 道里的 5 道。
6.3 更少的智能体步数
在我们统计了智能体步数的两个基准上,训练后的模型以更少的步数达到这些分数(图 2b)。在全部 113 道 DeepSWE 任务上,轨迹中位数从内部基座运行的 150 个智能体步降到 98($-$35%);在 Terminal-Bench 3 上从 102 降到 78($-$24%)。
图 2:(a)DeepSWE 上失败的基座运行大多是差一点:83 次失败的内部基座运行里,84% 保住了每一条 pass-to-pass 测试,59% 至少通过了 80% 的目标测试;失败运行的通过率中位数是 86%。(b)全部任务上每道任务的智能体步数中位数,不论通过与否;DeepSWE 的基座是内部运行。
译注:轨迹分析、参考文献与附录见续篇《编码智能体的强化学习跨基准迁移(续):四种失败模式》。
Found it useful? Pass it on
Scan with WeChat to open it on your phone and forward it.