RL算法推导!PPO -> GRPO -> DAPO -> GSPO -> SAPO
在小说阅读器中沉浸阅读
原文:https://zhuanlan.zhihu.com/p/1986141224588027138
在DPO(Direct Policy Optimizatio)之后,后续的典型工作发展路线为:GRPO -> DAPO -> GSPO -> SAPO,在有PPO的理论推导基础后,这些论文的理论推导过程就会容易很多。
1. GRPO 相比PPO的改进有哪些?
首先PPO的优化目标为:
GRPO的优化目标:
其中
其采用组采样的方式和基于规则的reward函数,也能够像DPO仅加载两份模型,即Actor和参考文献 Model,从而在训练参数量比较大的模型时,有效降低显存的占用,好坏样本的覆盖程度则依赖于Rollout过程,当Rollout采样的过程足够多时,可以假设它能够覆盖大部分情况。
从上述角度来讲,想要覆盖大部分case的数据组织成本,要比DPO小很多,个人猜测是目前GRPO系列方法比较流行的一个原因,该方法的核心在于组采样。但在实际训练时,比较耗费时间的为Rollout阶段。
2. DAPO 相比GRPO的改进有哪些?
其优化目标如下:
其中 和前面保持一致,其不同地方则用红色显示,如下为DAPO的具体改进点:
归一化系数(对应论文中的Token-Level Policy Gradient Loss): 这里采用全局token系数进行归一化,使得在处理组内长度回复差异较大时,梯度会更稳定点。
非对称裁剪(对应论文中的Clip-Higher): 更精细地控制策略的更新程度。
Dynamic Sampling: 直接丢弃掉采样后奖励值为0或1的样本, 当组内所有采样结果相同时,此时按照上式计算得到的优势为0,即不能带来有效梯度更新。刚开始训练时,会有较大可能出现组内奖励值全0的情况,训练阶段后期,则会有较大可能出现组内奖励值全1的情况,为了提升Rollout阶段的采样效率,直接选择丢弃奖励值为0或1的样本。
Overlong Reward Shaping: 该改进并没有在DAPO的优化目标中体现,在GRPO训练时可能会出现当Rollout输出达到预先设置的最大长度时,仍没有输出有效结果,此时计算的奖励值为0。为了降低模型输出时的思考长度,则在输出长度方面,增加一个对应软惩罚:
3. GSPO 相比GRPO有哪些改进?
优化目标如下:
其中
该优化目标相比GRPO,仅改变了重要性采样的系数,其相比GRPO采样系数用的是整条句子的概率情况,而不是单token概率,这点对于MoE模型RL训练十分有帮助。
对于单token概率,可能存在Rollout Engine和 Model Engine选择的专家路由差异,因此往往需要通过Routing Reply机制来确保两种Engine在同样的样本选择的路由保持一致。
一个稍微有意思的点,在LLM进行预训练时,需要观察模型在训练预料的PPL(文本困惑度)是否呈现出下降趋势,PPL的公式与上述公式极为相似,对于一个序列
其困惑度的定义如下:
将PPL的定义带入 则有 ,对于正样本,希望 较大,即对应到 减小, 增大。
4. SAPO 相比GRPO和GSPO有哪些改进?
其优化目标如下:
其中
其相比GRPO将clip操作替换为上述软控制,其具有如下特点:
• token级别的软信任区域,token级别具有更细的控制力度。
• 非对称温度设计,对于正负token则采取不同的操作。
Reference
1. DeepSeekMath(GRPO): https://arxiv.org/pdf/2402.03300 2. DAPO: https://arxiv.org/pdf/2503.14476 3. GSPO: https://arxiv.org/abs/2507.18071 4. SAPO: http://arxiv.org/pdf/2511.20347