GRPO 算法如何工作?
未标记
考查重点:组内相对优势与策略更新。同题采样多份回答,以组内相对奖励估优势,再受约束地更新策略;不必另训价值网络
本题目录
参考答案
核心回答
GRPO(Group Relative Policy Optimization,组相对策略优化)是一种训练语言模型的强化学习方法:对同一个问题采样多份回答,用组内奖励的相对差异估计优势,再更新生成策略。它沿用 PPO 类的受约束策略更新,但不需要额外学习一个价值函数来估计基线。
按原始的结果奖励形式,一轮训练可以概括为:
- 用采样时的旧策略,对每个问题生成一组回答。
- 用规则或奖励模型评分,将每份回答的分数与同题组内均值比较,并按组内标准差归一化,得到相对优势。
- 计算当前策略与旧策略的 Token 概率比,用裁剪目标限制过度更新;原论文还加入相对参考策略的 KL 惩罚。
- 通过梯度更新模型,再用更新后的策略采样,继续训练。
它省掉的是 critic 的学习与相关开销;多回答采样、奖励计算和策略训练仍然需要资源。GRPO 是参数训练算法,不是推理时让多个答案投票。
组内比较怎样变成训练信号?
设同一问题采样 G 份回答,各自奖励为 r_i。在结果奖励的经典形式中,每份回答的优势为:
A_i = (r_i - 组内平均奖励) / 组内奖励标准差
正优势表示相对本组更好,负优势表示相对更差。它们影响更新方向,不是“答案正确的概率”。在这种形式下,一份回答里的生成 Token 共用同一个结果优势;这提供了整段回答的学习信号,但没有精确指出每一步推理是否正确。过程奖励则可以提供更细粒度的信号。
例如,假设同一题生成 4 份回答,奖励为 [0, 0, 1, 1]。按总体标准差计算,均值为 0.5,标准差为 0.5,优势就是 [-1, -1, 1, 1]。如果实现使用样本标准差,具体数值会不同,正负方向相同。
若整组全对或全错,奖励完全一样,中心化后的差值为零,组内奖励就没有区分信号。实现通常还要处理零标准差,例如加入数值稳定项;单加一个很小的分母,不能凭空创造区分能力。若仍启用 KL 等其他项,它们可能继续产生更新,不能据此说整个训练一定停止。
裁剪目标和 KL 各约束什么?
对某个已生成 Token,在同样的问题与前序 Token 条件下,定义:
rho = 当前策略给该 Token 的概率 / 采样旧策略给它的概率
策略收益项 = min(rho * A, clip(rho, 1-epsilon, 1+epsilon) * A)
最大化这个收益项时,正优势倾向于增加相应输出的概率,负优势倾向于降低;裁剪去掉了某些继续扩大概率变化的收益。例如 A=1、rho=1.5、epsilon=0.2 时,该项取 min(1.5, 1.2)=1.2。负优势也必须连同 min 一起理解,不能只把概率比截断后乘优势。
裁剪是对优化目标的处理,不是把模型的所有概率硬限制在某个区间,也不保证每步更新严格满足一个 KL 上限。
旧策略与参考策略承担不同角色:旧策略说明这批回答是怎样采样出来的,用于概率比;参考策略是所选的行为参照,KL 项惩罚当前策略偏离它。两者可能在某个时刻相同,但不因此成为同一个概念。原始 GRPO 对生成 Token 的收益与 KL 项按回答长度、再按组聚合;工程变体可以采用其他归一化方式。
奖励怎样设计,才不会学偏?
奖励决定模型真正优化的目标。数学题可以检查最终答案,代码题可以执行测试;开放式任务也可以结合经过校准的模型或人工偏好信号。GRPO 并不要求一定训练一个神经奖励模型。
DeepSeek-R1-Zero 的原论文使用正确性与格式等规则奖励。这说明可验证任务能够提供自动反馈,但格式合格与内容正确仍应区分;只奖励标签、长度或表面特征,模型可能学会满足规则,却没有提高任务质量。
同时要看任务与采样难度。若大多数分组始终全错,增加优化步数也未必有有效信号;可以检查奖励程序、问题难度、采样多样性和初始模型能力。组大小增加可能带来更多可比较回答,也会增加生成与评分成本,不能假设越大越好。
原论文和现成 Trainer 为什么可能不同?
“支持 GRPO”不代表实现的每个细节都与原论文一致。要看奖励是否按组标准差缩放、损失怎样按 Token 或回答长度归一化、是否使用 KL、每批样本更新几次,以及截断回答怎样处理。
例如,TRL main 文档列出 loss_type="grpo"、"dapo" 等选项,并说明默认可以不启用 KL;ms-swift 也区分按样本、Token 或固定长度归一化。比较实验时应写清实际版本与配置,不能把某个框架默认值当成 GRPO 的定义。原始按回答长度归一化还可能引入长度偏置,后续变体针对这些问题作了调整。
常见追问
与 PPO 的核心区别是什么? 常见 actor-critic PPO 借助学习到的价值函数估计优势;GRPO 用同题多个回答的奖励构造组内基线,省去价值函数训练。裁剪更新仍有共同思想,奖励和采样的组织方式也影响最终行为。
与 SFT、DPO 有什么不同? SFT 直接学习给定示范回答;DPO 通常使用偏好对优化策略;GRPO 在训练中由当前或近期策略生成回答,经奖励反馈迭代更新。它仍需要问题、奖励规则或其他监督信号,不能理解为“完全不需要数据”。
奖励上涨就证明模型变强了吗? 还要在独立任务上检查正确性、泛化、输出长度与奖励漏洞。训练奖励上涨可能只说明更会满足当前奖励规则,应结合可验证结果判断。
参考资料
- 国内:DeepSeek-AI:DeepSeekMath:依据 §4.1 的组内优势、Token 概率比、裁剪目标与 KL 正则,组织正文中原始 GRPO 的更新过程及其与 PPO 的区别。
- 国内:DeepSeek-AI:DeepSeek-R1:采用 §2.2.1~2.2.2 的推理训练与正确性、格式奖励示例,说明正文中 GRPO 算法与具体奖励设计的区别。
- 国内:ModelScope ms-swift 4.4:Loss Types:参考按回答、Token 和固定长度归一化的比较,解释正文中同一组优势对应不同损失缩放方式的原因。
- 国外:Schulman 等:Proximal Policy Optimization Algorithms:§3 的概率比与裁剪目标说明
min的作用,以及为什么裁剪是优化目标处理,不能当成硬性的策略距离保证。 - 国外:Hugging Face TRL:GRPO Trainer:依据优势计算、KL、Loss Types 和奖励缩放选项,说明正文中原论文与框架配置的区别,以及零方差组和长度偏置问题。
相关面经
14 篇字节跳动
大模型实习算法岗介绍一下 DPO , PPO , GRPO
科大讯飞
大模型算法工程师简单介绍GRPO算法
滴滴
大模型算法工程师详细介绍一下grpo算法
阿里巴巴(淘天)
大模型 AgentPPO和DPO在大模型对齐中的主要区别是什么?DPO训练通常有哪些注意事项?用过GRPO么?
阿里巴巴
大模型算法工程师GRPO相比传统强化学习方案做了哪些优化改进,其中KL散度损失如何计算实现?
展开剩余 9 篇面经
腾讯
大模型算法工程师讲一下 GRPO 原理
字节跳动
大模型算法工程师ppo grpo的具体原理以及区别
MiniMax
大模型算法工程师是否了解或使用过 GRPO 算法?
腾讯
大模型算法工程师讲一下 GRPO 原理
作业帮
AI 应用算法工程师GRPO有几个模型?损失函数知道吗?reference model具体的作用是什么?
京东
算法工程师(对话机器人)GRPO,PPO,DPO的算法原理
美团
Agent 算法工程师介绍下ppo dpo grpo算法
美团
大模型算法工程师讲一下ppo和grpo
OPPO
大模型讲一下grpo






