过程奖励能把信用分配做细,但每一步都要标签,成本高到无法在线更新。
PRIME 把奖励模型写成 causal LM,用最终对错做交叉熵训练,推理时取 β log(πφ/πref) 得到每个 token 的隐式奖励;PRM 因此可以和策略一起在线更新。
代价是仍然依赖结果验证器,实验只覆盖数学与代码。
结果奖励只在序列末尾给一个信号,所有 token 共享同一个 advantage;过程奖励能细分信用,但人工标注每一步的成本让它无法跟着策略在线更新。
PRIME 的关键替换:奖励模型 πφ 仍是 causal LM,训练时只用 r_o(y) 做序列级交叉熵;推理时把同一模型在 token 上的 log 概率比拿出来,rφ(y_t)=β log[πφ(y_t|y<t)/πref(y_t|y<t)]。结果标签负责「对错」,语言模型负责「每一步有多像会通向对错的续写」。
在线更新是重点:PRM 用策略自己采出的 rollout 更新,分布跟得上策略、缓解漂移(§5.1);SFT 模型直接当 PRM 初始化,省掉独立 RM 训练阶段。代价是相对 RLOO 每步多一次 PRM 更新(Table 2:150.9 秒),相对传统 ORM 的 token 级奖励不额外收费(§3.1),且必须有一个可靠的结果验证器。
结果奖励把所有信用压到最后一个 token;这是信用分配问题,不是训练技巧问题。
策略梯度的通用形式里,advantage 是「从第 t 步开始的折扣回报减去基线」:
如果只有结果奖励,r(yt)=0(t<T),只有最后一个 token 拿到 r(yT)。Eq. 2 退化成 A = r(yT) − b:一条回复里所有 token 共享同一个 advantage,模型无法知道哪一步写对了、哪一步写歪了。
稠密过程奖励本来是对症药:每个 token 或每一步都给分,advantage 就能按位置拆开。但第一步就卡住了——过程标签怎么定义?推理步骤不像 token 那样有天然边界;人工标每一步成本高;而且「这一步错了」不一定等于「对最终答案没有贡献」,有些错误步骤反而通过剪枝搜索空间帮到了最终结果(§2.2 C1)。
所以真正的问题不是「要不要稠密奖励」,而是「稠密奖励的标签从哪来,怎么在策略变化时持续更新」。这引出了 02 的两条现有路线。
结果奖励便宜但粗;显式 PRM 细但需要步级标签,离线训练还会被策略分布甩开。
做法:RLOO、GRPO、PPO 等只接一个规则验证器:数学题比对最终答案,代码跑测试用例。
优点:验证器便宜、可扩展,奖励不容易被策略直接 hack。
卡点:信号稀疏。所有 token 共享同一个 outcome advantage,过程质量没有被单独评价;长推理链上,信用分配仍然靠猜(§2.1)。
做法:给每一步或每个 token 打过程标签,训练一个独立的 PRM,再把它接进 RL。
优点:信号稠密,理论上能更细地分配信用。
卡点:步级标签要么靠人工流水线(Lightman et al. 2023),要么靠估计方法——论文引用后者需要约 10× 的 rollout(§1)。离线 PRM 还会因策略分布漂移被 overoptimize,出现 reward hacking(Gao et al. 2022;§5.1)。
推理步骤没有天然边界;某些「错步」也可能通过剪枝搜索空间贡献最终答案(§2.2)。
要防 reward hacking,PRM 得跟着策略在线更新;但传统 PRM 每轮都要新的步级标注,成本不可行(§2.2)。
独立 RM 需要额外数据与训练。论文的对照 EurusPRM 就用了额外 500K 数据(§5.1)。
PRIME 的选择不是「再训一个更好的 PRM」,而是换一种奖励参数化:让 PRM 本身就是一个语言模型,用结果标签训练,却能在推理时输出 token 级奖励。这样 C1 的步级标签、C2 的在线更新、C3 的独立 RM 阶段可以一起绕开。
把 PRM 写成语言模型,序列级奖励是 log 概率比;到 token 级,同一个比值就是过程奖励。
序列级:隐式 PRM πφ 和参考模型 πref 都是 causal LM。奖励定义为两个模型对整条回复的 log 概率比:
Token 级:把整条概率拆成逐 token 条件概率,就得到 Eq. 3:
训练阶段和普通 ORM 一样:只拿最终结果 ro(y) ∈ {0,1},对序列级奖励做交叉熵:
关键在于:训练时只用了结果标签,推理时却拿到了 token 级信号。论文强调同一个 πφ 既用于在线更新,也用于算 token 级奖励,因此相对传统 ORM 不引入额外的奖励建模阶段与过程标注开销(§3.1)。因此 PRM 可以在线更新:每轮用策略新采的 rollout 和结果标签更新 πφ,奖励分布跟得上策略,而不是停在一个离线快照上。
rφ(yt) 为正,说明 πφ 比 πref 更倾向生成这个 token;为负则相反。它衡量的是「这个 token 在多大程度上把模型推向高结果奖励的分布」,不是对这一步逻辑的绝对正确性判断。
怎么把稠密奖励接进 RL:PRIME 把过程回报和结果回报分开算,再相加。论文的理由是直接混合两者可能导致数值不稳定(§3.2)。对过程奖励,先用平均隐式奖励算 leave-one-out 基线,再对每个 token 做折扣回报;对结果奖励,直接做 LOO。合起来是 Eq. 5:
策略更新用 PPO clip surrogate loss(Eq. 6),把重要性采样比限制在 [1−ε, 1+ε]。论文默认 K=4、β=0.05、KL 系数 0(§4.1)。
下面只计算 Eq. 3。拖动 β、πφ、πref,读数会给出该 token 的隐式奖励。默认 β=0.05 来自论文的 PRM 训练设置(§4.1),概率是手动设定的,不是论文里的具体样本。
第 1 组:β=0.05,πφ=0.80,πref=0.40 → 0.05 × ln(0.80/0.40) = 0.05 × 0.693147 = 0.0347。
第 2 组:β=0.05,πφ=0.20,πref=0.80 → 0.05 × ln(0.20/0.80) = 0.05 × (−1.386294) = −0.0693。
页面 JS 用同样的 toFixed(4) 输出,四舍五入后与上面逐位一致。这里只计算 Eq. 3 的 log-ratio;没有模拟 πφ 的训练、CE loss 或 advantage。
因为 πφ 和 πref 都是自归一化的语言模型,CE 的最小损失 0 达不到;最优解满足 β log(πφ*/πref) = ro + c,多出一个与 prompt 有关的常数 c(§C.2)。PRIME 用的是相对奖励 rφ(yi) − LOO,同一个 prompt 内的 c 会被减掉,所以不影响 advantage。论文也用 DPO 损失做了对照:Table 8(96 步)的 Avg 为 32.4(DPO)vs 32.3(CE),两者接近,作者选 CE 是因为更省显存。
Algorithm 1 的工程版本:采样 K 条、验证、过滤、算隐式奖励、更新 PRM、算 advantage、PPO 更新策略。
把 Algorithm 1 展开成一轮循环:
πθ、旧策略 πθold、隐式 PRM πφ、参考模型 πref 全部从同一个起点 πinit 复制(第 1 行)。K 条回复,默认 K=4(第 4 行)。r_o(y)(§4.1)。πφ 和 πref,用 Eq. 3 算每个 token 的奖励(第 7 行)。r_o(y) 做 CE 更新 πφ(第 8 行)。πθ,然后 θold ← θ(第 10–11 行)。策略学习率 5×10−7,PRM 学习率 10−6,batch size 256,micro batch 8;每个 prompt 采 4 条;β=0.05;KL 系数 0(§4.1)。训练用 veRL。
| 方法 | Rollout | Policy update | PRM update | Others | Sum |
|---|---|---|---|---|---|
| PRIME | 281.7 | 156.6 | 150.9 | 91.1 | 680.3 |
| RLOO | 282.4 | 157.9 | 0 | 90.4 | 530.7 |
PRM 更新本身占 150.9 秒;PRIME 的 Sum 是 680.3 秒,RLOO 是 530.7 秒,总耗时净增 149.6 秒(680.3 − 530.7)。论文正文称相对 RLOO 的时间成本高 24%;按 Table 2 的 Sum 复算为 28.2%(680.3 / 530.7 − 1),两处不一致,原文未说明 24% 是按每步均值还是总时间取数。
但 PRIME 达到相同训练奖励只需要 RLOO 的 40% 步数,所以按步数算是 2.5× 样本效率;论文按训练时间估计仍有约 2× 的效率(§4.3)。这两个倍数不是同一个口径:2.5× 是步数,2× 是 wall-clock。
| 项目 | Eurus-2-7B-PRIME | Qwen2.5-Math-7B-Instruct |
|---|---|---|
| Base Model | Qwen2.5-Math-7B | Qwen2.5-Math-7B |
| SFT Data | 230K(open-source) | 2.5M(open-source & in-house) |
| RM Data | 0 | 618K(in-house) |
| RM | Eurus-2-7B-SFT | Qwen2.5-Math-RM(72B) |
| RL Data | 150K queries × 4 samples | 66K queries × 32 samples |
SFT 数据 230K vs 2.5M;按 230/2500 算是 9.2%,论文约称 10%。RM 数据是 0 vs 618K;RL 数据是 150K queries × 4 samples vs 66K queries × 32 samples。省掉的是独立 RM 训练阶段与 RM 数据,不是 RL rollout。
单次 vs 双次前向:默认单次前向,直接用旧 PRM 的过程奖励;双次前向先更新 PRM 再重算奖励,PRM 准确率更高,但训练奖励与单次接近(§B.2;Figure 11)。
参考模型:可以用初始 SFT 模型(SFT ref),也可以用运行策略的旧 logprob(policy ref);两者训练奖励接近,但只有保留初始 SFT 模型才能算 KL(§B.1;Figure 9–10)。
在线 prompt 过滤:论文用「只接结果奖励的 RLOO」做消融,过滤后训练奖励方差明显下降(§3.3;Figure 2)。
把 Algorithm 1 画成一张图:四个模型从同一个初始化出发,PRM 在每一轮用结果标签更新。
覆盖:Algorithm 1 第 1–11 行的主循环——初始化、采样、结果验证、准确率过滤、Eq.3 隐式奖励、CE 更新 PRM、Eq.5 advantage、PPO 更新、θold ← θ。
未覆盖:准确率过滤的具体阈值(论文只写 “a certain accuracy range”,未给数值);veRL 的分布式调度与显存 offload 细节;GAE 分支(论文默认 MC + RLOO;§5.3 另有 GRPO、REINFORCE、PPO 变体)。
图中把 πφ 和 πref 的前向画成一步;实际实现是两个独立前向,且 PRM 更新与策略更新共享同一批过滤后的 rollout。
Table 1 的七项基准;PRIME-240 与 RLOO-240 同步数对比,PRIME-592 是最终模型。
| 方法 | Step | AIME 2024 | AMC | MATH-500 | MinervaMath | OlympiadBench | LeetCode | LiveCodeBench | Avg. |
|---|---|---|---|---|---|---|---|---|---|
| Eurus-2-7B-SFT | 0 | 3.3 | 30.1 | 66.2 | 32.7 | 29.8 | 21.7 | 17.8 | 28.8 |
| RLOO w/ OV Only | 240 | 20.0 | 47.0 | 73.2 | 36.4 | 35.4 | 28.3 | 26.7 | 36.9 |
| Eurus-2-7B-PRIME | 240 | 20.0 | 50.6 | 78.2 | 39.3 | 40.3 | 31.1 | 27.5 | 41.0 |
| Eurus-2-7B-PRIME | 592 | 26.7 | 57.8 | 79.2 | 38.6 | 42.1 | 33.3 | 28.6 | 43.9 |
表内 Avg 口径:RLOO 行七列为 20.0/47.0/73.2/36.4/35.4/28.3/26.7,和 267.0,算术平均 38.1(267.0/7),但表内 Avg 写 36.9;PRIME-592 行七列和 306.3,算术平均 43.76,表内 Avg 写 43.9(差 0.14)。原文未说明 Avg 的取整或加权口径。按表内 Avg,41.0 − 36.9 = 4.1;按七列复算,41.0 − 38.1 = 2.9。
AIME 2024 列在 §4.2 明确为 pass@1;其余列按 Table 1 表内口径。Table 12 另报 avg@16(temperature=0.3)。
PRIME-240 与 RLOO-240 是同步数对照;PRIME-592 是最终模型。切到 Avg. 可以看到表内 Avg 28.8 → 36.9 → 41.0 → 43.9(RLOO 的七列均值为 38.1)。
在相同 240 步下,PRIME 的七项平均是 41.0,RLOO 表内 Avg 是 36.9;按表内 Avg 差 4.1 个百分点(41.0 − 36.9,Table 1),按七列复算则差 2.9(41.0 − 38.1)。除 AIME 打平外,其余基准 PRIME-240 都更高。最终 592 步的 PRIME 到 43.9(表内 Avg;七列复算 43.76),相对 SFT 的 28.8 高 15.1 个百分点(43.9 − 28.8)。
口径提醒:论文 Abstract 与 §4.2 写的是 “15.1% average improvement”;按 Table 1 的表内 Avg 计算,这是 15.1 个百分点,不是相对提升 15.1%。同一篇论文的 §1 又写 “16.7% improvement on average”,Figure 12 图注写 “+16.7%”;Figure 12 的 Average 为 48.9 vs 32.2(AIME 2024、AMC、Minerva Math、OlympiadBench、MATH-500 五项数学基准),差 16.7 个百分点;图注写 +16.7% 但未写 pp。Table 1 的 15.1 是七项(含 LeetCode/LiveCodeBench)的表内 Avg 差 43.9 − 28.8;两者基准集合不同。
“PRIME achieves a 15.1% average improvement across several key reasoning benchmarks over the SFT model.”(Abstract)
Table 1 的七项 Avg:43.9 − 28.8 = 15.1 个百分点。
§1:“leading to 16.7% improvement on average”;Figure 12 图注:“PRIME brings substantial performance gain (+16.7%) over Eurus-2-7B-SFT.”
Figure 12 的 Average 是 48.9 vs 32.2(五项数学基准),差 16.7 个百分点;图注写 +16.7% 但未写 pp。Table 1 的 15.1 是七项的表内 Avg 差。
PRIME-592 在 AIME 2024 的 pass@1 是 26.7;同表 GPT-4o 为 9.3,Llama-3.1-70B-Instruct 为 20.0,Qwen2.5-Math-7B-Instruct 为 13.3(Table 1)。这是单项对照,不推出跨基准的普遍结论。
与 Qwen2.5-Math-7B-Instruct 的七项平均是 43.9 vs 34.6;单项上 MATH-500 为 79.2 vs 79.8,其余六项 PRIME 更高。论文 Abstract 说 “surpasses ... on seven reasoning benchmarks”,§1 说 “five key mathematical benchmarks”;按 Table 1 的单项,MATH-500 并未更高。
论文报告 PRIME 用 40% 的步数达到与 RLOO 相同的训练奖励,因此是 2.5× 的样本效率(§4.3;Figure 3)。但每步更贵:Table 2 的 Sum 是 680.3 vs 530.7,相对 RLOO 复算高 28.2%;论文正文写的是 24%。按训练时间估计,论文说仍有约 2× 的效率(§4.3)。所以「2.5×」只适用于步数口径,不能直接当成端到端加速。
最终训练奖励的提升,论文写作 6.9%(按措辞为相对提升;原文未注明相对还是绝对;§4.3:“improves the final rewards by 6.9%”;Figure 3 图注:“6.9% performance improvement”)。
| 算法 | 无 PRIME | w/ PRIME | 差(百分点) |
|---|---|---|---|
| RLOO | 36.9 | 41.0 | +4.1 |
| REINFORCE | 36.0 | 37.8 | +1.8 |
| GRPO | 36.1 | 37.8 | +1.7 |
| PPO | 35.8 | 39.4 | +3.6 |
| PRIME as Value Model | — | 36.6 | — |
Table 4 的 RLOO 基线 36.9 沿用 Table 1 表内 Avg;按 Table 1 七列复算为 38.1。差列按表内 Avg 计算。
四个算法都从 PRIME 受益。按 Table 4 的差列,RLOO +4.1、REINFORCE +1.8、GRPO +1.7、PPO +3.6;按表内 Avg,RLOO 的 +4.1 最大;若按 Table 1 七列复算,RLOO 的增量为 2.9,小于 PPO 的 +3.6。PPO w/ PRIME 的 39.4 仍低于 RLOO w/ PRIME 的 41.0。§B.3 原句称 “the PPO variant of PRIME provides no performance gain, demonstrating that the additional computation cost from the critic model is redundant”;但 Table 4 中 PPO 从 35.8 升到 39.4(+3.6)。若该句指相对 RLOO w/ PRIME 41.0,原文未明说;按表内数值 PPO 仍受益。PRIME as Value Model 只有 36.6,也低于把它当奖励模型用——论文的结论是 PRM 更适合做 reward model,而不是 value model(§5.4)。
EurusPRM 用额外 500K 数据训练,Figure 4 里却被直接用 Eurus-2-7B-SFT 初始化的在线 PRM 超过。论文的猜测是:策略与 PRM 同源初始化,减轻了分布漂移;PRM 只在线训练策略自己的 rollout(§5.1)。
离线 PRM 一开始准确率高,但随着策略漂移逐渐被 overoptimize;在线更新的 PRM 则持续上升(Figure 5;§5.1)。这是「必须在线」的直接证据。
同一个隐式 PRM,当 reward model 用(RLOO w/ PRIME)平均 41.0;当 value model 用只有 36.6(Table 4)。论文的解释是 value 形式没有把 token 级奖励直接变成 return(§5.4)。
在 DeepScaleR 的设置下(1.5B 模型、8k 阶段),PRIME-DeepScaleR-1.5B-Stage1 跑 330 步,平均 52.0;DeepSeek-R1-Distill-Qwen-1.5B 是 48.9,差 3.1 个百分点(52.0 − 48.9,Table 7)。GPU 时间 446.7 小时,DeepScaleR stage 1 约 600 小时(§B.7)。
方法把「过程标签」换成了「结果验证器 + 在线更新」;这解决了标注成本,但没有解决所有任务。
论文的验证器只覆盖数学(exact match)与代码(测试用例通过率)(§4.1)。没有廉价、可靠结果验证器的任务——开放写作、策略规划、主观咨询——这套奖励没有落脚点。推断(依据:§4.1 只定义 math/code 两类 OV;§4.2 与 Appendix B 的实验也只覆盖数学与代码。)
Appendix A 明确写:“we only conducted experiments on models up to 32B”。其他消融还只跑了较少步数;论文说主实验之外的对比在相同步数下进行,但没有给出更大模型的结果。
从 base model 直接 RL 的 “Zero” 设置收敛很快,7B 与 32B 都能在早期超过 instruct 版本;但论文报告约 50 步后就快速饱和,作者猜测可能归因于 response diversity 下降(原文 “This is possibly attributed to...”),留作未来工作(§B.4)。
PPO w/ PRIME 的 39.4 低于 RLOO w/ PRIME 的 41.0(Table 4);§B.3 称 critic 的额外计算冗余,但同表 PPO 从 35.8 升到 39.4(+3.6),按表内数值仍受益。奖励模型规模也不是越大越好:固定策略为 Qwen2.5-7B-Base,奖励模型 3B / 7B / 14B 的 Avg 分别为 32.0 / 32.6 / 31.8(Table 5);论文只测了这三个规模。
还有两点技术边界:CE 损失的最优点带一个 prompt 级偏置,PRIME 靠相对奖励把它消掉(§C.2);在线更新只是 mitigate reward hacking,论文的措辞没有说消除(§5.1)。β 在正文只报了 0.05(§4.1),没有展开敏感性实验。
一句话:PRIME 把「过程监督」的成本转嫁给了「结果验证器 + 在线 PRM 更新」。终点可验证、且愿意付每步一次 PRM 更新时,这套账算得过来;终点本身无法验证时,它没有落脚点。