这一节我们从最基础的问题开始:为什么 outcome reward 在长 CoT 任务上不够?为什么需要 process reward?
考虑一个具体的例子:让模型证明"√2 是无理数"。
模型生成的 CoT 长这样(简化版):
Step 1: 假设 √2 = p/q,其中 p, q 互质
Step 2: 那么 2 = p²/q²,即 p² = 2q²
Step 3: 所以 p² 是偶数
Step 4: 所以 p 是偶数(这一步用了"偶数的平方是偶数"的逆否命题)
Step 5: 设 p = 2k
Step 6: 代入:4k² = 2q²,即 2k² = q²
Step 7: 所以 q² 是偶数,q 也是偶数
Step 8: 这与 p, q 互质矛盾
Step 9: 所以 √2 是无理数 ✓
假设这个证明在 Step 6 出错了——比如写成"4k² = 2q²,即 4k = q²"(漏了平方)。最终结论"√2 是无理数"还是对的(结论正确),但推理过程有错。
Outcome reward 给这个回答打分:
- 如果用最终答案(√2 是无理数)作为对错标准 → 正确 → reward = 1
- 但实际上推理过程错了,模型应该学到"Step 6 是错的"
Outcome reward 的问题:
- 信号稀疏:10000 token 的推理链,只得到 1 个 reward 信号
- 错误归因:模型不知道是哪一步错了,无法精准修正
- 奖励误标:推理错了但答案对了(运气好)→ 正反馈,强化错误推理
- 学习低效:模型只能从整体 reward 反推哪些步骤重要,效率极低
这就是稀疏奖励问题(sparse reward problem)——奖励信号在时间维度上分布太稀疏,无法提供有效的学习信号。
稀疏奖励问题在 RL 里有一个更正式的名字:信用分配问题(credit assignment problem)。
具体定义:给定一个序列决策任务,最终 reward 是
经典 RL 用几个方法解决这个问题:
把未来 reward 折扣到现在:
这是 第 3 章 MDP 讨论的经典方法。它隐含一个假设:离当前时刻越远的 reward,对当前决策的影响越小。这个假设在物理控制任务里成立(推小车时,10 步后的 reward 对当前推力的影响确实小),但在 LLM 推理里不成立——一个数学证明的第 1 步和第 10 步同等重要。
第 5 章 PPO 的 GAE 通过引入
DAPO 的 Token 级损失是一种近似 PRM 的方法——不是给"整条推理链"打分,而是给"每个 token"打分。但 token 级 loss 仍然依赖 outcome reward 反向传播——它没有独立的 verifier 来评估"这个 token 好不好"。
这是本章的主角——训练一个独立的 verifier,对每一步推理打分。PRM 的输出是密集的——每一步都有一个分数,模型可以精确地知道"哪一步好,哪一步坏"。
让我们用数学形式化两者的区别。
ORM 接受一个 prompt
这个分数代表"回答整体有多好"。在数学任务里,它通常是 0 或 1(答错或答对)。
ORM 训练数据形式:
(prompt, response, final_correctness)
例:("证明 √2 是无理数", "<完整证明>", 1)
PRM 接受 prompt
这个分数代表"第
- 二元:1(正确)/ 0(错误)/ -1(无关)
- 连续:[0, 1] 之间的概率
PRM 训练数据形式:
(prompt, response, step_index, step_correctness)
例:("证明 √2 是无理数", "<完整证明>", 4, 1) # 第 4 步是正确的
ORM 用于 RL 训练时:
整个序列共享一个 reward。
PRM 用于 RL 训练时(一种常见做法):
每个 token
这种做法把稀疏 reward 变成了密集 reward,每个 token 都有清晰的训练信号。
PRM 的价值在长 CoT 任务里最明显。考虑三个场景:
- CoT 长度:100-500 token
- ORM 信号密度:每 100-500 token 一个 reward
- PRM 价值:有限——序列短,ORM 信号已经够密
- CoT 长度:500-2000 token
- ORM 信号密度:每 500-2000 token 一个 reward
- PRM 价值:显著——可以精确定位错误步骤
- CoT 长度:5000-50000 token
- ORM 信号密度:每 5000+ token 一个 reward
- PRM 价值:不可替代——ORM 信号几乎无法提供有效学习信号
DeepSeek-R1 训练时报告了一个现象:训练初期,模型的 CoT 长度迅速从几百 token 增长到几千 token,但 AIME 准确率提升缓慢。直到训练后期,模型学会"在关键步骤做检查"(self-verification),AIME 才有显著突破。这说明长 CoT 任务需要过程级信号才能高效学习。
PRM 的工业实现有两条主要路线,对应不同的训练方法:
把 PRM 当作一个分类器——输入 prompt + step,输出"这步对/错"的概率。
代表工作:OpenAI 的 Let's Verify Step by Step(Lightman et al. 2023)。
训练数据:人工标注的步骤正确性(PRM800K 数据集)。
模型:BERT-style encoder 或 decoder-only LLM 加分类头。
把 PRM 当作一个生成器——让 LLM 用自然语言"评价"每个步骤。
代表工作:ThinkPRM(2025.04)。
训练数据:少量种子示例 + LLM 生成的评价。
模型:任何 LLM(LLaMA、Qwen、DeepSeek),用 prompting + 少量 fine-tune。
把 PRM 当作一个形式化验证器——用 Lean4 / Coq 这种定理证明器自动验证。
代表工作:DeepMind 的 AlphaProof(2024.07)、DeepSeek 的 DeepSeek-Prover-V2(2025.04)。
训练数据:形式化的数学定理(Lean4 格式)。
模型:LLM + Lean4 verifier。
这三条路线是接下来三节的主题:11.2 判别式 PRM、11.3 生成式 PRM、11.4 形式化 PRM。
Outcome reward 在简单任务上足够,但在长 CoT 任务上信号太稀疏,无法提供有效的学习信号。Process reward 通过给每一步推理打分,把稀疏奖励变成密集奖励,是长 CoT 任务的关键技术。
PRM 有三条工业路线:
- 判别式:分类器思路,准确但标注成本高
- 生成式:LLM 评价思路,标注少但精度依赖 prompt engineering
- 形式化:Lean4 验证,零误判但只适用于形式化任务
下面三节分别详细讨论这三条路线,最后两节讨论 PRM 在推理时搜索(MCTS、ToT)和并行协调推理(PaCoRe)中的应用。