RLVR 只给整条回答一个 0/1,答对但中间算错和答对且步步正确拿到同样的奖励。CAPO 不再预测每一步的「未来价值」——那要额外训练 critic 或 PRM, 既贵又容易被钻空子——而是让现成的 70B 级 LLM 一次前向读完 rollout,列出哪几步错了,只给这几步的 token 扣分,再在 GRPO 的组内归一化上做一次裁剪更新。
GRPO 把整条回答当成一个动作,同一个 ri 复制给每个 token(§2)。于是「答对但推理有错」和「答对且全程正确」在梯度上没有区别,模型学不会稳定地走对的路。
CAPO 的关键判断是:过程信用不该去估价值,而该去查对错。让 GenPRM 在一次前向里对每个步骤给出确定性的批评(第几步错了),采样 N 份再投票,把索引交出来——没有蒙特卡洛,也没有可被策略反推的概率打分。
然后是非对称的奖励塑形:先给所有 token rv·C,再给错误步骤的 token 扣 P,且 C > P。只要答对,过程再糟也比答错强;在这个前提下才比过程。
代价是每条 rollout 额外若干次 70B 前向(主实验 N=4)和一个会出错的裁判;收益是所有 backbone 的 All Mean 都高于 GRPO-Rule,最明显地出现在难题与 1B 模型上,幅度 0.7–2.9 个百分点。
先建立一个共同认知:结果正确不等于推理正确,而现在的 RLVR 分不出两者的差别。
RLVR 的做法很干净:规则验证器(数学题里是 Math-verify)给出二值奖励,对为 1、错为 0,用 GRPO 在组内做标准化。
论文 §2 把这种做法写成一个式子:Âti = (ri − mean(Ri)) / std(Ri),对这条回答里的每一个 token t 都相同。
问题在于,同一道题的回答质量差别很大,而差别恰恰在回答内部。附录 E 给了四份 rollout:两份都答对,其中一份推演干净直接,另一份绕了弯、走了错路却碰巧算对; 另两份都答错,其中一份只在最后差一个数,另一份从第一步策略就全错。GRPO 会把前两份按同一份正奖励更新,后两份按同一份负奖励更新。
§2 的说法是:缺少细粒度反馈,模型无法区分「部分正确」和「完全错误」的推理,也难以强化对的步骤、惩罚个别的错。从 RL 的角度看,这相当于把序列决策简化成一个 contextual dueling bandit——整条回答是一个动作,信用分配这一步被跳过了。
所以真正要回答的问题不是「怎么把奖励变密」,而是:能不能在不引入新训练模型、又不被策略钻空子的前提下,指出一条回答里哪几步错了? 论文的答案几乎是字面意义上的——找一个大得多的模型,让它读一遍并给出步骤编号。
论文把它们和自己的方法放进 Table 1 的五个维度里对照:数据、调用次数、可靠性、测试时扩展、细粒度。
PPO 用 value model 给每个 state 估未来回报;奖励密集化(Chan et al. 2024 的注意力信用、Cao et al. 2025 的 Shapley 信用)把序列级奖励拆到 token。
卡在哪:它们都在估计一个不可验证的量。价值模型自身有两种优化目标,信用不可靠;密集化依赖一个奖励模型,策略可以学会利用它的偏差——也就是 reward hacking。
PRM 能给出步骤级奖励,但要做两件事:高质量的人工步骤标注,以及在线 RL 里每一步都调用一次模型(Table 1 记为 N 次)。
卡在哪:它把过程奖励当作「当前状态的未来回报」来预测,受采样有限和 policy / completion 模型错配影响,噪声大。更糟的是在 Best-of-N 上优化 PRM 会出现「过程→结果漂移」(Zhang et al. 2025b),过程监督反而退化成只看答案。
| 方法(Table 1) | 高质量数据 | 推理调用次数 | 可靠奖励 | 测试时扩展 | 细粒度信用 |
|---|---|---|---|---|---|
| PPO | 不需要 | 1 | 否 | 否 | 是 |
| 奖励密集化 RL | 不需要 | 1 | 否 | 否 | 是 |
| PRM | 需要 | N | 否 | 否 | 是 |
| CAPO | 不需要 | 1 | 是 | 是 | 是 |
「可靠奖励」在原文是 “Providing Reliable Rewards”。CAPO 的「1 次」指每条 rollout 合并一次批评调用;主实验实际采样 N=4 份批评再投票,这一点见 04 节。表中的 N 是大于 1 的数。
这张表的含义是:前三条路各缺一格,而 CAPO 声称全满。它能不能满格,取决于两个设计——一个确定性的裁判(3.1),和一个不让过程信号压过结果的奖励结构(3.2)。
三个部件:单次前向的 GenPRM 批评、投票聚合成错误步骤集合、非对称的 token 级奖励与组内归一化。
对训练题 q 从 πθold 采样 n 条 rollout {yi}。每条 rollout 按 \n\n 切成步骤,包上 <step_k>…</step_k> 标签,连同题目和批评 prompt I 一起发给 GenPRM,采样 k 份批评:
关键是批评的形状:prompt(附录 F)要求裁判先写 “Judgment: Is the solution correct? X”,再在 <incorrect_steps> 标签里用逗号列出错误步骤编号。
它回答的是「第几步错了」,而不是「这一步值多少分」。前者是可验证的离散判断,后者是概率估计——这就是论文说的“deterministic, binary evaluation”。
k 份批评用投票聚合成一个最终集合 Si*。论文正文给出两种:
五种聚合对应五种偏置:交集要求每份批评都点名,精度最高、召回最低;并集只要有一份点名就算错,召回最高;多数介于两者之间;贪心只用一份批评,最容易被噪声带偏;平均不设阈值,把点名次数变成扣分力度。
这份集合最后被翻译成 token 集合 Terri:错误步骤覆盖的全部 token。
token 级奖励就是 Eq. 1:一个整条奖励,加上一个只落在错误步骤上的惩罚。
取 C = 2, P = 1,四种情形的奖励正好是 {+2, +1, 0, −1}。论文用 MORL 的线性标量化来表述这个选择,但真正约束它的只有一条不等式:C > P。
只要 C 严格大于 P,「答对但过程错」的 +1 就一定高于「答错但过程对」的 0——任何一条通往正确答案的轨迹都排在所有通往错误答案的轨迹前面。过程信号只在同一结果的样本之间做区分。
为什么不能对称?对称的 C = P = 2 时,「答对、过程错」= 2 − 2 = 0,「答错、过程对」= 0 − 0 = 0,两种完全不同的情形拿到同一个奖励,模型无从分辨。
这一步和 GRPO 同构,只是统计量从「每条回答一个标量」变成了「每个 token 一个值」。由于 −P 只落在错误步骤上,答对但有小错的轨迹,其错误 token 会拿到低于组均值的 advantage,其他 token 高于均值;GRPO 不会做这种拆分。
作者在 §3.2 里记录了两条经验观察,解释了 C > P 不只是「保险」:Observation 1——早期从过程学更难,攒够了正确步骤也未必通向正确答案,甚至拖慢训练;Observation 2——后期过程信号变得关键,用来在拿到同一结果的众多回答里继续区分优劣。 附录 Figure 4 给出了反例:C=2、P=5 的过程主导配置下,模型学会的是变啰嗦,而不是做对。
下面是论文附录 F 的一条真实案例的简化演示。题目是「求 v 使 (−21−√301)/10 是 5x²+21x+v 的根」,rollout 在第 5 步漏了一个符号,后面每一步都沿用错误的式子。
GenPRM 的 prompt 要求它独立检查每一步,所以批评的名单是 step_5 到 step_11,不会在第 5 步之后全部停下。
演示里用 4 份批评、10 个步骤:灰 = 没点名,强调色 = 点名。点任意步骤看它的 token 奖励,切投票规则看规则如何改写名单。
默认选中 step_5:它是真正的出错点,4 份批评全部点名,任何规则都会判错。再点 step_6(3/4 点名,交集放过、多数与并集判错)和 step_4(仅 1/4 点名,只有并集判错),就能看出投票规则张力的来源。
步骤文字取自附录 F 的案例(求 v 使 (−21−√301)/10 是 5x²+21x+v 的根),原文 rollout 有 13 步,GenPRM 判错 step_5–step_11;演示压成 10 步、4 份批评,为的是让四种投票规则给出不同结论。四份批评是演示构造的变体,不是论文里的真实采样。
投票规则取自论文定义的五种:交集、并集、多数(count(s) ≥ k/2)、贪心(k=1)、平均(weight = count(s)/k)。论文正文只说「平均」给每个步骤一个连续惩罚权重,没有写它如何进入 Eq. 1;演示按 rv·C − weight·P 呈现,这是对原文的直接延伸,不是原文公式。
C=2、P=1 取自 §3.2 的示例,也是 Table 4 消融里最优的一行。演示假设整条回答答对(rv = 1),所以 token 奖励只可能是 +2 或 +1——看不到「答错、过程对」的 0 和「答错、过程错」的 −1,那两档只需把 rv 换成 0。
真实步骤按 \n\n 切分再包 <step_k> 标签(附录 C、D),Qwen 系列推理格式天然这样分隔;演示按同一规则画成 10 段。
CAPO 没有新模型、没有新数据、不训练裁判;工程代价集中在裁判侧,可拆到别处跑。
把 CAPO 放回一个 GRPO 迭代里,策略侧的动作完全没变:采样、算规则奖励、算 advantage、做带裁剪比的更新。变化只有一处——advantage 从「每条回答一个数」变成「每个 token 一个数」,而这个数里多了一项由裁判给出的惩罚。
| 环节 | GRPO | CAPO | 出处 |
|---|---|---|---|
| 裁判模型 | 无 | Qwen 系列用 Qwen2.5-72B-Instruct;Llama 系列用 Llama-3-70B-Instruct,均未微调 | §4.1 |
| 裁判采样 | — | temperature 0.7、top-p 0.9、max tokens 2048 | 附录 D · Table 6 |
| 批评份数 | — | 主实验 N=4 | §4.1 |
| 步骤切分 | — | 按 \n\n 切分,包 <step_k> 标签 | 附录 C、D |
| 逐 token 奖励 | 只有 rv | Eq. 1:rv·C − 𝕀(错步)·P | §3.2 |
| advantage | 按回答组归一化 | Eq. 2:全部 token 统一归一化 | §3.2 |
| 采样 | 每题 16 条 rollout,global batch 192,rollout 温度 0.7 / top-p 0.9 | 附录 D · Table 5 | |
| KL 系数 | 0.01;格式奖励 0.2;PPO 小 epoch 4 | 附录 D · Table 5 | |
| 训练数据 | Llama-3-1B→MATH 7.5k;Llama-3-3B→DAPO-Math 9.8k;Qwen2.5-1.5B→MATH;Qwen2.5-7B→DAPO-Math(Qwen 先做 NuminaMath-CoT 860k SFT) | §4.1 | |
成本账要说清楚:Table 1 把 CAPO 记成「1 次推理调用」,指的是每条 rollout 只需一次性读完所有步骤、不再按步调用;但它在一次调用里采样 N 份批评,主实验 N=4,Figure 3 的最优点 N=8。 换句话说,相对 GRPO 多出的是 N ×(每条 rollout 的一次 70B 前向),与回答长度无关地摊在每个训练样本上。附录 C 的对策是:本地显存紧张时把 GenPRM 走 API,把这部分推理成本移出训练机。
附录 C 把 CAPO 放进「用 70B 级模型或闭源 API 指导策略模型」的既有实践里:数据增强、轨迹精修、批评者。CAPO 的差别在于单次调用就拿到全部步骤的过程监督,而不是每步一次。
两个未细化的实现细节值得记住:第一,裁判被要求「独立检查每一步,不能因为上一步错了就判这一步错」——prompt 里的这条指令让裁判定位的是新的错误,而不是错误的传播;第二,评价用的是贪心解码的 pass@1、三次运行取平均,所以下面的差距不能简单读成「模型能力的提升幅度」。
把 03 节的三个部件按训练顺序排开,就是论文 Figure 2 的完整回路。
这条流程里最容易被忽略的一点:投票发生在 token 奖励之前,且投票结果只改变「哪些 token 扣 P」。因此不同投票机制之间的差别,本质上是同一套奖励上的几种噪声处理方式,而不是几种不同的训练目标。06 节的投票结果也印证了这一点——所有变体都在 GRPO 之上,差异体现在幅度和适用模型。
最好的变体比 GRPO-Rule 的 All Mean 高 0.7–2.9 个百分点;更大的差别藏在难题、裁判数量与权重配置里。
| 模型 | 最优 CAPO 变体 | OOD 均值 | 数学均值 | All Mean | GRPO-Rule All |
|---|---|---|---|---|---|
| Qwen2.5-7B | CAPO-MajorVote | 40.8 | 37.0 | 37.8 | 36.1 |
| Llama-3-3B | CAPO-MajorVote | 38.3 | 31.0 | 31.0 | 29.7 |
| Qwen2.5-1.5B | CAPO-Intersection | 34.1 | 32.3 | 32.3 | 31.3 |
| Llama-3-1B | CAPO-Intersection | 21.8 | 18.8 | 18.8 | 15.9 |
均值由 Table 2 / Table 3 的单元格重算;OOD 均值 = GPQA Diamond、ARC-c、MMLU-Pro 的算术平均,数学均值 = 该表 Math 列(7B 与 3B 含 AIME24,1.5B 与 1B 的表中没有 AIME)。重算结果与原文报告的增量一致:7B「+3.5 数学 / +2.5 全部」、3B「+2.1 / +1.8」、1B「+3.5 OOD / +2.9 全部」、1.5B「数学 +1.7」。
把单元格拆开看,几个不对称很明显:
Llama-3-1B:Intersection 18.8,MajorVote 17.0,Greedy 16.9,GRPO-Rule 15.9。Qwen2.5-1.5B:Intersection 32.3,MajorVote 32.0,Greedy 31.1。
论文的解释:能力弱的模型需要高精度的纠偏压力,只学最无争议的正确步骤。
Qwen2.5-7B:MajorVote 37.8、Union 36.8、Greedy 36.8、Average 36.7,Intersection 36.3(All Mean)。Llama-3-3B:MajorVote 31.0、Intersection 30.7。
论文的解释:强模型更复杂,交集里只要一份批评误判就会锁死探索。
以上 All Mean 均由 Table 7 / Table 8(附录,含 Greedy / Average / Union)或 Table 3 / Table 2 的单元格重算。注意 7B 上 Intersection 只是较低,并不低于 GRPO-Rule。
Figure 3 在 Qwen2.5-1.5B 的 CAPO-Intersection 上把批评数从 2 加到 8。OOD 均值 33.2 → 34.1 → 35.0,GPQA Diamond 17.5 → 20.5 → 22.1,ARC-c 60.4 → 60.0 → 61.1。 交集规则下,批评越多越难「全员点名」,所以有效错误集合在变小、惩罚在变轻——论文把这条趋势解释为:更多批评把噪声抹掉,让判断更准。 附录对比的 GRPO-GenORM 在同样加大 N 时收益要小得多、也不稳定(Figure 5、Table 10:OOD 均值 32.1 → 33.0 → 33.6)。
| 配置(Qwen2.5-1.5B,Table 4) | OOD 均值 | 数学均值 | All Mean |
|---|---|---|---|
| CAPO (C=2, P=0.1) | 33.4 | 28.8 | 31.1 |
| CAPO (C=2, P=5) | 33.0 | 27.4 | 30.2 |
| CAPO (C=2, P=2) 对称 | 32.8 | 28.5 | 30.7 |
| CAPO (C=2, P=1) | 34.1 | 29.4 | 31.8 |
Table 4 只有 MATH-500、OlympiadBench、AMC23 三列数学,均值按这三列算;OOD 列与主表一致(GPQA / ARC-c / MMLU-Pro)。
排序在数学列上是干净的一边倒:P=1 > P=0.1 > P=2 > P=5。P=0.1 的过程信号几乎消失,退回近似 GRPO;P=2 对称造成 0 奖励重叠;P=5 过程主导,附录 Figure 4 显示模型变得啰嗦而准确率下降。
但 OOD 列并不严格单调(P=0.1 为 33.4,高于 P=2 的 32.8),论文的结论主要建立在数学任务和「层次结构」的论证上。
附录 C 把「向 GenPRM 提供 ground-truth solution」当作提高可靠性的关键设计;附录 E 的 Table 9 却在 Qwen2.5-7B 的 CAPO-Intersection 上给出近乎持平的对照:不给标准答案(w/o gt)时 GPQA 24.4、ARC-c 69.9、MMLU-Pro 36.0,数学为 MATH-500 62.1、AIME24 30.6、AMC23 32.8,OOD 43.5、数学 32.4、All 37.9;给标准答案(w gt)时依次为 24.2、69.1、35.4,数学 62.3、31.2、34.5,OOD 42.9、数学 33.1、All 38.0。
差别多在随机波动范围内(GPQA 在 Table 12 中 CAPO-Intersection 为 22.2 ± 1.3),论文自身的结论也很克制:「并不总能带来明显优势,反而在通用推理上略有下降」。作者把它归因于标准答案与策略模型的解空间分布差得太远,反而给裁判注入噪声。
这一点和附录 C 的「提供标准答案把任务变成错误定位」在叙述上不完全一致;页面在 07 节把它列为一个未解决的张力。
CAPO 的增益来自把信用变成可验证的判断;它的边界也来自同一个选择——只能处理「能查对错」的过程。
附录 C 把可靠性建立在两点上:裁判要比策略强很多(70B+ 指导 1B–7B 的师生关系),以及裁判能拿到标准答案。学生越接近裁判,误判就越可能以「正确步骤被点名」的形式进入奖励。 论文没有单独测量裁判的错误率(错报或漏报),也没有给出裁判系统性偏错时的缓解手段;投票只能抹平随机噪声,抹不平系统性偏差。
每条 rollout 都要请 70B 读一遍,主实验 N=4、Figure 3 的最优点 N=8;调用次数随 rollout 数线性增加,与回答长度和训练步数无关。 附录 C 的对策是用 API 外包,但这只是换了付款方;论文没有给出相对 GRPO 的墙钟时间或 token 成本数据,也没有在 1B / 1.5B 小模型上讨论收益与成本是否划算。
附录 C 和 D 说得很直白:当前实现按 \n\n 切步,再包 <step_k> 标签,因为 Qwen 系列天然这样组织推理。作者把「让裁判自己切步再评估」写成未来工作。
全部四个数学基准加三个 OOD 基准都是单轮、有标准答案的题;开放写作、多轮工具调用这类没有明确步骤边界、也没有唯一答案的任务没有实验。
All Mean 上最好的 CAPO 变体比 GRPO-Rule 只高 0.7–2.9 个百分点;7B 上 OOD 不升反降 0.5(41.3 → 40.8),1.5B 的 Greedy 变体在 All 上比 GRPO 低 0.3。 增长几乎全部来自数学列,而 OOD 只是同一套数学训练后模型的附带评测;论文没有在 OOD 任务自身上训练 CAPO。
还有一处叙述上的张力,值得单列:附录 C 说给裁判标准答案能显著简化任务、提高可靠性,附录 E 的 Table 9 却在 7B 上看到一次近乎持平的对照——OOD 与数学各自朝相反方向微动。 两个结论可以并存,但论文没有给出让读者判断「什么时候标准答案帮得上忙」的标准。
一句话总结:CAPO 把「估计过程价值」换成「验证过程对错」。这让信用分配变得可验证、也几乎不改变训练代码,但它把可靠性、成本与适用面全部押在裁判和切步规则上——它解决的是「有对错」的问题,而不是「没有对错」的问题。