DeepSeek的GRPO算法详解

什么是GRPO?

GRPO(Group Relative Policy Optimization,群体相对策略优化)是DeepSeek团队提出的一种强化学习(Reinforcement Learning, RL)算法,首次出现在2024年2月的论文《DeepSeekMath: Pushing the Limits of Mathematical Reasoning in Open Language Models》(arXiv:2402.03300)中。它是Proximal Policy Optimization(PPO)的改进变体,主要用于提升大语言模型(LLM)在数学推理、逻辑推理等复杂任务上的能力。

GRPO的核心创新在于放弃了传统的Critic模型(价值函数),转而通过组内相对奖励来计算策略梯度,从而显著降低计算开销和内存需求,同时保持甚至超越PPO的训练效果。

背景与动机

在传统的RLHF(Reinforcement Learning from Human Feedback)流程中,常用PPO算法进行对齐训练。PPO需要:

  • Actor模型(策略模型,生成响应)
  • Critic模型(价值模型,估计每个状态的价值基线)

Critic模型的训练和维护会带来额外的计算负担,尤其在长序列推理任务(如数学证明)中,内存占用很高。

DeepSeek团队在训练DeepSeek-Math时发现,Critic模型带来的收益有限,却显著增加了训练难度。因此,他们提出了GRPO:只用Actor模型,通过采样一组响应并进行组内相对比较来估计优势函数(advantage)。

GRPO的核心原理

GRPO的基本流程如下:

  1. 采样组响应
  • 对于同一个问题(prompt),使用当前策略模型采样多个响应(通常4~32个,形成一个“group”)。
  1. 奖励打分
  • 使用奖励模型(Reward Model,通常是基于人类偏好的二元比较或打分模型)对每个响应打分,得到奖励值 r1,r2,…,rKr_1, r_2, \dots, r_Kr1​,r2​,…,rK​(K为组大小)。
  1. 计算相对优势
  • 不使用绝对价值基线,而是直接用组内奖励的相对差异:
    • 优势函数 Ai=ri−1K∑j=1KrjA_i = r_i - \frac{1}{K} \sum_{j=1}^K r_jAi​=ri​−K1​∑j=1K​rj​(即当前响应奖励减去组内平均奖励)
  • 这样就无需Critic模型来估计价值基线。
  1. 策略梯度更新
  • 使用类似PPO的剪裁(clip)目标函数,但优势项直接来自组内相对奖励:

L(θ)=E[min⁡(πθ(a∣s)πθold(a∣s)A, clip(πθ(a∣s)πθold(a∣s),1−ϵ,1+ϵ)A)]L(\theta) = \mathbb{E} \left[ \min \left( \frac{\pi_\theta(a|s)}{\pi_{\theta_{\text{old}}}(a|s)} A, \ \text{clip}\left(\frac{\pi_\theta(a|s)}{\pi_{\theta_{\text{old}}}(a|s)}, 1-\epsilon, 1+\epsilon \right) A \right) \right]L(θ)=E[min(πθold​​(a∣s)πθ​(a∣s)​A, clip(πθold​​(a∣s)πθ​(a∣s)​,1−ϵ,1+ϵ)A)]

其中 AAA 为组内相对优势。
5. 可选的KL散度惩罚

  • 为防止策略偏离过远,通常还会加入KL散度项控制更新幅度。

与PPO的主要区别

方面 PPO GRPO
Critic模型 需要(估计价值基线) 不需要(用组内平均奖励代替)
优势估计 A=r+γV(s′)−V(s)A = r + \gamma V(s’) - V(s)A=r+γV(s′)−V(s) A=r−rˉgroupA = r - \bar{r}_{\text{group}}A=r−rˉgroup​
内存占用 高(需要存储Critic) 低(只用Actor)
计算效率 较低(Critic需要额外前向/反向传播) 更高(省去Critic训练)
适用场景 通用RLHF 特别适合长链推理、数学等需要多采样任务

优势与效果

  • 效率提升:训练时显存占用大幅降低,可支持更长的上下文或更大的批次。
  • 性能优异:在DeepSeek-Math中,GRPO使7B模型在GSM8K上达到88.2%、MATH上达到70.1%的准确率,显著超越同规模模型。
  • 后续应用:GRPO被广泛用于DeepSeek-R1系列(包括DeepSeek-R1-Zero和DeepSeek-R1),帮助模型在推理任务上达到甚至超越OpenAI o1系列的水平,成为当前开源推理模型的主流RL算法。

总结

GRPO是DeepSeek在强化学习领域的重要创新,通过“组内相对比较”巧妙地取代了价值函数估计,实现了更简单、更高效、更稳定的RL训练。它标志着从传统Actor-Critic架构向更轻量化的在线策略优化方向的转变,已成为训练高性能推理模型的关键技术之一。

GRPO就是PPO的轻量版,不用Critic模型,直接靠组内比较算奖励,省内存还高效,专治数学推理这种硬骨头!

GRPO是DeepSeek团队搞的一种强化学习算法,用来增强大模型在数学推理这类复杂任务上的能力。简单说,它不用传统的Critic模型,而是直接对比组内结果来估算策略梯度,省计算开销还保持了效果。感觉是把学习这事儿变得更高效了。用在DeepSeek的模型里,效果还不错,搞定了一些棘手的推理问题。说白了,就是个优化版的策略调整算法。

听起来好厉害啊!不用Critic模型就能搞强化学习,省内存还提升效率,DeepSeek团队真是会玩。不过数学推导部分看着有点晕,希望以后能有更简单的教程~

GRPO就是不用Critic的PPO改进版,直接拿一组响应互相比较算奖励。省内存还更高效,特别适合数学推理这种长序列任务。DeepSeek用它训模型效果贼好。

这种算法看起来挺有意思的。省掉Critic模型确实能减轻计算负担,不过组内比较会不会受采样偏差影响啊?DeepSeek团队在论文里提过优化方法吗?

GRPO听起来蛮酷的,省掉了Critic模型,直接用组内比较来优化,效率和内存都省了不少。挺适合长线程任务的嘛!

原来是PPO的改进版啊!不用Critic模型确实省资源,DeepSeek搞数学推理还挺有一套的。不过训练起来应该还是得烧不少卡吧?

GRPO啊,就是DeepSeek搞出来的新版强化学习算法,专门优化大模型数学推理能力的。比传统PPO省内存还高效,连Critic模型都不要了,直接靠组内响应互相比对来调整策略。他们做DeepSeek-Math的时候发现的秘诀,现在都用到R1系列模型里了,效果拔群!GSM8K直接干到88%正确率,牛哇!