无需任何先验强化学习知识理解PPO和GRPO

Deepseek-R1解析:无需任何先验强化学习知识理解PPO和GRPO
译自:DeepSeek-R1 Dissection: Understanding PPO & GRPO Without Any Prior Reinforcement Learning Knowledge by Yihua Zhang.
引言
在强化学习(Reinforcement Learning, RL)中,仅仅知道“你得了多少分”往往是不够的。单纯追求高分可能会导致各种副作用,例如过度探索(excessive exploration)、模型不稳定(instability in the model),甚至会走偏离合理策略的“捷径”。为了解决这些问题,强化学习引入了多种机制——如Critic(value function)、Clip operation、Reference Model以及最近出现的组相对策略优化(Group Relative Policy Optimization, GRPO)。
为了使这些概念更加直观,让我们做一个类比:将 RL 训练过程比作小学考试场景。我们(正在训练的模型)就像学生,试图获得高分,评分我们的老师就像奖励模型(reward model),而根据我们的成绩发放零花钱的父母则类似于评论家(Critic)。接下来,让我们一步一步地分析为什么仅凭最终分数(final scores)是不够的,Critic、Clip和Reference Model是如何发挥作用的,以及 GRPO 如何扩展这些思想。
“仅使用奖励”有什么问题?
假设我和我的弟弟一起考试,老师批改我们的试卷并给出“绝对分数”。满分100的考试,我通常得 80 分以上,而我的弟弟经常只有 30 分左右。然后我们直接带着这些分数去找爸爸要零花钱——这意味着我们的“奖励”( reward, RL 术语)就是我们的原始考试成绩。得分越高的人得到的零花钱越多。
乍一看似乎合理,但有两个问题很快就会出现:
- 不公平:如果我的弟弟通过大量的努力从 30 分提高到 60 分,他仍然无法与我通常的 80+相比。他得不到他应得的鼓励。
- 不稳定性:我自己追求更高的分数可能会导致我采取极端的学习方法(例如熬夜)。那么,我可能有时 95 分,有时 60 分,我的分数(以及相应的奖励)会大幅波动。
因此,使用绝对分数作为奖励会导致奖励波动很大,长此以往,我的弟弟会感觉成绩上的小幅提高不值得尝试。
数学对应
在RL中,如果仅仅这样设定优化目标:
即直接学习使得
这意味着“仅优化最终奖励”,我们可能会遇到高方差和不足以促进部分改进的激励不足。换句话说,Actor缺乏与其当前水平相匹配的基线(baseline),这阻碍了训练效率。
引入Critic:利用“预测分数线”改进奖励
认识到这个问题后,爸爸意识到“绝对分数没有那么重要;真正重要的是你相对于当前水平提高了多少。”
因此他决定:
- 将我的“预测分数线”设定为 80 分,我弟弟的设定为 40 分。如果我们考试超过这些分数线,我们会得到更多的零花钱;如果没有,我们得到的钱就很少(或者没钱)。
因此,如果我的弟弟努力学习,从 30 分提升到 60 分,比他的“预测分数线”高出 20 分,这会带来丰厚的奖励。与此同时,如果我保持在 80 分左右,没有比预期分数线(也是80分)高多少,所以我得到的奖励比他少。这种安排鼓励每个人从自己的baseline出发进行改进,而不是仅比较绝对分数。
当然,这样做,爸爸就会很忙,分数线不是恒定的——随着我们的进步,他需要不断“调整(readjusting)”。如果我的弟弟提升到 60 分左右,那么 40 分的基准线就不再公平。同样,如果我一直徘徊在 85 分左右,爸爸可能也要调整我的分数线。换句话说,爸爸也必须学习,尤其应当学习“我和弟弟进步速度”(用来设定分数线)。
数学对应
在RL中,这个“得分线”被称为价值函数(value function),
对于给定的状态(state)
通过减去这个“得分线”,我们降低了训练中的方差,提高了超出预期的动作的梯度信号,并惩罚那些未达到预期的情况。
添加裁剪:防止过度更新
即使有“得分线”,仍可能出现新问题。例如:
如果我突然在考试中取得突破,得分 95 分或 100 分,爸爸可能会给我一个巨大的奖励,这会促使我在下一次考试前采取过于激进的学习模式。我的成绩可能会在极端值之间波动(95 分和 60 分),导致巨大的奖励波动。
因此,爸爸决定调整我每一步更新学习策略的幅度——他不会因为一次好成绩就给我指数级增加零花钱。如果给得太多,我可能会走向极端探索;如果给得太少,我可能就没有动力。所以他必须找到平衡点。
数学对应
在PPO(Proximal Policy Optimization,近端策略优化)中,这种平衡通过“裁剪”机制实现。PPO的核心目标包括:
更简单地说:获得 100 分可以获得额外奖励,但爸爸设定了一个“上限”,以免我获得过度奖励。然后他会在下一次考试中重新评估,保持稳定的方法,而不是助长极端波动。
参考模型:防止作弊和极端策略
即便如此,如果我只专注于高分,我可能会采取可疑的手段——例如作弊或恐吓老师给我满分。显然,这违反了所有规则。在大语言模型领域,一个类似的情况是产生有害或虚构的内容,以人为地提高某些奖励指标。
因此,爸爸设定了一个额外的规则:无论怎样,你都不能偏离你最初诚实的学习方法太远。如果你与基准相差太远,即使得分很高,我也会取消你的资格并扣留你的零花钱。
这就像从学期开始时就划定一条“参考线”(即初始的监督微调之后)。你不能偏离最初的战略太远,否则就会受到惩罚。
数学对应
在 PPO 中,这通过在参考模型(初始策略)上添加 KL 惩罚来体现。具体来说,把
GRPO:用“多个模拟平均”替换值函数
有一天,爸爸说:“我没有时间不断评估你的学习进度和画新的分数线。为什么不先做五套模拟测试,然后取它们的平均分作为你的预期分数呢?如果你在真实考试中超过这个平均分,那就说明你超过了自己的预期,我会奖励你。否则,你不会得到太多。”我和哥哥,以及更多的同学,可以各自依赖一套模拟测试,而不是一个爸爸需要不断调整的外部“价值网络”。
到目前为止,我们看到 PPO 依赖于 Actor + Critic + Clip + KL 惩罚框架。然而,在大语言模型(LLM)场景中,Critic(值函数)往往需要和 Actor 一样大才能准确评估状态,这可能会很昂贵,有时甚至不切实际——特别是如果你只有一个最终奖励(比如最终答案质量)。
因此,组相对策略优化(Group Relative Policy Optimization, GRPO)应运而生。它的核心思想:
- 没有为评价者设置单独的价值网络,
- 对同一问题或状态,从旧策略中采样多个输出,
- 将这些输出的平均奖励视为基线,
- 高于平均值的产生“正向优势”,低于平均值的产生“负向优势”。
与此同时,GRPO 保留了 PPO 的 Clip 和 KL 机制,以确保稳定、合规的更新。
根据 DeepSeekMath 的技术报告,GRPO 目标函数(省略部分符号)为
通过平均同一问题的多个输出并进行归一化来计算一个“相对分数”。通过这种方式,我们不再需要一个专门的价值函数,但我们仍然得到一个动态的“分数线”,这简化了训练并节省了资源。
结论:反思与未来展望
使用小学考试类比,我们逐步从原始绝对分数过渡到 PPO 的完整机制(评价者、优势、裁剪、参考模型),最终到 GRPO(利用多个输出的平均分数来消除价值函数)。以下是一些关键要点:
- 评价者的作用:为每个状态提供一个“合理的预期”,显著降低了训练方差。
- 裁剪与最小值机制:限制更新幅度,防止对单一的“突破性”考试过度反应。
- 参考模型:抑制“作弊”或极端偏差,确保策略与其初始状态保持合理的一致性。
- GRPO 的优势:在大语言模型中,它消除了对单独值网络的需求,降低了内存和计算成本,同时与“比较式”奖励模型设计高度契合。
就像父亲转而让孩子们自己模拟多次考试,然后将他们的平均值作为基准一样,GRPO 避免了维护一个庞大的Critic,同时仍然提供相对的奖励信号。它保留了 PPO 的稳定性和合规性特征,但简化了流程。
我希望这篇文章能帮助您自然地掌握 PPO 和 GRPO。在实践中,如果您对过程监督或迭代 RL 等主题感兴趣,请关注我的博客以获取更多更新。
- Title: 无需任何先验强化学习知识理解PPO和GRPO
- Author: Aroma
- Created at : 2025-06-24 00:00:00
- Updated at : 2025-06-24 00:00:00
- Link: https://recynie.github.io/2025-06-24/understanding-ppo-and-grpo/
- License: This work is licensed under CC BY-NC-SA 4.0.