论文精读

精读:把后训练配方本身当成果——八阶段流水线里哪些收益经得起对账

公开 GLM-4.5-Air-Base 的八阶段后训练配方,20 项基准 19 项领先官方版;把逐阶段 Δ 表与终值行对减后,SWE-bench 与 Seal-0 各有一段从未以 Δ 形式出现的回落,两个 AIME 年份合计净亏 2.5 到 3.3 分。

论文: Rufus-Air: An Open LLM Post-Training Recipe
作者: Chia-Yuan Chang, Renyuan Cheng, Rui Feng, 等
arXiv: 2609.29421
后训练 强化学习 RLVR 数据策展 难度过滤 Agent RL 可复现性 评测方法学

1 论文概览

一句话总结:Amazon 的 23 人团队把 GLM-4.5-Air-Base(106B-A12B)的整套后训练——九个百万级样本的混合、八个串行阶段、每个阶段的奖励函数与超参、512 卡到 8 卡的节点配置、甚至沙箱服务每月一万美元的账单——写成了 47 页、20 张表的公开文档,成品在 20 个公开基准中的 19 项上超过官方后训练版 GLM-4.5-Air。

核心问题:后训练配方在业界通常以 system card 的段落形式出现,读者拿到的是结果而不是可执行步骤。作者把「配方」本身当成论文要交付的对象:一条流水线能不能写到让「有几十张节点的团队」照着走一遍,或者只取其中一个阶段?

主要贡献

  1. 八阶段串行流水线全量披露:SFT → 推理 RL → 代码 RL → 指令遵循 RL → 通用 Agent → 代码 Agent → 搜索 Agent → RLHF。每个阶段给出数据来源与许可证(表 17 逐条列了 16 个数据集的 provenance)、验证器实现、超参、节点数、响应预算(表 16)。
  2. 四条经验结论:(i) 强 SFT 建立能力地板而非热身;(ii) 难度过滤把 RL prompt 锁在可学区间;(iii) 奖励的可靠性决定阶段顺序;(iv) 基建与工程选择属于配方的一部分。
  3. 逐阶段 checkpoint 评测表:每个阶段相对它训练所依据的上一 checkpoint 报 Δ,而不是只报终值。
  4. 数据与教师全部外部化:9,014,929 条 SFT 样本 / 27.04B token,全部来自公开数据集,无新人工标注、无自有蒸馏教师。
  5. 基建清单:token-in/token-out rollout、Rollout Routing Replay(R3)、FP8 rollout 配 BF16 训练、跨节点的沙箱与环境 actor、从 SFT 到 agent 阶段一致的 chat template。

2 方法详解

流水线与两轴排序。八个阶段首尾相接,每阶段从上一阶段的产物继续训练。排序依据两条轴:能力上从基础走向高级;奖励类型上从硬可验证走向软的 judge 分数与环境信号。作者给的理由是「可玩弄程度」,不是奖励格式:

stages with hard, verifiable rewards run first and stages with softer judge- or model-based rewards run later, which limits how long training is exposed to reward hacking. The order follows how easily a reward can be gamed, not its format: IF RL uses a rubric judge yet runs early, because instruction following is close to what the model already does, so the judge has little room to be gamed

(§2.1)

可学性过滤的三种形态。这是全篇最被倚重的设计,八个阶段里四个都在用,但口径并不统一:

  • 推理 RL:先用 GPT-OSS-120B 做正确性过滤(教师拿不到正奖励的题删掉),当前 policy 通过率 > 0.8 的删掉、零成功的删掉;训练中再在线过滤,每轮过采样 4×(1,024 条 prompt)后只保留组均值 rˉ∈(0,0.8]\bar{r}\in(0,0.8] 的组。
  • 代码 RL:训练前抽 4 个 warm-up 样本,只删 4/4 全对的题(3/4 = 0.75 < 0.8,保留),明确保留零通过的题,且训练中不再过滤。
  • 通用 Agent:删「稳定解出」与「从不出解」两端,1K 合成环境筛出约 2K 任务;代码 Agent 同样删两端,约 4K 任务(另有约 10K 未用)。
  • 搜索 Agent:8 次 rollout 按正确计数 cc 保留 0<c<80<c<8,两端共 46.9%(15.5% 从未解出 + 31.4% 恒解出)被丢弃。

奖励设计上最值得抄的三处。搜索 Agent 的 judge 奖励设了三道闸:至少 2 次成功工具调用才给正奖励;按格式错误比例把奖励缩到最低 0.5 倍;耗尽预算未出答案给 −0.1-0.1。早期一个「输出 boxed 答案就给分」的格式奖励被删掉,因为策略学会了用无工具猜测去领它。代码 RL 把每个题的测试子采样到至多 50 个、用 SHA-256 确定性选种,使奖励不随采样器漂移。推理 RL 对超过组内最短正确 rollout 的长度做线性惩罚,兼顾行为偏好与吞吐。

与常见做法的区别。相对单阶段 RLVR 论文,本文的优化目标是「一条流水线的可执行性」而不是某个算法的新增量:GSPO 被明说成「实用而非算法层面的选择」。相对 system card,本文多给的是逐阶段 Δ 表与失败记录。

3 实验结果

主表(表 1):对官方 GLM-4.5-Air,20 项里 19 项领先。最大的三处是 SWE-bench Verified 50.6 → 65.6(+15.0)、Tau2-Telecom 32.7 → 93.0、HLE-Verified 20.2 → 51.1;唯一落后项是 Arena-Hard v2 Creative Writing,60.3 → 53.0(−7.3)。

与同类开源模型:Qwen3.5(122B-A10B)在 AIME25 90.4、AIME26 91.7、GPQA 86.6、LCBv6 78.9、SWE-V 72.0 上仍高于成品(88.3 / 86.7 / 75.6 / 76.4 / 65.6);GPT-OSS(117B-A5B)在 AIME25 92.5、GPQA 80.1、LCBv6 82.7 上更高。

消融只有两组,且都不指向四条 headline 结论:

  • 搜索 Agent 的优势归一化:去掉 Dr. GRPO 的 std 除法后,保留集上 55.8 → 64.8,对照臂 49.7 → 58.7。作者给出的闭合式是 (G−k)(G−1)/(kG)\sqrt{(G-k)(G-1)/(kG)},G=16G=16 时单成功样本拿到 3.75,是平衡组 0.968 的 3.9 倍,与奖励间隔 Δ\Delta 无关。
  • RLHF 的数据集筛选:三条负面发现——未过滤的 HH-RLHF 损害代码与指令遵循;HelpSteer3 奖励涨得慢且科学推理与 IF 回退;IF 与 agentic prompt 不适合奖励模型打分。最终只训 75,815 条 HH-RLHF prompt。

全篇检索不到 seed 数与重复运行数,唯一给出的离散度是「SFT checkpoint 上 AIME 25 同条件重跑(n=8n{=}8)相差 4.6 分」。

4 个人分析

亮点

披露密度是这篇最实在的贡献。表 16 把每阶段的优化器、学习率、batch、每 prompt 采样数、每 rollout 的优化步数、响应预算、节点数列成一行;正文连「沙箱服务按约一万并发规模部署、维持成本约每月一万美元」「搜索 Agent 单轮跑完 BrowseComp 的 1,266 题要发出约 10510^5 次搜索与抽取调用、按标价几百美元」都写了。这使得配方的成本结构可被独立核算。

负面结果报得干脆。推理 RL 让两个 AIME 年份各掉 2.81 与 2.60;代码 Agent 阶段自陈「按手头算力训练而非训到收敛」,并且:

The SWE-bench gain does not survive to the shipped checkpoint, which reads 65.6, this stage’s starting value

(§3.6)

自限段写得比多数论文的 limitation 章清楚:

The sequential stage order was shaped by earlier experiments and the compute budget; it is one that worked, not one shown to be optimal (§2.1)

(§6)

局限性

一、整条流水线在 AIME 上是净亏损,而容忍阈值小于论文自己报的噪声带。 SFT checkpoint 3799 在 AIME25 / AIME26 上是 90.83 / 90.00,成品是 88.3 / 86.7,差 −2.53 与 −3.30。也就是说七个后续阶段在两个数学基准上合计扣掉了 2.5 到 3.3 分。作者的处置是把 AIME 定义为「护栏」:

with 30 problems per year a change of under three points is less than one problem’s worth (same-condition re-runs of AIME 25 on the SFT checkpoint differ by 4.6 points at n=8n{=}8)

(§3.2)

把这两句摆在一起就出问题:同一段里,3 分被判为「不到一道题、可接受」,而同条件重跑的离散度是 4.6 分。噪声带比容忍阈值还宽,那么 AIME 上所有 Δ——包括 SFT 的 +6.63 与推理 RL 的 −2.81——都落在同一条噪声带里。30 题的基准上 2.5 分约等于 0.75 道题,用「不到一道题」来论证「可以忽略」在字面上成立,但它说明这个基准分辨不出任何一阶段的贡献。

二、末尾两阶段的效应从未以 Δ 的形式出现。 论文在自限段里明说了原因:

No single benchmark suite was tracked across every stage, so a benchmark’s movement between the stages that report it is not attributed to any one stage

(§6)

既然 Δ 表是每阶段只报自己关心的列,那么「终值 − 最后一个报过 Δ 的 checkpoint」就是一段公共的差值,正文一次都没讨论过。把逐阶段表(表 2)与终值行对减:

列最后一个有 Δ 的 checkpoint成品未归因差值
SWE-bench Verified67.8(代码 Agent 后)65.6−2.2
Seal-054.0(搜索 Agent 后)51.4−2.6
BrowseComp37.237.1−0.1
HLE-Verified51.151.10
Terminal-Bench 2.140.242.7+2.5
AIME 2586.4(IF RL 后)88.3+1.9
GPQA76.39(通用 Agent 后)75.6−0.79

搜索 Agent 与 RLHF 两个阶段之后,SWE-bench 与 Seal-0 各掉了 2 分多。这两条恰好是主表里最大的两个卖点所在列。披露是完整的——数字都在表里——只是它们只以终值的形式出现,读者要做一次减法才看得见。

三、Arena-Hard v2 Creative Writing 的塌陷幅度比承认的大得多。 表 2 里这一列只在搜索 Agent 与 RLHF 两行出现:60.3(GLM 基线)→ 38.56 → 52.97。前七个阶段合计 −21.74,RLHF 补回 +14.41,净 −7.33。同一张表上 Arena-Hard v2 Hard Prompts 走了相反方向:55.0 → 83.1 → 89.1,+34.1。一个基准的两个子集给出 ±20 分以上的反向位移,而这两个数都出自单一 judge 且不重评(§5.1:「we do not re-score with multiple judges」)。总结句把这一项写成唯一的例外,正文没有讨论 21.7 分发生在哪一段。

四、「奖励可靠性定序」这条原则没有可证伪的形式。 排序键是「暴露于 reward hacking 的时间长度」,可全文没有任何 hacking 指标——没有奖励曲线与真值的偏离、没有长度或格式投机率、没有 judge 与人工的一致率,只有下游基准分。指令遵循 RL 用 rubric judge 却排在第 4 位,被解释为「IF 接近模型已会的,judge 没空间被玩弄」——一条能吸收反例的规则:任何被提前的软奖励阶段都可以说「它的奖励在这个位置玩不动」。论文自己也留了口子(「one that worked, not one shown to be optimal」),而全篇只有一条顺序被实际跑过,没有乱序对照臂。

五、可学性过滤在本篇内部就有三重不一致,且筛选模型与训练策略不是同一个。 这是本专栏第四次遇到「按通过率区间挑题」,这次的额外问题是同一篇论文里四种口径并存:>80% 通过率删、n=4 全对才删、两端都删、两端都删但阈值未给数字。对「从没解出」那一端态度直接相反——推理 RL 与通用 Agent 删掉,代码 RL 明写保留:

We retain problems with no passing warm-up sample, as they may yield successful completions and informative reward variation in subsequent rollouts

(§3.3)

零成功组在 group-mean 基线下 advantage 恒为 0,保留它们只消耗 rollout 算力不产生梯度。代码 RL 每 prompt 采 64 个样本、跑 8 个优化步,这批题的成本不低。

标定模型的问题更直接:正确性过滤用外部强教师 GPT-OSS-120B,可学性过滤用当前 policy。表 1 里的对照模型 GPT-OSS 标着总参 117B / 激活 5B,与 gpt-oss-120b 的公开规格一致——那个模型在 AIME25(92.5 对 88.3)、GPQA(80.1 对 75.6)、LCBv6(82.7 对 76.4)上都高于成品。一个在三个推理列上更强、且是本篇竞争对象的模型,被用来判定哪些题「有解」,它还生成了 SFT 混合里的 Superior-Reasoning-SFT-gpt-oss-120b 与 OpenResearcher-Dataset。

六、「无自有蒸馏教师」的成立方式是换成别人家的教师。 摘要说「without new human annotation or an in-house distillation teacher」,表 17 的 provenance 列逐条写明:17 个数据源里有 12 个的发布回复由前沿模型生成——Superior-Reasoning-SFT 与 OpenResearcher 由 GPT-OSS-120B 生成,tool-use-multiturn-reasoning 由 DeepSeek-R1 与 QwQ-32B 生成,Toucan-1.5M 由 Qwen3-32B / Kimi-K2 / GPT-OSS 生成,Logics-STEM、LLM360/TxT360 与 Nemotron-Post-Training 都含 QwQ-32B 与 DeepSeek-R1 的输出,OpenSeeker 由 Qwen3-30B-A3B-Thinking-2507 生成,AReaL-tau2-data 由 Qwen3-30B-A3B 生成,AM-Thinking-v1-Distilled 由 AM-Thinking-v1 生成,ToolMind 由 DeepSeek-V3 等生成,ToolMind-Web-QA 的搜索轨迹由 MiroThinker 用 Qwen3-235B-A22B 生成。教师没有被取消,只是从内部换成了公开的前沿模型——这恰恰是「开放可复现」成立的前提,也意味着「蒸馏不是本配方的一部分」这个读法不成立。

七、去污的删除率低到需要单独看口径。 8-gram 检测对每条基准题抽样约 20 个均匀间隔的 8 词短语,命中率 ≥50% 才删样本;十个基准链式跑完共删 3,529 条,其中 3,321 条(94%)来自 Terminal-Bench 2.0 的单一合成语料,HLE-Verified 57、IFEval 21、IFBench 130,其余六个基准零命中。最易泄漏的数学类另加穷举 8-gram 与稠密检索,确认 68 对(58 条),主导项是逐字或轻微改写的 AIME 24。SWE-bench 侧命中 11,874 个候选,被人工判为单个任务的 pytest 样板而保留。四项合计从 9,014,929 条里删掉 4,187 条,删除率 0.046%。作者自己也写了「cannot rule out all leakage」,且承认同样的残余风险适用于每个 RL 阶段的 prompt 集。

八、评测口径上还有两处松动。 τ²-bench 三个域随用户模拟器版本摆动:成品在 Telecom 上 Sonnet 4 得 84.4、Sonnet 4.5 得 75.4、Sonnet 5 得 95.4,跨度 20 分(表 20)。主表该列写的 93.0 与这三栏中任何一栏都不相等,表 1 未标注对应关系。与其他模型的对比全部引自对方报告(表 18 整张是引用编号),评测窗口与 harness 不一致。

对大模型领域的影响

这篇把「可复现的配方」确立成一种可发表的贡献体裁:47 页、20 表、超参、节点数、月度成本,配合公开的基座与公开数据,别人能照着走一遍,也能只取其中一个阶段。对本专栏关心的方向,它给出一个不太舒服的读数——单看 SFT checkpoint,AIME25 90.83 已经高于成品 88.3,也高于表 1 里除 Qwen3.5、GPT-OSS 之外的所有对照模型。若目标只是数学推理能力,跳过七个 RL 与 agent 阶段是更便宜的选项,而论文自己的表支持这个结论。

它也给这类体裁立了一条新门槛:既然逐阶段 Δ 表被当成披露的充分形式,那么「没有一套基准跨阶段追踪」就会成为复现者核对收益时的第一个缺口。本文把这个缺口写进了自限段,等于替后续工作标出了要补的地方。

5 实践启示

可以直接搬走的

  1. 在线难度带过滤。过采样 4×、只保留组均值落在 (0,0.8](0,0.8] 的组,窗口固定而策略在进步,于是「先前死掉的题会自己跨进可学带」——一个不用手工分期的自动课程。比静态难度过滤更适合长训练。
  2. 噪声奖励通道下去掉 std 归一化。判据是作者给的闭合式:单成功样本的优势 (G−k)(G−1)/(kG)\sqrt{(G-k)(G-1)/(kG)} 与奖励间隔无关,G=16G=16 时 3.75 对 0.968 差 3.9 倍。凡奖励来自 judge 且存在部分给分,组内标准差归一化会把「0.1 的部分分」放大成一次完整解。
  3. judge 奖励的三道闸。≥2 次成功工具调用才给正奖励、按格式错误比例缩放到 0.5、耗尽预算 −0.1,外加删掉无条件格式奖励。第四道闸他们自己承认关不上:

The tool call gate verifies that calls executed, not that the answer depends on what they returned, so a memorized answer with incidental tool use remains a residual path that we audit in trajectories rather than close in the reward

(§3.7)

  1. 确定性测试子采样。每题意图确定性 SHA-256 选种把测试集固定到至多 50 个,使奖励不随采样器随机性漂移——低成本,但对可复现的 RLVR 是硬要求。
  2. checkpoint 选在 held-out plateau 内。论文自陈 SFT 三轮训练里 held-out 在第一轮内就平了,后两轮只在评测噪声内移动,于是取 3799 步而不是 7112 步。这条对任何多轮 SFT 都适用:先画 held-out 曲线再决定训几轮。

潜在应用场景:开源基座(GLM、Qwen、Llama 系)的整条后训练复现;只取单阶段使用——指令遵循 RL 的 13K 合成多约束 prompt 配 Python 验证器是可独立复用的组件;agent RL 的成本预算(沙箱约每月一万美元、搜索 Agent 单轮评测数百美元);以及作为「配方类报告」的披露模板。

落地前该补的四个检查

  1. 每个 RL 阶段加一条「关掉过滤」的对照臂,把数据筛选与策略梯度目标分开;当前全篇只有两组消融,都不指向四条 headline 结论(§1 自陈:「Some of its conclusions come from training experience rather than from full ablations」)。
  2. 至少跑一次乱序流水线(把 RLHF 或一个 agent 阶段前置),给「奖励可靠性定序」一个能被推翻的检验;并补一个 reward hacking 指标,让排序键有对应的测量。
  3. 选一套基准在每个阶段 checkpoint 上全测一遍,或对现有 Δ 表逐格标注「此列的后续位移未归因」。
  4. AIME 之外补 seed 与重复运行;LLM-judged 基准至少用两个 judge 重评一次——Arena-Hard CW 的 −7.3 与 Multi-challenge 的 +29.8 目前都出自单次单 judge 打分。

参考文献

Chang, C.-Y., Cheng, R., Feng, R., et al. (2026). Rufus-Air: An Open LLM Post-Training Recipe. arXiv:2609.29421 [cs.CL]. Amazon. 23 位作者按姓氏字母序排列,全部在 Amazon 期间完成。

相关精读