GRPO (Group Relative Policy Optimization)

参考文献

Papers

  1. DeepSeekMath_ Pushing the Limits of Mathematical Reasoning in Open Language Models

  2. Understanding R1-Zero-Like Training_ A Critical Perspective

  3. DeepSeek-R1_ Incentivizing Reasoning Capability in LLMs via Reinforcement Learning

从PPO到GRPO

其中分别是当前和旧的策略模型,是从问题数据集和旧策略采样的问题和输出,通过公式来计算,其中有公式,我们需要额外训练一个Critic模型来对进行拟合

PPO的问题有:

  • PPO 中使用的值函数通常是与策略模型大小相当的另一个模型,这带来了显著的内存和计算负担
  • 此外,在 RL 训练期间,值函数被用作方差缩减的baseline,而在 LLM 的上下文中,奖励模型通常只为最后一个 token 分配奖励分数,这可能会使为每个 token 精确训练值函数变得复杂

image

所以提出GRPO!

针对每一个问题,生成多个回答,而对于每一个时刻的基准值而言,不再采用Critic模型去预测,而是由这一组中平均水平来充当

其中的KL散度通过一种特定的无偏估计器去计算:

结果监督

对于每个问题 ,从旧策略模型 中采样一组输出 。随后使用奖励模型对这些输出进行评分,得到相应的 个奖励值

结果监督在每个输出 的末尾提供归一化后的奖励,并将该输出中所有 token 的优势函数 设置为该归一化奖励,即:

过程监督

结果监督仅在每个输出的末尾提供奖励,这在处理复杂的数学任务时,对于监督策略可能是不充分且低效的

过程监督,它在每个推理步骤的末尾提供奖励

给定问题 个采样输出 ,使用过程奖励模型对输出的每一步进行评分,得到相应的奖励:

其中 是第 步结束时的 token 索引, 是第 个输出的总步骤数,我们也使用平均值和标准差对这些奖励进行归一化,即:

随后,过程监督将每个 token 的优势函数计算为后续所有步骤归一化奖励之和,即:

在实际的大模型对齐的流程中,往往两种策略进行混合使用,即保证大模型能够在大方向上建立起奖励感,又能够在中间逻辑上进行正确的推理

整体的算法如下图所示:

image

Dr. GRPO

此处我们采用使用了结果监督的GRPO,我们认为此时的GRPO中存在着两个偏置:

image

  • 回答级长度偏差:这源于公式中除以了 (回答长度),

    • 对于正优势(回答正确):长度越短,分母 越小,梯度更新幅度越大,这会导致模型在正确答案中偏好短回答
    • 对于负优势(回答错误):长度越长,分母 越大,惩罚力度反而被稀释了,这会导致模型在错误答案中偏好长回答
  • 问题级难度偏差:这源于除以了标准差 ,在组内得分标准差很小的情况下(例如题目太简单或太难,大家得分都是 1 或 0),该项会极大增加更新权重,这导致不同难度的题目在优化过程中权重不均

所以,提出Dr. GRPO:

在GRPO的语境下,我们通常最大化如下目标函数的值:

其中 是轨迹 的回报, 表示回复 中第 个 token 的 token 级奖励

对其求梯度得:

下面对于的无偏性进行证明:

通常,我们将基准值设置为未来累积奖励的期望(即状态价值函数),并令 为优势函数

在结果奖励的情况下,未来的累积奖励直接简化为总回报

在GRPO语境下,应该设置 ,那么:

根据上述式子,将其放置于PPO的语境下,同样有:

上面计算的 在忽略缩放因子的前提下,等价于 REINFORCE Leave-One-Out (RLOO) 的估计值: