CS336 · 第 16 课

RLVR:基于可验证奖励的强化学习

当数学答案、代码执行或形式证明可以被程序重复检查时,policy optimization 可以直接使用 verifier reward。RLVR 降低了逐条人工偏好标注的依赖,但 verifier 仍是有覆盖边界、可被利用的 proxy。

授课:Tatsu Hashimoto 预计用时:80 分钟 难度:中等 → 较高

Spring 2026 官方来源:Lecture 16 PDF · 课程日程

本页是中文学习导读;讲次主题、教师与材料版本以 Stanford 官方页面和讲义为准。

本讲问题:当任务答案可以被程序、测试或形式规则验证时,奖励不必依赖主观偏好模型;新的问题转为怎样采样、比较和更新,同时避免模型利用 verifier 漏洞。

30 秒知识地图

可验证任务 → rollout sampling → verifier reward → group-relative advantage → policy update → 分析 exploration、reward hacking 与泛化。

问题与 prerequisite refresher

Policy 给完整 response 一个概率;rollout 是从 policy 采样的一条轨迹;verifier 把结果映射为 reward;advantage 衡量“比 baseline 好多少”。RLVR 的关键不是奖励绝对客观,而是某类结果可以低成本、可重复检查。

从题目到更新

prompt
  ↓ current policy samples G responses
responses → verifier → rewards
                     ↓ group baseline / normalization
                  advantages
                     ↓ clipped / KL-regularized objective
                 updated policy

verifiable outcome ≠ verified reasoning path
group-relative advantage ≠ correctness probability

4 条 rollout 的 group-relative 信号

奖励为 [1,1,0,0],均值 0.5;简单中心化 advantage 为 [0.5,0.5,-0.5,-0.5](实际实现还可除标准差)。正 advantage 提高对应采样序列的相对概率,负 advantage 降低。若四条奖励全相同,组内信号为零:不是 loss 出 bug,而是当前 group 没有提供可比较 variation。

反例:答案可验证,不代表过程可靠

数学 final answer 正确可能来自猜测、格式 exploit 或 verifier 漏洞;代码通过公开 tests 也可能 hard-code cases。RL 会放大 reward 能区分的行为,不会自动优化 verifier 看不见的 honesty、readability 或 robustness。因此需要 hidden tests、格式隔离、难度 curriculum 与独立评估。


动机:RLHF 的局限

第 15 课学习的 RLHF 是 alignment 的主流方法,但有几个根本性局限:

局限表现影响
主观性不同标注者有不同偏好Reward model 有噪声
成本高需要大量人类偏好数据难以规模化
Reward hacking模型学会欺骗 reward model实际质量未提高
不可验证无法自动检查 reward 是否正确难以调试
规模瓶颈高质量偏好标注与 reward model 迭代rollout inference、verifier coverage 与可验证任务供给

核心洞察:如果结果能被低成本、可重复地程序化检查,就可以把这个检查器直接放进 rollout→reward→update 闭环。数学 final answer、代码 tests 与 proof checker 是常见例子;它们只保证各自检查到的属性。


什么是 RLVR?

定义

RLVR = Reinforcement Learning from Verifiable Rewards。它使用可由程序重复检查的结果属性构造奖励,而不是依赖逐条人类主观判断;“可验证”只覆盖 verifier 实际检查的属性。

可验证奖励的例子

领域任务验证方式
数学解方程检查最终答案是否匹配 ground truth
代码写函数运行单元测试
逻辑推理谜题检查推理链条是否符合逻辑规则
形式化证明证明定理Lean/Coq 验证器检查证明
算法实现算法测试输出是否正确
# RLVR 的核心循环:

for prompt in batch:
    # 1. 模型生成 response(可能包含推理过程 + 答案)
    response = model.generate(prompt)

    # 2. 从 response 中提取答案
    answer = extract_answer(response)

    # 3. 用验证器检查答案
    reward = verifier.check(answer, ground_truth)
    # reward = 1 if correct, 0 if wrong

    # 4. 构造相对信号;baseline/normalization 是 estimator 的一部分
    advantage = reward - baseline
    loss = -log_prob(response) * advantage  # 仅为单样本 policy-gradient 示意
    loss.backward()

真实 GRPO 会对同一 prompt 的多条 rollout 构造 group-relative advantage,并按 handout 指定的 token/sequence aggregation、ratio、clipping 与 regularization 更新;上面只展示 verifier signal 如何进入 policy gradient,不是可提交实现。

RLVR vs RLHF 对比

维度RLHFRLVR
奖励来源人类偏好或由其训练的 reward model程序、tests、答案检查器或形式 verifier
奖励性质常为学习得到的连续 proxy常为离散或规则化 proxy,不等于完整真值
可扩展性受限于标注人力可自动化、规模化
适用任务开放式(写作、对话)封闭式(数学、代码)
Reward hacking可能利用 reward model 偏差可能利用 parser、公开 tests 或 verifier coverage 漏洞
主要边界标注质量、偏好分布与 reward model 泛化任务是否可验证,以及 verifier 实际覆盖什么

RLVR 的局限:不是所有任务都有可验证的奖励。开放式任务(创意写作、对话、主观问答)仍然需要 RLHF 或其他方法。RLVR 和 RLHF 是互补的,不是替代关系。


GRPO:群组相对策略优化

背景

GRPO (Group Relative Policy Optimization) 是 DeepSeek-R1 使用的算法,是 PPO 的简化版本:

核心思想

PPO 的 advantage 估计需要 value model:
A(s, a) = R(s, a) - V(s)
其中 V(s) 需要额外训练一个 critic network

GRPO 的 insight:
对同一个 prompt,生成 G 个 responses
用这 G 个 responses 的平均 reward 作为 baseline

例: prompt = "Solve x + 3 = 7"
response 1: "x = 4" → reward = 1 (正确)
response 2: "x = 5" → reward = 0 (错误)
response 3: "x = 4" → reward = 1 (正确)
response 4: "x = 3" → reward = 0 (错误)

baseline = mean(rewards) = (1 + 0 + 1 + 0) / 4 = 0.5
advantages = rewards - baseline = [0.5, -0.5, 0.5, -0.5]

直觉: 比平均好的 response 被强化,比平均差的被抑制

GRPO 的数学形式

GRPO 的 loss 函数:

对每个 prompt q:
1. 用旧 policy π_old 生成 G 个 responses: {o_1, o_2, ..., o_G}
2. 计算每个 response 的 reward: {r_1, r_2, ..., r_G}
3. 计算 baseline: b = mean(r_1, ..., r_G)
4. 计算 advantage: A_i = (r_i - b) / std(r)
5. 计算 policy ratio: ρ_i = π_θ(o_i|q) / π_old(o_i|q)
6. 计算 clipped loss:

L = -1/G × Σ_i min(ρ_i × A_i, clip(ρ_i, 1-ε, 1+ε) × A_i)
+ β × KL(π_θ || π_ref)

注意:
- 与 PPO 类似,但 baseline 来自组内均值而非 value model
- KL 惩罚仍然需要 reference model (π_ref)

GRPO 的优势

优势说明
无需 Critic减少一个模型的计算和内存
组内相对信号同一 prompt 的 rollouts 直接形成相对比较;标准差归一化会改变题目权重,并非保持无偏性的任意 baseline
工程简化移除 critic 的训练与存储;稳定性仍要由 group diversity、loss aggregation、learning rate 与 rollout policy 实测
易于实现比 PPO 代码更简洁

官方 2026 的关键警告:z-score 不是“免费的无偏 baseline”

从 policy-gradient identity 看,可以减去不依赖当前 action 的 state-dependent baseline 而保持期望梯度;但 vanilla GRPO 还除以组内标准差。这个除法会按 group difficulty/variance 重新加权问题,官方 Lecture 16 明确提醒它不保持一般意义下的 unbiased gradient。Dr. GRPO、leave-one-out/RFT 与不同 length normalizer 正是在修正或研究这些隐含权重。

On-policy 与 off-policy:rollout 来自谁

对象On-policyOff-policy / reused rollout
Behavior policy产生 rollout 后立即用于当前更新,接近 current policyrollout 来自旧 policy 或另一 behavior policy
主要收益distribution mismatch 较小,目标更直接复用昂贵的生成结果,提高 sample/compute reuse
新问题生成慢、训练与 serving framework 切换、长 CoT 造成 batch 不均需要 importance ratio / clipping 等修正,并管理 bias、variance 与 policy lag

官方 Lecture 16 的系统重点是 on-policy rollout 很昂贵;off-policy estimator 的实现细节在 Assignment 5 v2.0.1 中进一步展开。本页只建立两者的对象边界。


DeepSeek-R1 的方法

概述

DeepSeek-R1 是 RLVR 的里程碑工作,展示了纯强化学习可以让模型自发学会推理能力:

DeepSeek-R1-Zero:纯 RL

DeepSeek-R1-Zero 的训练流程:
1. 从 DeepSeek-V3-Base 开始(纯预训练模型)
2. 使用 GRPO 算法
3. 奖励信号:
- 数学: 检查最终答案是否正确
- 代码: 运行测试用例
- 推理: 格式正确性 + 答案正确性
4. RL 训练中观察到更明显的行为:
- Chain-of-thought(链式推理)
- Self-verification(自我验证)
- Reflection(反思和纠错)

关键发现:
R1-Zero 没有先用针对这些行为的 cold-start SFT;论文报告它们在可验证奖励驱动的 RL 过程中得到强化。这个观察不等于证明预训练模型从未见过相似文本模式。

涌现的推理行为

在 RL 训练过程中,研究人员观察到模型自发发展出高级推理策略:

行为描述涌现时间
CoT生成中间推理步骤早期
Self-verification检查自己的推理过程中期
Reflection发现错误后重新推理中期
Aha moment"Wait, let me reconsider..."后期

"Aha Moment":论文展示了一个中间 checkpoint 在 RL 训练中出现更长反思段落的案例,例如停下来重新检查推理。更稳妥的结论是:R1-Zero 没有用 cold-start SFT 直接示范这类行为,而 RL 过程强化了它们;这不是对全部预训练数据来源的排除性证明。

DeepSeek-R1 的完整流程

DeepSeek-R1 (非 Zero) 的训练流程:

Stage 1: Cold Start
- 收集数千个高质量 CoT 样本
- SFT DeepSeek-V3-Base
- 目的: 给 RL 一个好的初始化

Stage 2: RL (推理导向)
- 用 GRPO 训练
- 奖励: 答案正确性 + 格式正确性
- 专注数学、代码、推理

Stage 3: Rejection Sampling + SFT
- 用 Stage 2 的模型生成大量样本
- 过滤(只保留正确的 + 格式好的)
- 混合通用数据做 SFT
- 目的: 恢复通用能力

Stage 4: RL (全场景)
- 再次 RL,但奖励包括:
- 推理任务的正确性
- 通用任务的有用性 (reward model)
- 目的: 同时提升推理和通用能力

奖励设计

# DeepSeek-R1 的奖励函数:

def compute_reward(response, ground_truth, task_type):
    if task_type == "math":
        # 1. 答案正确性
        answer = extract_answer(response)
        correctness = (answer == ground_truth)

        # 2. 格式正确性(是否使用了规定的格式)
        format_ok = check_format(response)  # e.g., "Answer: XXX"

        reward = float(correctness) + 0.1 * float(format_ok)

    elif task_type == "code":
        # 运行测试用例
        code = extract_code(response)
        tests_pass = run_tests(code, test_cases)
        reward = float(tests_pass)

    return reward

涌现的推理能力

Chain-of-Thought 的涌现

R1-Zero 没有先做 cold-start reasoning SFT;论文观察到更长的推理、检查与反思行为在 RL 过程中被强化。但这不证明 base model 的预训练数据从未包含 CoT,也不意味着所有 reasoning recipe 都不需要 SFT:

训练初期:
Q: "Solve x + 3 = 7"
A: "4" (直接回答,无推理)

训练中期:
Q: "Solve x + 3 = 7"
A: "x + 3 = 7, so x = 7 - 3 = 4" (开始出现推理)

训练后期:
Q: "Solve x + 3 = 7"
A: "Let me solve this step by step.
We have x + 3 = 7.
Subtract 3 from both sides: x = 7 - 3 = 4.
Let me verify: 4 + 3 = 7. Yes!
Answer: 4" (完整的 CoT + 验证)

为什么 RL 能涌现出 CoT?

准确边界:可验证奖励能够选择和强化有助于得分的长程行为;行为可能来自预训练已有能力、prompt elicitation 与 RL exploration 的共同作用。观察到 CoT 变长不等价于过程更忠实或泛化更强。


RLVR 的挑战

1. 奖励稀疏

在很多任务中,只有最终答案是对/错,中间步骤没有奖励:

问题: 数学题只有最终答案有奖励
模型可能通过"猜"得到正确答案
或者推理过程全错但答案碰巧对

缓解:
- 加入格式奖励(要求特定格式)
- 加入过程奖励(检查中间步骤)
- 多次采样取一致答案

2. 奖励设计困难

设计一个好的奖励函数并不容易:

3. 分布偏移

RL 训练可能让模型偏离预训练分布:

4. 计算成本

RL 训练比 SFT 昂贵得多:


RLVR 的未来方向

1. 更丰富的奖励信号

2. 扩展到更多领域

3. RLVR + RLHF 结合


知识检查

问题 1:RLVR 相比 RLHF 的主要优势是什么?

问题 2:GRPO 相比 PPO 的主要简化是什么?

问题 3:关于 DeepSeek-R1-Zero 中的推理行为,哪种表述最准确?

问题 4:RLVR 能完全替代 RLHF 吗?


Concept Check · 全组都正确

同一 prompt 的 4 条 rollout reward 都是 1,简单 group-centered advantage 是什么?这是否表示任务“学得最好”?

答案:全为 0;组内没有相对更新信号。它可能表示题太容易,而非继续提供强学习信号。

若答 advantage=1,你把 raw reward 当成了相对 baseline 后的 advantage。

你现在应该能够解释

通往第 17 课

到这里模型目标主要在文本 token 空间;下一课加入视觉输入,重新解决 representation、alignment、position 与 token budget 问题。

如果只能记住 5 件事

RLVR

程序化 verifier 提供可扩展 proxy,但 coverage 决定可靠性上限

GRPO

组内均值作为 baseline,去掉 value model

DeepSeek-R1

R1-Zero 无 cold-start reasoning SFT;RL 强化行为不证明其来源唯一

局限

只适用于封闭式任务,奖励设计有挑战


延伸阅读

Reference · 延伸阅读与一手资料