推理错一步就够判了:Cliff 用「第一个错误」把过程奖励做到极简
做 RLVR 训练的朋友应该都有这个体感:reward 只有 0 和 1,一条推理链写了 20 步、第 19 步算错,和一条从头错到尾的垃圾回答,拿到的惩罚一模一样。一个几乎做对、一个全错,GRPO 却分不清它们。这个 credit assignment 的粗粒度问题,一直是 RL 后训练里最膈应人的地方。
这篇 Cliff 给了一个让我眼前一亮的回答:过程信号根本不需要那么细。只要找到推理链里第一次出错的那个位置,把 rollout 切成「还正确的前缀」和「已崩坏的后缀」两段,各给一个优势值,就够了。错一步之后的内容,反正已经建立在错误前提上,再精细评估也是白搭。
📌 核心摘要
RLVR 的结果奖励太粗,PRM 要额外训奖励模型且容易被 hack,on-policy distillation 又要求 teacher 和 student 同家族同 tokenizer。Cliff 的思路是:用一个现成 LLM 当 teacher,找出每条错误 rollout 的第一个推理错误(Pitfall Step),之前的 token 给较高优势、之后的给负优势。改动极小——只是在 GRPO 的优势分配上切了一刀——却在 12 组实验里全面领先:比标准 GRPO 平均高 7 个点,比 on-policy distillation 高 15 个点,而且用 Qwen3-32B 这种中等模型当 teacher 就够用。我的判断:这是一篇「对,就该这么简单」的论文,不是底层突破,但工程价值很实在,值得每个做 RLVR 的人花半小时读完。
论文信息 - 标题:Cliff: Learning Process Rewards from the First Mistake - 作者:Peixuan Han, Runhui Wang, Ketan Ramaneti, Jie Hao, Gerald Friedland, Chris Kong - 机构:Amazon Web Services(一作 Peixuan Han 来自 UIUC,实习期间完成) - 链接:https://arxiv.org/abs/2609.02817 (2026 年 9 月 2 日提交)
🎯 为什么需要这篇论文
RLVR 现在是大模型推理后训练的标准配方,但它的监督信号是序列级的:答案对就是 1,错就是 0。问题在哪?一条只差最后一步的推理和一个完全跑偏的尝试,受到的惩罚完全相同。模型不知道自己哪一步做得好、哪一步开始崩的,学习效率自然打折。
已有的两条修补路线各有各的坑:
| 方案 | 思路 | 坑 |
|---|---|---|
| PRM(过程奖励模型) | 训一个专门的模型给每步打分 | 泛化差、要额外训练、容易被 reward hacking |
| On-Policy Distillation | teacher 在 student rollout 上提供 token 级分布 | 要求 teacher/student 同家族、同 tokenizer,推理模式还得相似 |
作者问了一个更根本的问题:过程信号到底需要多细粒度?
他们的观察很关键:一旦推理第一次出错,后面的内容已经建立在一个无效前缀之上,再评估它价值有限。这个直觉其实有形式逻辑的影子——vacuous implication,前提为假时,无论结论是什么,整个蕴含式都空虚地为真。当然作者也坦诚,这只是设计动机的启发,不是形式化证明。
顺着这个逻辑,结论就顺理成章了:你只需要知道推理在哪一步开始错的,不需要精确评分其后的所有内容。
这就是 Cliff 的全部。
🏗️ 方法:一刀切,两段优势

图:Cliff 的两个阶段。左侧是 Pitfall Identification——teacher 先独立解题,经 verifier 验证通过后才去评判 student rollout,找出第一个错误的句子位置 p(a);右侧是 Advantage Assignment——GRPO 给所有 token 相同的优势(图中均为 -1.41),Cliff 则给有效前缀更高的优势(图中 +0.71),第一错误之后仍是负优势。
Teacher 怎么找第一个错误
整个流程是两阶段的:
阶段一:teacher 先独立为每个 query 生成参考解答,然后用 automatic verifier 验证。只保留 teacher 自己解对的 prompt 组——teacher 都解错的题,它的指导不可靠,该组直接回退到 vanilla GRPO。这个 ground truth 过滤器后面会看到,对弱 teacher 很关键。
阶段二:teacher 拿着题目和自己已验证的解答,逐条评判 student rollout:答案对不对?不对的话,第一个推理错误在哪一步?这个位置记为 \(p(a)\),它把错误 rollout 切成两半:\(p(a)\) 之前是仍然有效的前缀,之后是问题后缀。
有几个工程细节值得注意。超长 rollout 直接设 \(p(a)=0\),整条视为有问题——作者强调这不只是省 judge 调用,而是防止 length hacking 的必要护栏(不然「没算错只是没算完」的超长回复会拿到很长的有效前缀)。评判 prompt 也花了不少心思:要求 teacher 关注真正的推理错误,别去惩罚无害的笔误、不同但正确的解法路线、或者后来被自己纠正的失败尝试。
优势怎么分
在 GRPO 里,组内只有两种优势值:正确 rollout 的所有 token 共享 \(A_{cor}\),错误的共享 \(A_{inc}\)。Cliff 在错误 rollout 内部再切一刀(公式 4):
翻译成人话:错误 rollout 里第一错误之前的 token,拿到 \(\lambda A_{cor}-b\) 的较高优势(这部分推理还是对的);第一错误及之后的 token,和 GRPO 一样吃负优势。\(\lambda\) 控制对有效前缀的正向强化强度,偏移项 \(b\) 保证组内 token 级优势均值为零,不打乱 GRPO 原有的归一化性质。
有意思的是,主实验里 \(\lambda=0\)——也就是说有效前缀并没有拿到额外正奖励,只是「不被惩罚」。为什么?附录 C 的理论分析给出了答案:\(\lambda\) 稍大就会引入 length hacking 激励,模型会学着在到达易错步骤之前拼命延长已经正确的部分。实验也验证了,\(\lambda=1.0\) 时平均回复长度从 1506 涨到 1959,性能反而掉了近 2 个点。
这个设计的妙处在于它天然抗 reward hacking:奖励由第一错误的位置决定,晚犯错永远比早犯错好,完全做对按定义最优。模型没法通过「骗过奖励」走捷径——它唯一能涨 reward 的方式就是真的把错误往后推、推没了。
🔬 先回答一个关键问题:teacher 判得准吗
整套方法押在「teacher 能找准第一个错误」上,作者很务实地先做了 judge 质量评估(Table 1):50 条正确 + 50 条错误的 rollout,人类专家标注 Pitfall Step,和 LLM judge 对比。用 p-dis(人机标注的首错句子索引之差)衡量对齐程度,0 表示完全一致。
| Teacher | 参考解来源 | 解题准确率 | Judge 准确率 | 平均 p-dis |
|---|---|---|---|---|
| Qwen3-32B | teacher 自解 | 65 | 88 | 3.00 |
| Gemma3-27B | teacher 自解 | 67 | 86 | 4.52 |
| SOTA 模型 | teacher 自解 | 93 | 91 | 1.23 |
| Qwen3-32B | 给 ground truth | 100 | 91 | 3.30 |
| SOTA 模型 | 给错误解答 | — | 81 | 2.05 |
三个发现都挺有信息量。
一,解题强的 teacher 判断也更准,SOTA 模型的 p-dis 只有 1.23,基本跟人标的一样。
二,判断比解题容易得多。Qwen3-32B 解题准确率只有 65,但当 judge 能到 88。说实话这个不对称性挺符合直觉的——给人改作业比自己从零做题轻松多了——但它对整个方法的实用性意义重大:不需要前沿模型当 teacher,中等模型就够。
三,分歧主要来自假阴性(约 10%),judge 几乎不会冤枉正确答案。而且部分「假阴性」可能是 verifier 自己有问题——有些解答推理过程有缺陷但碰巧猜对了答案,verifier 接受、teacher 拒绝,这种情况 teacher 反而可能是对的。
另外给一个错误参考解,judge 准确率全线下跌——这正好支撑了阶段一那个 ground truth 过滤器的设计。
📊 主实验:12 组设置全面领先
实验配置:student 是 Qwen3-4B-Base(先在 OpenThoughts 上做 SFT)和 Phi-4-mini-Instruct;teacher 有三个——一个未具名的 SOTA 模型、Qwen3-32B、Gemma3-27B;数学域训 DAPO-math-17k,编程域训 DeepCoder(二元奖励,全测试用例通过才得 1 分);基于 veRL 框架,4 张 H100 或 B200。
主表数据量大,挑 Qwen3-4B 的几行关键结果(Avg. 为四个数学基准平均 / 三个编程基准平均):
| Teacher | 方法 | 数学 Avg. | 编程 Avg. |
|---|---|---|---|
| — | base | 50.66 | 15.05 |
| — | GRPO | 61.68 | 24.20 |
| SOTA | Distill | 58.58 | 20.61 |
| SOTA | GRPO | 62.37 | 24.83 |
| SOTA | Cliff | 65.66 | 25.96 |
| Qwen3-32B | OPD | 58.17 | 20.38 |
| Qwen3-32B | GRPO | 61.20 | 25.52 |
| Qwen3-32B | Cliff | 64.62 | 26.02 |
| Gemma3-27B | Cliff | 63.70 | 25.58 |
Phi-4-mini 上模式一致:Cliff 在每个 teacher 设置下都是组内最优。
几个值得说的点。
GRPO 本身就是很强的基线。 在大多数设置下它比 SFT 式蒸馏和 OPD 都好——OPD 在 Qwen3-32B teacher 下数学平均只有 58.17,连 vanilla GRPO 都不如。这提醒我们,蒸馏类方法「token 级信号更细」的叙事并没有兑现成效果,teacher 和 student 推理模式的错配是真实存在的。
Cliff 的收益不依赖强 teacher。 SOTA teacher 确实最好,但 Qwen3-32B、Gemma3-27B 当 teacher 时 Cliff 依然稳定超过 GRPO。对拿不到前沿模型的团队来说,这是最实用的一条结论。
收益来自 credit assignment 本身,不是「引入了 teacher」。 作者专门跑了个消融:让 teacher 判断对错但整个 rollout 用统一优势(GRPO with teacher),结果只有边际提升。真正起作用的是显式定位 Pitfall Step、对错前错后分别给 credit。
不过我也想泼点冷水:摘要里说比 OPD 高 15%、比 GRPO 高 7%,这是跨 12 组设置的平均相对提升,单看具体基准,很多提升是 1 到 4 个点这个量级。比如 Qwen3-4B + SOTA teacher,数学平均从 GRPO 的 62.37 到 Cliff 的 65.66,3.3 个点——扎实但不夸张。看论文时别被摘要里的大数带节奏。
🔍 消融与训练动态
Ground truth 过滤器的作用(Table 3)。 去掉 GT 过滤后,SOTA teacher 几乎无感(65.66 → 64.90,自解参考解本来就够准);但 Qwen3-32B 和 Gemma3-27B 掉了约 2 个点。结论很清楚:GT 过滤器是在给弱 teacher 的参考解质量兜底。好的一点是,即使完全没有 GT 过滤,弱 teacher 版 Cliff 多数情况下还是赢 vanilla GRPO——再次印证「判断比解题容易」。
λ 的选择(Table 4)。 λ=0 最优(65.66,平均长度 1506),λ=0.5 基本持平(64.67),λ=1.0 直接掉到 63.98 且长度飙到 1959。理论分析给出更精确的图景:记正确与错误 rollout 的平均长度比为 \(\rho\),GRPO 只在 \(\rho \gt 1\) 时产生加长压力,本身没有可钻的长度通道;Cliff 的加长条件是
其中 \(\bar{s}\) 是错误 rollout 有效前缀的平均占比。λ 越大,这个阈值越低,加长诱惑越强。附录还推出抗 hacking 的充分条件 λ 要小于 \(b/A_{cor}\),按经验值 \(b\approx 0.05\)——非常小。这就是主实验直接取 0 的原因。
训练动态。 三个信号都挺健康:回复长度训练早期有个尖峰后稳定下来,说明 Cliff 初期鼓励更长的探索轨迹而非单纯变长;teacher 与 verifier 一致率稳定在 85% 到 90%(Gemma 稍低,符合它判断能力较弱的定位);Pitfall Step 的相对位置在 50 步内升到 0.5 后稳定——模型先学会做难题的前半段,再逐渐建立一致的完整推理。这至少说明模型没在「hack」teacher,是在真的改善中间推理。
💡 我的判断
这篇论文最值钱的地方不是某个精巧模块,而是一个被验证的设计哲学:过程监督的粒度可以粗到「一个切点」,只要这个切点选得准。 想想 PRM 这一路的工作——训一个专门模型给每步打分,数据要得多、泛化还差、还怕 hacking——Cliff 等于说这些都绕过去了:不训奖励模型,不要同家族 teacher,只要一个能找茬的 LLM 加一个 verifier。
工程上的启发很直接:如果你在做 RLVR,Cliff 基本是零成本升级的候选——GRPO 的优势函数改几行,加一个 teacher 评判环节(还只判 verifier 组内有方差的组),就能换几个点的稳定提升。它对 teacher 的要求低到 Qwen3-32B 级别,落地门槛真的不高。
问题也得说清楚。一,judge 有约 10% 的假阴性,且案例研究显示「第一个错误」的定位本身存在固有歧义——teacher 会把「正确但不足以解题」的句子误判为错误起点。二,弱 teacher 需要 ground truth 兜底,但现实里可验证的 GT 并不总有,作者自己也承认这点。三,整套方法目前只覆盖数学和编程这种二元可验证场景,作者把 agentic 场景和 rule-based 的 Pitfall 检测器留给了未来工作——这恰恰是最让人期待的部分,因为 agent 任务里「第一步走错」的代价远比数学题大。
还有个我没完全想通的点:\(\lambda=0\) 意味着 Cliff 对有效前缀其实只是「免于惩罚」,并没有正向激励。那它的收益有多少其实来自「不再误伤正确的半成品推理」,而非「鼓励好推理」?论文的理论分析偏向后者,但实验上这两者不太好分离。如果有人在更难的基准上复现,我很想知道答案。
收尾
RLVR 的过程监督这件事,社区这几年的方向是越做越重——更复杂的奖励模型、更细粒度的标注。Cliff 反着来:找到第一个错误,切一刀,完事。结果还更好。如果你正在跑 GRPO,这个方法值得直接抄进训练管线试试。
觉得有启发的话,欢迎点赞、在看、转发。跟进最新AI前沿,关注我