《CS336 Spring 2025 Lecture 16: RLVR》学习笔记

上节课讲到 RLHF 的两大致命问题——过度优化校准性丧失——这些问题让人类反馈的路越走越窄。人类偏好太嘈杂、太容易被 hack,很难支撑真正的规模化强化学习。

于是自然的思路是:既然 RL 在奖励明确、可自动验证的领域(如 AlphaGo、AlphaFold)已经大获成功,那能不能把同样的思想用到语言模型后训练上?把"人类喜不喜欢"换成"答案对不对"?这就是本节课的主题——基于可验证奖励的强化学习(RLVR, Reinforcement Learning from Verifiable Rewards),也就是驱动 o1、DeepSeek R1 这些推理模型爆发的核心技术。

PPO 为什么没人用

InstructGPT 提出的 PPO 方案在理论上很优美,但工业界几乎没有人真的用它。核心原因就一个字:复杂

PPO 需要同时维护三个大模型:策略模型、价值模型、奖励模型。价值模型和策略模型一样大,光是显存就翻了一倍。还有广义优势估计(GAE)模块、脆弱的逐 token KL 惩罚(数值不稳定时会裁剪到 0)。典型 PPO 的裁剪范围设置为 0.2,即允许新旧策略的概率比在 0.8 到 1.2 之间浮动——任何一个细节出错都会导致性能崩溃。

更根本的问题是:DPO 适合成对偏好数据,但数学、代码这些领域没有成对结构——一道题只存在"对"或"错",没有"回答 A 比回答 B 更好"这种偏好信号。所以 RLVR 的场景恰好是 DPO 的盲区,却是 RL 天然的主场。

GRPO:极简 RL 算法的崛起

GRPO(组相对策略优化)由 DeepSeek 在 2024 年提出,目标是去掉价值模型,用极简实现做 RL

核心思想

PPO 的裁剪机制和 KL 正则化都保留,但把复杂的广义优势估计替换成组内归一化的奖励。具体来说:对于每个问题(一个 group),采样 G 个回答,用这 G 个回答的奖励均值作为自然基线,奖励的标准差做归一化——这就是一个简单的 z-score。

优势计算Ai=rimean({r1,r2,...,rG})std({r1,...,rG})+1e4A_i = \frac{r_i - mean(\{r_1, r_2, ..., r_G\})}{std(\{r_1, ..., r_G\}) + 1e-4}

1e-4 是防止除零的数值稳定项。为什么均值是合理的基线?因为不同问题的难度差异很大,组内均值恰好捕获了"这道题是难是易"这个信息。

完整目标函数

TGRPO(θ)=E[1Gi=1G(min(πθ(oiq)πθold(oiq)Ai,clip(πθ(oiq)πθold(oiq),1ϵ,1+ϵ)Ai)βDKL(πθπref))]\mathcal{T}_{GRPO}(\theta) = \mathbb{E}\left[ \frac{1}{G} \sum_{i=1}^{G}\left(min \left(\frac{\pi_{\theta}(o_i | q)}{\pi_{\theta_{old}}(o_i | q)} A_i, clip\left(\frac{\pi_{\theta}(o_i | q)}{\pi_{\theta_{old}}(o_i | q)}, 1-\epsilon, 1+\epsilon\right) A_i\right)-\beta \mathbb{D}_{KL}\left(\pi_{\theta} \| \pi_{ref}\right)\right) \right]

改进的 KL 估计:使用控制变量技术降低方差

DKL(πθπref)=πref(oiq)πθ(oiq)logπref(oiq)πθ(oiq)1\mathbb{D}_{KL}(\pi_{\theta}|| \pi_{ref}) = \frac{\pi_{ref}(o_i | q)}{\pi_{\theta}(o_i | q)} - log \frac{\pi_{ref}(o_i | q)}{\pi_{\theta}(o_i | q)} - 1

GRPO 的优势是实质性的:核心代码不到 100 行,不需要价值模型,显存减半,训练稳定。在语言模型的上下文老虎机(Contextual Bandit)设定下表现优异。所谓上下文老虎机,是相对于完整 RL(有多步状态转移和环境探索)而言的简化设定:你得到一个输入(prompt),生成一个输出(action),立刻得到一个奖励(对/错)。没有状态转移,没有环境探索,不需要复杂的折扣回报计算。语言模型后训练恰好就是这个设定——每个 (prompt, response) 对独立判断对错,奖励只在序列末尾返回一次。

Dr. GRPO:两个数学缺陷与修正

2025 年的研究指出原始 GRPO 存在两个数学问题,导致了一些反直觉的现象:

缺陷一:除以标准差破坏了梯度无偏性

基线化只能减去与动作无关的项,除以标准差不在 Sutton & Barto 的理论框架内。这导致算法偏向优化太容易或太难的问题——这些问题的奖励标准差小(答案全对或全错时 std 接近 0),梯度被不当放大,减慢收敛。

缺陷二:长度归一化导致错误的长度激励

原始 GRPO 对奖励做了长度归一化,这造成了两个问题:

  • 正确答案:越短奖励越高 → 模型倾向于生成极短的正确答案
  • 错误回答:越长惩罚越小(因为长度归一化稀释了惩罚) → 模型答错时会生成极长的回答来"混过去"

这就是很多推理模型生成超长思维链(CoT)的根本原因——未必是"模型在努力思考",而是 GRPO 缺陷造成的激励扭曲。

修正方案(Dr. GRPO):去掉标准差归一化,仅保留组内均值基线;去掉长度归一化项。结果是奖励相当的情况下,输出长度稳定在合理水平,不会无限增长。

推理模型训练案例

DeepSeek R1

R1 是首个全面匹配 OpenAI o1 性能的开源模型,最大贡献是证明了基于结果的简单 RL 就足够实现顶级推理能力,不需要复杂的过程奖励模型(PRM)或蒙特卡洛树搜索(MCTS)。

R1 Zero(受控实验):在 DeepSeek V3 基础上,仅用二元准确性奖励 + 格式奖励(强制 CoT 在``标签内),纯 RL 就接近了 o1 的性能。训练过程中观察到的 CoT 长度持续增加和"啊哈时刻"(回溯现象),后续研究表明更多是 GRPO 缺陷导致的,而非高级能力的涌现——Dr. GRPO 的分析认为,长度增加是因为长度归一化激励答错的模型生成极长回答,"啊哈时刻"并非 RL 涌现的新行为,而是在基础模型中已经存在的能力被选择性强化。

完整 R1 流水线

  1. 长 CoT SFT 初始化:用少量高质量长思维链数据微调,解决 RL 冷启动。讲师透露,仅需约 1000 个高质量样本就能获得显著提升——其团队曾用 Gemini 2.0 Flash Thinking 的长 CoT 数据微调 Qwen 2.5,效果立竿见影。说明基础模型已经具备强大的思考能力,SFT 只是在提取这些能力。

  2. GRPO 强化学习:在 R1 Zero 基础上增加语言一致性奖励,防止 CoT 中混合多种语言。讲师指出,这是因为 RL 过程中模型天然倾向于语言混合,需要额外的奖励约束才能保持 CoT 可读性。

  3. 通用后训练:先做通用 SFT(结合推理和非推理数据),再用 GRPO 做 RLHF 对齐。

蒸馏是小蓝片中最大的惊喜:R1 生成的近百万条长 CoT 数据蒸馏到 Qwen 2.5 32B,在 AIME 上从 50% 提升到 75%,增幅超过 25 个百分点。这说明长 CoT 能力的跨模型迁移非常有效。

R1 论文最有价值的部分其实是它的"失败实验":过程奖励模型(PRM)和蒙特卡洛树搜索(MCTS)在语言推理领域都未能证明其价值。讲师点评说,虽然 PRM 在 DeepSeekMath 论文中被看好,但 R1 的结论否定了它——至少目前看来,结果奖励仍然是通往推理模型最有效的路径。

Kimi K1.5:工程优化的典范

Kimi K1.5 与 R1 几乎同时发布,性能相当,提供了另一种实现思路。

数据策展的三层过滤:第一层是领域平衡,用 LLM 自动标注问题所属领域,保证训练数据的多样性覆盖;第二层是难度过滤,只保留 SFT 模型"8 次尝试都不能答对"的问题,排除太简单的样本;第三层是题型过滤,排除选择题和判断题,防止模型通过随机猜测获得奖励。

原创 RL 算法:从 DPO 的非参数假设出发,用平方损失替代 Bradley-Terry 目标。本质是带基线的策略梯度 + 显式正则化,与 GRPO 是趋同进化的结果,天然没有 GRPO 的长度偏差问题。两者本质上是同一类算法的不同表达——都有策略梯度 + 基线化 + 正则化,区别只在于基线是均值还是别的统计量、正则化用裁剪还是 KL 惩罚。

主动长度控制:这是 Kimi 的核心创新之一。设计专门的长度奖励——正确回答时激励模型尽可能短,错误回答时保持中等长度(不鼓励用超长回答"混过去")。仅在训练后期开启,避免早期模型因答对率低而陷入"最短回答"的局部最优。结果是 CoT 长度稳定在目标值,大幅降低推理成本。

RL 基础设施:Kimi 是首个详细讨论 RL 系统问题的论文。采用训练-推理分离架构:用 vLLM 做 rollout,Megatron 做训练。实现中的核心难题是模型权重在训练进程和推理进程之间的同步——当前的做法是让 vLLM 加载虚拟权重(dummy weights),每轮迭代前用新权重覆盖旧权重,然后重启 vLLM 释放显存。这套流程相当 hacky,但目前工业界普遍如此。讲师预计一年内这套基础设施会更加成熟。

Qwen 3:低数据 RL 与推理可控性

Qwen 3 在 R1 和 Kimi 的基础上进一步优化,最令人惊讶的发现是 RLVR 的样本效率极高——仅用 3995 个高质量问题做 GRPO 训练,就获得了显著的推理性能提升。

数据策展:用 best-of-n 过滤难度(采样 n 次都不能答对才保留);做脱敏处理,去除与验证集过于相似的样本;长 CoT SFT 数据经过人工审核,排除那些"猜对了但思路不对"的样本。

最大创新:思维模式融合。实现单个模型同时支持思考模式和非思考模式,并在测试时灵活控制思考预算:

  • 用特殊标签``和<no_think>区分两种模式
  • 训练模型在收到<no_think>标签时直接输出答案,不经过长 CoT 推理
  • 支持思考过程提前终止:当思考长度达到用户设定的阈值时,模型输出"Considering the limited time of the user, I have to give a solution by thinking directly now"后接<nthink>标签和最终答案
  • 实现了优雅的性能-成本权衡:思考时间越长性能越高,用户可以根据需求自由选择

课程总结里提到的权衡:通用 RLHF 会轻微损害模型的数学和 STEM 能力,但显著提升通用任务和指令遵循能力。Qwen 3 的实验清晰地展示了这个 trade-off——在 thinking 模式下通用 RLHF 有害,在 non-thinking 模式下通用 RLHF 有益。这是推理模型普遍存在的难题。

课程总结

  1. RLVR 在数学、代码等可自动验证对错的领域,可以摆脱人类反馈的噪声和不可扩展性,让强化学习发挥全部威力
  2. GRPO 凭借极简实现已成为 RLVR 的主流算法,但原始版本存在长度偏差问题需要注意(Dr. GRPO 修正方案)
  3. 三个开源模型验证了一个通用的推理模型训练配方:长 CoT SFT 初始化 + 基于结果的 RL + 通用后训练
  4. 未来的核心方向是提升推理的可控性和效率,让用户可以灵活平衡性能和成本