DeepSeek-R1 剖析:无需强化学习先验知识,理解 PPO 和 GRPO
1. 引言
在强化学习(RL)中,仅仅知道“你得了多少分”通常是不够的。**单纯追求高分**可能导致各种副作用,例如过度探索、模型不稳定,甚至出现偏离合理策略的“捷径”行为。为了应对这些挑战,RL 引入了几种机制,例如评论员(价值函数)、Clip 操作、参考模型以及最新的组相对策略优化(GRPO)。
为了使这些概念更直观,让我们打个比方:**将 RL 训练过程想象成小学考试场景。**我们(正在训练的模型)就像是努力考高分的学生,批改试卷的老师就像奖励模型,而根据我们的分数给零花钱的父母则类似于评论员。接下来,让我们一步步探讨为什么**仅仅最终分数**是不够的,评论员、Clip 和参考模型如何发挥作用,最后 GRPO 如何扩展这些思想。
2. 仅仅使用奖励的天真方法:有什么问题?
假设我和弟弟在同一个小学班级。老师批改我们的试卷,给出“绝对分数”。我通常考 100 分以上,而我弟弟通常在 30 分左右。然后我们直接拿着这些分数去找爸爸要零花钱——这意味着我们的“奖励”(用 RL 术语来说)就是我们的原始考试分数。谁分数高,谁就得到更多的零花钱。
乍一看,这似乎没什么问题。但很快就出现了两个大问题:
- **不公平性**:如果我弟弟通过努力学习从 30 分提高到 60 分,他仍然无法与我通常的 80 多分相比。他得不到应有的鼓励。
- **不稳定性**:我自己追求更高的分数可能会导致我采取极端的学习方法(例如,通宵突击,熬夜)。有时我可能考 95 分,有时只考 60 分,所以我的分数——以及奖励信号——波动剧烈。
结果是,**使用绝对分数作为奖励**会导致奖励波动大,我弟弟最终觉得小幅进步不值得尝试。
数学对应关系
在强化学习中,如果我们只做
这意味着“只优化最终奖励”,我们可能会遇到高方差和对部分改进激励不足的问题。换句话说,Actor 缺乏一个与自身当前水平相匹配的**基线**,这会阻碍训练效率。
3. 引入评论员:使用“预测分数线”来改进奖励
认识到这个问题后,爸爸意识到**“这不仅仅是关于绝对分数,而是关于你相对于自己当前水平的进步程度。”**
所以他决定:
- 将我的“预测分数线”设为 80 分,我弟弟的设为 40 分。如果我们在考试中超过这些分数线,我们就会得到更多的零花钱;如果没有,我们就会得到很少或没有。
因此,如果我弟弟努力学习并从 30 分提高到 60 分,他比他的“预测分数线”高出 20 分,这意味着丰厚的奖励。同时,如果我保持在 80 分左右,增量收益会更小,所以我获得的奖励不一定会比他多多少。这种安排**鼓励每个人**从自己的基线出发进行改进,而不是纯粹比较绝对分数。
当然,爸爸很忙,所以一旦设定好分数线,它就不会一直保持不变——他需要随着我们的进步不断**“重新调整”**。如果我弟弟的水平提高到 60 分左右,那么 40 分的基线就不再公平了。同样,如果我一直徘徊在 85 分左右,爸爸可能也需要调整我的分数线。换句话说,**爸爸也必须学习**,特别是关于我和弟弟进步的速度。
数学对应关系
在强化学习中,这种“分数线”被称为**价值函数**,。它作为一个基线。我们的训练目标从“仅仅奖励”演变为“我们比基线超出多少”,用优势表示为
对于给定的状态 和动作 ,如果实际奖励超过评论员的预期,则表示该动作表现优于预测。如果低于预期,则该动作表现不佳。最简单的表述是,我们优化的是
通过减去这个“分数线”,我们减少了训练中的方差,对超出预期的动作给予更高的梯度信号,并惩罚那些表现不佳的动作。
4. 添加 Clip 和 Min 操作:防止过度更新
即使有了“分数线”,也可能出现新问题。例如:
- 如果我突然在一场考试中**突破**,考到 95 或 100 分,爸爸可能会给我一个巨大的奖励,促使我在下一次考试前采取过于激进的学习模式。我的成绩可能会在极端之间波动(95 分和 60 分),导致奖励波动巨大。
因此,爸爸决定限制我每一步学习策略的更新幅度——他不会因为我一次考得好就给我**指数级**的更多零花钱。如果给太多,我可能会走向极端探索;如果给太少,我就没有动力。所以他必须找到一个平衡点。
数学对应关系
在**PPO (Proximal Policy Optimization)** 中,这种平衡通过“Clip”机制实现。PPO 目标的核心包括:
其中
代表新旧策略在该动作上的概率比。如果该比率偏离 1 太远,它就会被截断在 范围内,这**限制了**策略在一次更新中能改变多少。
简单来说:
- 考 100 分会让我获得额外的奖励,但爸爸设定了一个“上限”,以免我得意忘形。他会在下一次考试中重新评估,保持稳定的方法,而不是助长极端的波动。
5. 参考模型:防止作弊和极端策略
即便如此,如果我只专注于高分,我可能会**采取可疑的策略**——例如,作弊或恐吓老师给我满分。显然,这违反了所有规则。在大型语言模型领域,类似的情景是生成有害或捏造的内容,以人为地提高某些奖励指标。
因此,爸爸又设定了一条规则:
- “无论如何,你都不能偏离你最初诚实的学习方法太远。如果你的表现与你的基线相差太远,即使分数很高,我也会取消你的资格并扣留你的零花钱。”
这就像在学期开始时(即初始监督微调之后)划定了一条**“参考线”**。你不能偏离原始策略太远,否则将面临惩罚。
数学对应关系
在 PPO 中,这通过对**参考模型**(初始策略)添加 KL 惩罚来体现。具体来说,我们包含类似
在损失中。这可以防止 Actor 偏离原始的、合理的策略太远,避免“作弊”或其他极端出格的行为。
6. GRPO:用“多个模拟平均值”取代价值函数
有一天,爸爸说:“我没时间一直评估你们的学习进度并划定新的分数线。为什么不先做五套模拟试卷,然后把它们的**平均分数**作为你的**预期分数**呢?如果你在真实考试中超过了这个平均分,就说明你表现超出预期,我会奖励你。否则,你就得不到多少。”我弟弟、我以及其他同学,都可以依靠一套个人模拟测试,而不是爸爸需要不断调整的外部“价值网络”。
到目前为止,我们已经看到 PPO 依赖于 Actor + Critic + Clip + KL 惩罚框架。然而,在大型语言模型 (LLM) 场景中,Critic(价值函数)**通常需要和 Actor 一样大**才能准确评估状态,这可能很昂贵,有时也不切实际——特别是当最终只有一个最终奖励时(例如最终答案质量)。
因此,**组相对策略优化 (GRPO)** 应运而生。其核心思想是:
- **没有独立的价值网络**作为评论员,
- 从旧策略中对相同问题或状态进行多次输出采样,
- 将这些输出的平均奖励作为基线,,
- 任何高于平均值的都产生“正优势”,任何低于平均值的都产生“负优势”。
同时,GRPO **保留了** PPO 的 Clip 和 KL 机制,以确保稳定、合规的更新。
数学对应关系
根据 DeepSeekMath 的技术报告,GRPO 目标(省略了一些符号)为
其中
通过对相同问题的多个输出来进行平均和归一化,从而计算出“相对分数”。通过这种方式,**我们不再需要专门的价值函数**,但仍然可以获得动态的“分数线”,从而简化训练并节省资源。
7. 结论:反思与展望
用小学的考试打比方,我们一步步从原始绝对分数,到PPO的完整机制(Critic、优势函数、Clip、参考模型),最后到GRPO(利用多个输出的平均分来消除价值函数)。以下是一些关键要点:
- Critic 的作用:为每个状态提供一个“合理预期”,显著降低训练方差。
- Clip & min 机制:限制更新幅度,防止对单一“突破性”考试反应过度。
- 参考模型:阻止“作弊”或极端偏差,确保策略与初始状态保持合理一致。
- GRPO 的优势:在大型语言模型中,它消除了对独立价值网络的需求,降低了内存和计算成本,同时与“比较式”奖励模型设计完美契合。
就像爸爸改用“让孩子们自己模拟多次考试,然后把他们的平均分作为基准”一样,GRPO 避免了维护一个庞大的 Critic,同时仍然提供相对奖励信号。它保留了 PPO 的稳定性和合规性特点,但简化了流程。
希望本文能帮助您自然地理解 PPO 和 GRPO。实际上,如果您对 Process Supervision 或 Iterative RL 等主题感兴趣,请关注我的博客以获取更多更新。