NLP高频面(22)deepseek论文中的的GRPO训练原理、和PPO相比有哪些改变,这些改进有什么作用¶
本文讨论了大模型强化学习对齐阶段常用的近端策略优化算法PPO存在的问题,以及DeepSeek论文中提出的改进策略优化方法GRPO的训练原理、与PPO的差异和在大模型对齐中的实践效果。关键要点包括:
PPO存在的问题:大模型的强化学习对齐阶段常采用PPO算法,但该算法需训练额外的价值网络,增加了内存和算力开销,也给训练稳定性带来挑战。
GRPO的核心思想:去掉PPO中的价值网络,通过对群组样本的相对比较评估策略优劣,降低计算资源占用,简化训练过程。
GRPO与PPO的差异:在价值评估方式、优势函数计算与稳定性、模型结构与计算开销、策略更新的约束与正则化、奖励反馈的利用方式等方面存在显著差异。
GRPO的训练效率与资源占用:引入GRPO后,RLHF阶段的内存和算力开销显著降低,提升了模型最终性能,样本效率也得到提升。
GRPO的训练稳定性和收敛性:GRPO能够稳定训练大模型并取得良好的收敛效果,减少了潜在的不稳定因素,通过剪切与KL的双重护航保证训练稳定。
GRPO的对齐效果与模型性能:GRPO在任务性能提升、格式和风格对齐、减少不良行为、自我进化能力等方面表现出色。
GRPO的样本利用和收敛速度:GRPO使用相对较少的训练step就实现了模型性能的飞跃,高效地利用了每个prompt的多重样本信息。
大模型的强化学习对齐(RLHF)阶段常采用近端策略优化算法PPO(Proximal Policy
Optimization)来优化模型,使其输出更符合人类偏好。然而,PPO在大模型上的应用也暴露出一些问题,例如需要训练一个额外的价值网络(critic)来估计策略的价值,这不仅增加了内存和算力开销,也给训练稳定性带来了挑战。在近期的DeepSeek论文中,研究者提出了一种改进的策略优化方法GRPO(Group Relative Policy Optimization,群体相对策略优化)。GRPO通过引入“群体比较”的思想,避免使用单独的价值网络,显著简化了算法结构,并提升了训练效率和稳定性。本文将深入剖析GRPO的训练原理,与PPO的异同,以及这些改进在大语言模型对齐实践中的效果。
PPO方法的简要回顾¶
为了更好地理解GRPO,我们先简要回顾PPO的原理。PPO是深度强化学习中常用的策略梯度算法,它属于Actor-Critic框架:包含一个策略模型(actor)和一个价值函数模型(critic)。在RLHF情境
下,策略模型就是我们的语言模型,价值模型用于估计给定输入下策略的预期奖励(通常是由人类偏好训练的奖励模型给出的分数)。PPO通过反复采样交互数据并更新策略,实现让模型产出更高奖励的输出。
PPO的核心在于重要性采样和剪切(clipping)机制。策略梯度的目标是最大化期望奖励 $ J(\theta) = \mathbb{E}[R] $,其梯度由策略梯度定理给出: $ \nabla_{\theta} J = \mathbb{E}{s,a \sim \pi(a|s) A(s,a)\right] $,其中 $ A(s,a) $是优势函数(advantage),表示执行动作 $ a $比平均策略表现好多少。优势通常通过基线(baseline)技术降低方差,例如 $ A = R - b(s) $, $ b(s) $可以取状态价值 $ V(s) $。在PPO中, $ A(s,a) $通常使用广义优势估计(GAE)进行计算,以结合多个时间步的奖励和价值估计,从而平衡偏差和方差。}}}}\left[\nabla_{\theta} \log \pi_{\theta
为了稳定训练,PPO不直接使用 $ \nabla \log \pi_{\theta} A $更新,而是采用旧策略 $ \pi_{\theta_{\text{old}}} $作为参考,通过重要性比值 $ r_t(\theta) = \frac{\pi_{\theta}(a_t|s_t)}{\pi_{\theta_{\text{old}}}(a_t|s_t)} $来重加权优势。PPO引入了裁剪(clipping)策略:限制这个比值的变化幅度不超过一定范围 $ [1 - \epsilon, 1 + \epsilon] $。具体来说,PPO定义了一个剪切替代损失函数:
$ L_{\text{PPO-policy}}(\theta) = \frac{1}{T} \sum_{t=1}^{T} \min \left( r_t(\theta) \hat{A}_t, \text{clip} \left( r_t(\theta), 1 - \epsilon, 1 + \epsilon \right) \hat{A}_t \right) $,
其中 $ \hat{A}{t} $是用GAE计算的优势估计。这个损失(取负号变为需要最大化的目标)保证了当策略更新导致 $ r $偏离1太多时,只按截断的比值计算梯度,从而避免单步更新幅度过大。这类似于信赖域限制,保证新旧策略不会相差太远,提高了训练的稳定性。
此外,PPO的完整目标通常还包括熵正则项(鼓励策略输出的熵以增加探索)以及价值函数损失。价值网络通过最小化 $ \mathcal{L}{\text{value}} = \frac{1}{T} \sum_t (V\theta(s_t) - R_t)^2 $来拟合实际回报 $ R_t $,提升对优势的估计精度。策略损失、价值损失和熵正则分别加权后共同构成PPO的总目标函数。公式上:
$$ \begin{array}{r}{L_{\mathrm{P P O-t o t a l}}(\theta)=L_{\mathrm{P P O-p o l i c y}}(\theta)\;-\;c_{H}H(\pi_{\theta})\;+\;c_{V}\frac{1}{T}\displaystyle\sum_{t}(V_{\theta}(s_{t})-R_{t})^{2},}\end{array} $$
其中 $ H(\pi_{\theta}) $是策略的熵, $ c_{H} $和 $ c_{V} $为权重超参数。在实践中,通过调节这些项,PPO在各种任务上表现出良好的稳定性和样本效率。
然而,对于大语言模型的RL对齐任务,PPO也面临一些挑战:首先,价值网络通常需要与策略模型同等规模(或者在策略模型上添加一个同规模的值头),这使得训练内存和计算开销几乎翻倍。其次,当奖励信号只在完整答案结束时给出(比如人类偏好打分或答案正确与否),要训练一个精确的逐步价值评估模型非常困难,价值函数可能收敛缓慢或者产生偏差。再次,策略模型和价值模型的联合训练增加了算法复杂度,要同时保证策略改进和价值估计这两个过程的收敛。另外,在RLHF中还需要引入对参考策略(例如未对齐的初始模型)的KL惩罚,防止模型过度偏离原有分布而产生不符合常识的文本,这进一步复杂了算法调试。基于这些原因,研究者开始探索能否有一种更简单高效的替代算法。
GRPO的核心思想与算法机制¶
GRPO(群体相对策略优化)应运而生。DeepSeek团队提出GRPO的初衷,就是去掉PPO中的价值网络,直接通过对群组样本的相对比较来评估策略优劣,从而大幅降低计算资源占用,并简化训练过程。GRPO的关键创新在于:用同一输入下多次采样的平均表现作为基线(baseline),计算每个输出相对于这个基线的优势,从而指导策略更新。这样一来,无需训练一个额外的价值函数估计,直接利用采样得到的奖励信息就完成了优势估计。
具体来说,GRPO针对每一个给定的输入(比如一个用户问题或提示),不再只生成一个答案,而是让当前策略一次生成N个不同的候选输出,形成一个“群组”。这些输出可以看作是策略在该状态下可能采取的不同“行动”。然后,利用奖励模型或奖励函数对这N个输出分别评分,得到每个输出的奖励值 $ R_{i} $( $ i=1,2,\ldots,N $)。有了这组奖励,GRPO将该组内部的平均奖励作为基线,相对于此基线来衡量每个输出的优势 $ ^{**} $。如果某个输出的得分高于平均值,则优势为正,表示比平均水平好;反之若低于平均值则优势为负。
GRPO常进一步对奖励进行标准化处理,计算归一化优势(类似于z-score):例如对于第i个输出,计算群组奖励的均值 $ \mu_G = \frac{1}{N} \sum_{j=1}^N R_j $和标准差 $ \sigma_G = \sqrt{\frac{1}{N} \sum_j (R_j - \mu_G)^2} $,然后定义:
$$ A_{i}=\frac{R_{i}-\mu_{G}}{\sigma_{G}+\epsilon}, $$
其中ε是一个很小的数防止除零(例如1e-4)。这个Ai i就是第ii i个输出的优势值。标准化的好处是将优势缩放到大致相同的尺度,使不同群组的梯度信号更加平衡,避免某些输入因奖励绝对值较大对总体梯度产生过大影响。直观来看,AiA_i Ai表示该输出高出(或低于)群体平均水平几个标准差。
利用上述优势,GRPO就可以像策略梯度那样更新策略参数。为了充分利用采样的N个结果并保持更新的稳健性,GRPO借鉴了PPO的框架,同样使用旧策略作为参考,通过重要性采样比值和剪切限制进行多步更新。具体训练流程如下:
采样群组: 在每次策略更新迭代中,先将当前策略模型参数记为θ_{old}(旧策略),然后针对训练集中的每个输入问题,用π_{0}_{old}各采样生成N个输出构成群组{r1,r2,...,rN}。例如,上述示例中,对于一个数学题,模型可能生成4种不同解答。N的取值可以依据任务需求和计算预算来定,在DeepSeek的实现中,有时N非常大以获得精确的基线估计。
奖励评估:使用预先训练的奖励模型或设定的奖励函数对群组中的每个输出rii打分,得到奖励Ri。在RLHF中,奖励模型通常是由人类偏好数据训练的一个模型,输入完整对话/答案输出,产生一个分值表示人类喜好。DeepSeek论文中为了提升效率,直接使用规则奖励代替了神经网络奖励模型,例如判断答案的准确性(正确或错误)和格式(是否符合要求的思考过程标签),给出二进制或定量的分值
【注:这种规则奖励在他们的任务中效果很好,避免了训练复杂的奖励模型】。无论奖励来源如何,我们得到RiR_iRi后即可计算群组平均奖励μG\mu_GμG和标准差σG\sigma_G,进而算出每个输出的优势Ai。
- 策略梯度计算:有了优势 $ A_i $,我们希望增加那些优势为正(表现超过平均)的输出的概率,减少优势为负的输出概率。这可以通过增加输出概率的对数乘以优势来实现,类似于REINFORCE算法中的 $ \nabla \log \pi \cdot (R - \text{baseline}) $。但直接用当前策略 $ \pi_\theta $采样的数据对 $ \pi_\theta $自身做梯度,会引入偏差。为此,GRPO同样使用重要性采样校正:利用之前冻结的 $ \pi_{\theta_{\text{old}}} $来采样,这些数据对于新策略 $ \pi_\theta $来说是离线数据,我们通过比值 $ r_i(\theta) = \frac{\pi_\theta(r_i \mid \text{prompt})}{\pi_{\theta_{\text{old}}} (r_i \mid \text{prompt})} $将梯度从旧策略校正到新策略。对每个输出 $ r_i $,定义其剪切后增益为:
$$ g_{i}(\theta)=\min\left(r_{i}(\theta)A_{i},\text{clip}\left(r_{i}(\theta),1-\epsilon,1+\epsilon\right)A_{i}\right), $$
其中ε是剪切阈值超参数(例如0.2),用来限制\(r_i\)的变化幅度。这个表达与PPO的剪切损失形式类似:当\(\pi_\theta\)试图大幅提高不该提高的动作概率或降低不该降低的动作概率时(导致\(r_i\)超出$[1-\epsilon,1+\epsilon]%),就只按边界值计算优势,防止策略走得太远。然后,我们对所有采样的输出取平均得到GRPO的策略优化目标:
$$ L_{\mathrm{c l i p}}^{\mathrm{G R P O}}(\theta)=\frac{1}{N}\sum_{i=1}^{N}g_{i}(\theta). $$
这是GRPO对应的剪切替代目标,它和PPO的区别在于优势Ai的来源不同:这里Ai来自群组内部比较,而PPO中At来自价值函数估计。注意:这里我们是从每个输入的角度描述,对于训练中的整个batch,会对每个问题的群组各自计算Lclip,然后求平均。
KL惩罚约束: 除了限制新旧策略变化幅度,DeepSeek还强调了参考策略(reference)的作用。参考策略一般取未经过强化学习调整的初始模型(比如SFT后的模型或基座模型),代表模型原有分布。引入参考策略的KL散度惩罚,是RLHF中常用的手段,可以防止模型为了追求奖励而生成偏离人类语言风格或常识的怪异输出。具体做法是在目标函数中加入一项KL距离:计算新策略πθ\pi_\theta和参考策略πref\pi_{text{ref}}\piref在同一输入下输出分布的KL散度,并施加一个权重β\beta加以惩罚。GRPO没有将KL惩罚“混入”奖励或优势中(那会让优势计算更复杂),而是直接在损失中加入这一项。因此,GRPO的完整优化目标可以表示为:
$$ \begin{array}{r}{L_{\mathrm{G R P O}}\left(\theta\right)=L_{\mathrm{c l i p}}^{\mathrm{G R P O}}\left(\theta\right)-\beta D_{\mathrm{K L}}\Big(\pi_{\theta}\left(\cdot\middle|\mathrm{p r o m p t}\right)\big\vert\big\vert\pi_{\mathrm{r e f}}\left(\cdot\middle|\mathrm{p r o m p t}\right)\Big)}\end{array} $$
这里DKL(P // Q)表示两个策略在当前输入下输出分布的KL散度,β是KL惩罚系数超参数。因为我们希望最大化奖励目标但最小化与参考的KL,因此在需要最小化的损失函数上,上式的第二项带负号(或者等价地,把它作为正则项加到损失里)。在实现中,常常将每个token的对数概率与参考策略对应对数概率之差累加,得到整个序列的KL。如果β $ \beta $取适当的值(或自适应调整),这项约束会缓和模型分布移动过快的问题,使强化学习过程更加平稳可控。
值得注意的是,KL惩罚在PPO的RLHF实践中也扮演重要角色。OpenAI等的实现通常将“奖励模型打分减去一个β倍的KL”作为新的优化目标,即在每个样本的最终奖励中扣除与参考策略的KL分值。GRPO在理念上是相同的,只是明确地把它作为损失一部分来处理,从而避免干扰优势的计算。这样做简化了算法推导,同时也能达到约束效果。
策略更新:有了上述目标函数,接下来就是计算梯度并更新策略参数θ。通常采用小批量梯度下降(如Adam优化器)对LGRPOL进行多轮迭代优化。在每个数据批次上,我们计算各输入的群组优势和损失,对θ求梯度并累积,然后执行优化步。因为引入了重要性采样和剪切,我们可以对同一批采样数据进行多次策略更新而不会引入太大偏差,就像PPO中会对一批轨迹更新多epoch那样。这提高了样本效率。在每次大轮次更新完毕后,可以重新设定θ_{old}←θ,然后再次采样新数据进入下一个迭代循环。如此循环往复,直到策略收敛或达到预定步数。
重复迭代:GRPO持续进行上述循环:采样群组 -> 计算优势 -> 优化策略,不断提升模型性能。与传统的PPO类似,为了稳定训练,通常会控制每次更新幅度(例如通过较小的学习率、限制每批次更新次数等),并监控KL散度。如果发现新策略与参考策略的KL偏离预期太多,可能动态调整β\beta或者提早停止更新,确保模型不会跑偏。
通过上述机制,GRPO实现了一个“没有价值网络的PPO”:仍然保持了PPO的很多优点,如小步更新(剪切保障)、重要性采样无偏、KL正则稳定,以及利用策略梯度直接优化奖励模型分数。但GRPO摒弃了价值函数近似,转而用群组平均回报直接作为基线,从而省去了训练critic网络的开销和不确定性。可以看到,在GRPO中优势函数AiA_i Ai的作用非常直观:凡是比平均水平好的输出都得到正优势、差的得到负优势,然后策略倾向于产生更多好的、少产生差的。这种群体相对比较的方法,与人类反馈的本质不谋而合——我们评判一个回答好坏,往往是相对比较而非绝对打分。事实上,人类偏好模型本身通常是用成对比较数据训练的(例如“回答A优于回答B”),那么GRPO直接在每个prompt上做类似的组内比较,保持了奖励评价的相对性,从理论上讲更符合奖励模型的特性。
GRPO与PPO的差异分析¶
从以上描述可以看出,GRPO和PPO虽然同为策略优化算法,但在理论和实现上有显著差异。下面我们围绕关键方面进行对比分析:
价值评估方式:这是两者最大的区别。
PPO:使用了单独的价值函数(critic)V(s)来评估给定状态的预期回报,作为优势计算的基线。价值网络需要与策略同时训练,来逼近真实的回报。这带来了额外的模型参数和训练难度。尤其在语言模型任务中,reward通常只在整段输出结束时给出,想准确分配到每个中间状态/token的价值并不容易,训练一个高质量的价值函数需要大量试错和调参(比如选择合适的GAE折扣因子等)。
GRPO: 完全摒弃了价值函数,不再进行状态价值估计。取而代之的是通过群组采样计算一个经验基线: 即该prompt下模型输出的平均得分。这实际上等价于用Monte Carlo方法估计了这个状态的价值: 如果N足够大, μG\mu_GμG会接近于真实的E[R | s]。因此Ri-μG就类似于Ri-V(s)的作用,只不过不需要学习V(s)。GRPO用简单的采样平均实现了价值减Baseline, 大幅降低了实现复杂度。可以说, GRPO是回归到了策略梯度最初的REINFORCE范式, 但通过大量采样降低了方差。这样的选择在过去由于采样效率限制或算力不足不太常见, 而如今在大模型训练中可以接受较大的并行采样, 这使得不用价值网成为可能。
优势函数计算与稳定性:¶
PPO:优势A^t\hat{A}_tA^t通常通过GAE累积多步奖励和值预测得到。这种方式在序列决策任务(如游戏或机器人)中表现优秀,但在语言模型场景,输出序列很长、中间没有明确的逐步奖励信号时,GAE的优势计算会退化为最后一步奖励减值函数,即A^=R-V(s),并没有多复杂。不过,即便如此,价值函数V(s)V(s)V(s)的引入仍提供了降低方差的效果,使得每一步梯度不会直接受回报的高方差影响。PPO借助critic,使得即便N=1(每状态采一条轨迹)也能有一个合理的baseline来减小梯度方差。
GRPO:由于没有critic,为降低方差它采取了“以数量取胜”的策略:在每个状态(prompt)采多个样本来近似计算优势。N值越大,μG\mu_GμG越接近真实期望回报,优势估计越准确,梯度方差越低。当然,如果N太小,优势估计可能噪声很大,从而使训练不稳定。DeepSeek为保证效果,在某些实验中据称使用了非常大的N(例如上千),以尽可能得到稳定的baseline。现代GPU/TPU的并行采样能力使得一次针对上千种输出评分成为可能,这是以前难以做到的。另一个降低方差的措施是对优势进行了标准化(除以σG\sigma_GσG),这让不同prompt的优势分布更稳定。实践表明,这样的基线减除+标准化处理,使得不借助价值网络也能取得稳定的梯度信号。实际上,REINFORCE早期研究就指出:理想的baseline就是状态的价值函数。PPO用一个神经网络去逼近这个理想baseline;而GRPO干脆用充分采样来直接得到近似真实的baseline。这两条路分别代表用“学习”还是用“计算”来解决方差问题,各有侧重。
模型结构与计算开销:¶
PPO:模型结构较复杂,需要四个模型实例在协同工作:策略模型(actor),价值模型(critic),奖励模型(RM),以及参考策略模型(用于计算KL)【在一些实现中,策略和价值可以共享底层参数但仍视作两个头】。价值模型通常与策略模型参数量相当,这意味着训练和推理时内存和算力几乎翻倍。同时,多模型训练也需要谨慎的超参数调节以平衡actor和critic的学习速度,否则两者不匹配会造成训练震荡或发散。
GRPO:大幅简化了模型组件。在RL阶段只需要三个模型:策略模型、奖励模型和参考模型¶
(reference)。其中奖励模型在DeepSeek-R1-Zero中甚至被用规则所取代,不需要梯度更新;参考模型保持冻结。唯一需要训练更新的只有策略模型。这削减了接近50%的显存和算力占用(因为不再有一个同等大小的价值模型反向传播)。对资源敏感的大模型训练而言,这是巨大的优势。更少的模型也意味着代码实现更简单、需要调整的超参数更少(例如无需调整价值损失权重、无需考虑价值延迟更新等问题)。据DeepSeek团队报告,引入GRPO使他们能够在相同资源下进行更大规模的强化学习迭代,让模型有机会通过纯RL获得惊人的推理能力。
策略更新的约束与正则化:¶
PPO:通过剪切操作保证新旧策略不会有剧烈差异,这是它稳定性的核心来源之一。PPO通常也加入熵奖励以鼓励探索从而避免策略过快收敛到次优解。另外在RLHF中,一般会在每个token的奖励中纳入KL惩罚(或者在损失中加入KL项),以确保输出不过度偏离参考模型。这些约束使PPO能够在复杂空间中稳定前进,但也引入了一定的调参开销(例如熵系数、KL系数等)。
GRPO:沿用了剪切机制,因此在每次更新幅度控制上和PPO一致,都属于一种近似的信赖域方法。熵奖励在GRPO中可以不显式加入,因为群组多样采样本身已经获取了多种不同输出(等价于策略的探
索行为),模型可以在这些样本中比较好坏,无需再人为鼓励随机性。事实上,DeepSeek在GRPO目标中没有使用熵项。KL约束方面,GRPO显式地在损失中加入了新策略与参考策略的KL散度正则,而且不是通过改变奖励而是直接加到目标函数上。这一点我们在上节提到,目的是避免影响优势计算,同时实现约束效果。PPO和GRPO在KL惩罚的处理上思路一致,只是实现位置略不同。因此,可以认为GRPO相对于标准PPO并没有减少任何必要的正则约束,反而因为整体框架更简单,可以更明确地加入正则项而不会干扰其他部分。总而言之,GRPO以最小的结构实现了和PPO等价的约束手段:剪切保证更新稳定,KL保证输出不偏,探索则通过群组采样固有实现。
奖励反馈的利用方式:¶
PPO:属于绝对评价方式,价值网络试图学会每种状态的“绝对”好坏程度,策略依据这个近似绝对值去提高期望回报。对于任务分布很广泛的语言模型来说,一个统一的价值函数要胜任各种话题和任务的评价,可能会比较吃力,有时会出现泛化不佳的情况。
GRPO:采取相对评价思路,通过组内比较让模型知道谁比谁好。这种相对优势更贴近人类偏好模型的训练方式(排名比较),因此优势函数的定义与奖励模型的训练目标是契合的。这意味着当奖励模型给出的评分具有一定的相对意义时(比如只关心谁高谁低,不要求绝对标定准确),GRPO比PPO更直接地利用了这种信息。可以认为GRPO每次更新都在进行一场“小型竞赛”:让模型的多个输出互相比试,然后奖励赢家、惩罚输家。模型由此不断改善,力求下次产生的输出能够打败此前自己的平均表现。这种自我竞争的机制有助于模型逐步逼近最优策略,而且在不同任务上都适用,因为比较是局部的,不要求跨任务的统一价值尺度。
实现复杂度与调参:¶
PPO:实现需要处理多个网络的训练,编程和调试工作量较大。超参数较多,包括学习率、批大小、GAE的λ\lambda 和γ\gammamax、剪切阈值ε\epsiloniloc、价值损失权重、熵权重、KL权重等等。尤其是价值网络的训练速率需要仔细调整以配合策略网络,否则可能出现价值函数滞后或过快跟随的问题,影响策略梯度估计的准确性。
GRPO:实现相对简单单一,没有价值网络部分。优势计算通过简单的张量操作(均值和标准差)即可完成,不需要反向传播训练价值头。这样超参数也减少了:GAE的 $ \lambda $ $ \lambda $mbda $ \lambda $不再需要,价值损失权重没有了,熵项可以不要。剩下的主要是 $ \epsilon $ $ \epsilon $plone(剪切范围)和 $ \beta $ $ \beta $(KL权重)以及学习率这些基本的训练参数,与PPO本身大同小异。可以说GRPO更接近策略梯度的原始形式,开发者思考的主要就是策略本身的优化,而不用兼顾一个辅助价值预测任务。这降低了实施大规模RLHF的门槛。
综上,GRPO相较PPO用更简单直接的方式达成了策略优化的目标。它最大的代价是在每个状态采样更多样本来换取优势估计的可靠,但这在可以并行的大模型训练中通常是可以接受的(比如并行生成16个以上的回复)。而它带来的好处是显而易见的:资源减半、实现简洁、稳定性不减反增。当然,PPO作为经过大量实践检验的方法,其价值网络在一些场景下能提供更快的值估计更新,这可能在特别高稀疏奖励的任务上有用武之地。而在语言模型对齐这种每轮都有丰富文本输出、可生成大量样本的任务中,GRPO的思路显然更契合实际需求。
GRPO在大模型对齐中的实践效果¶
DeepSeek-R1系列模型的实验结果展示了GRPO在大语言模型RL对齐上的突出效果。以下是GRPO改进对齐阶段性能的几个方面分析:
(1)训练效率与资源占用:引入GRPO后,由于不需要训练价值网络,RLHF阶段的内存和算力开销显著降低。这使得研究者可以用相同的GPU资源跑更多的训练step或者使用更大的batchsize/更多样本,从而提升了模型最终性能。DeepSeek-R1-Zero模型在纯RL下训练数千步,得益于GRPO节省的一半算力,他们能够将更多计算用于扩大量化(例如一次采样上千个候选)、增加训练轮次,这对于最终策略的打磨十分关键。更高的计算利用率意味着样本效率的提升:同样数量的人机交互数据,通过GRPO可以更充分地被利用(因为能跑更多更新或更充分采样)。据报道,DeepSeek采用GRPO的方案,相比想象中用PPO+价值网络的传统方案,整体训练开销节省近一半。这样的效率提升对于需要长时间RL训练的大模型(亿级参数以上)来说具有颠覆意义。
(2)训练稳定性和收敛性:实验表明,GRPO能够稳定训练大模型并取得良好的收敛效果。
(2)训练稳定性和收敛性:实验表明,GRPO能够稳定训练入模型并取得良好的收敛效果。DeepSeek-R1-Zero是一个未经监督微调、直接用RL训练的模型,一开始模型对任务几乎是一窍不通,但通过大规模GRPO训练,模型的推理能力显著涌现,最终在数学、代码等复杂推理任务上逼近甚至超越了一些商业模型。这种从零开始纯RL训练在以前几乎难以想象,一个重要原因就是PPO这种方法在缺乏预训练策略的情况下很可能会发散或者学不到东西,而GRPO在稳定性上的改进帮了大忙。具体来说:
无价值网络带来的稳定:减少了一个潜在的不稳定因素。价值网络有时可能发散(尤其是在奖励高稀疏或延迟的情况下),会拖累整个训练。而GRPO直接用真实奖励计算优势,省去了价值收敛性的问题,只要奖励信号本身稳定可靠,策略梯度就会相对稳定。在DeepSeek中,采用确定性的规则奖励(比如对错、格式)进一步保证了奖励的清晰稳定,也帮助GRPO顺利进行。
剪切与KL的双重护航:DeepSeek训练过程中实时监控策略与参考的KL散度,使之保持在合理范围;剪切限制每次更新幅度。这两个手段控制下,虽然模型一开始随机输出各种解答,其中很多很差,但每一步更新都循序渐进地提高模型行为,没有发生梯度爆炸或策略崩溃的情况。最终曲线显示模型的奖励在持续上升且波动较小,收敛趋势良好。相比之下,假如使用PPO,价值网络不稳可能导致优势估计时好时坏,更容易出现训练震荡。GRPO避免了这个隐患。
探索与开发平衡:GRPO通过群组采样天然地保留了一定的探索性——每次都会尝试生成多种不同风格的回答,并根据相对表现调整策略。这种机制下模型不会陷入某个局部策略而缺乏多样性,因为如果模型输出变得太单一,群组内几乎没有更差或更好的对比,更新信号反而变弱,促使模型再去尝试其他可能性。可以理解为GRPO有一种内在的“熵”来源维持探索。实验中发现DeepSeek-R1-Zero在训练前期输出五花八门,有正确的也有荒谬的,但随着训练进展,输出逐渐收敛到高质量的轨迹——这说明探索充分且改进方向正确。
(3)对齐效果与模型性能:最终采用GRPO训练的模型在对齐指标上表现出色。模型对齐效果可以从几个方面来看:
任务性能提升:DeepSeek-R1在多项推理基准上达到甚至超过了OpenAI同规模模型(OpenAI-o1)的水平,例如数学推理正确率大幅提高。这表明GRPO成功地让模型学会了在复杂任务上给出合理的过程和答案,模型能够对齐到任务需求(比如正确解题、正确编程)的程度甚至不输于用大量人类数据加持的模型。
格式和风格对齐:由于奖励设定了对…推理过程和…答案格式的要求,GRPO训练后模型几乎100%按照这种格式回应问题,实现了对输出格式的严格对齐。相比之下,传统RLHF需要在SFT阶段用很多演示数据才能让模型掌握格式,而DeepSeek在无监督数据的情况下,通过GRPO也能达到类似效果。这
凸显了强化学习在细节行为对齐上的威力:只要定义明确的奖励信号,GRPO可以引导模型满足这些精细要求。
减少不良行为: 虽然后续论文更多关注的是推理能力,但可以推测,假如将人类偏好(如礼貌、避开有害内容等)融入奖励模型,GRPO同样能够有效对齐模型行为。例如将有害输出给予负的奖励,那么群组中这些输出的优势为负,新策略会降低它们的概率。因此GRPO对齐模型价值观、语气等偏好与PPO+RLHF的效果应该是一致的。在DeepSeek实验中,跳过SFT直接RL并未导致模型输出难以控制,部分原因就在于GRPO的KL约束和明确的奖励规则防止了怪异行为的产生,模型依然遵循基本语言常识,只是在指定方向上优化。
自我进化的能力:一个有意思的现象是,GRPO训练过程中模型会自发涌现许多复杂的技能,例如工具使用、反思和改进答案的能力等。这在DeepSeek-R1-Zero的训练记录中有所提及:模型在持续自我对抗(相对奖励推动)下,逐渐学会了长链推理、自我检查等高级推理策略。可以说,GRPO框架为模型提供了一个自我提升的环境:每轮都挑战自己的平均水平,长期来看模型不断刷新“个人纪录”。这种自我进化使模型获得了高质量、人类很难完全手工标注的推理模式,极大地提高了对齐后模型的智能水平。PPO等方法理论上也能产生类似效果,但GRPO简单直接的奖励驱动、无价值网络束缚,更容易让这些行为快速出现。
(4)样本利用和收敛速度:在DeepSeek实验中,尽管使用了巨大的模型和海量计算,但他们观察到收敛速度还是相对较快的。跳过有监督微调直接RL,有人可能担心模型需要大量互动才能学会基本行为。然而,GRPO使用相对较少的训练step就实现了模型性能的飞跃。一方面,这要归功于DeepSeek预训练的优秀基础模型(DeepSeek-V3-Base)提供了通用语言能力;另一方面,GRPO高效地利用了每个prompt的多重样本信息。传统PPO每个prompt通常产生一两个trajectory用于更新,而GRPO一来就挖掘了每个prompt更多的“信息量”(一次看N个可能结果的好坏),因此单步更新获取的梯度信息丰富,对参数调整方向的指引更明确。有人做过对比实验发现,在类似的任务上,用GRPO可以在更少的训练迭代内达到与PPO相当甚至更高的回报。这说明在样本效率上GRPO并不逊于PPO,尽管表面上它每轮需要更多样本,但这些样本产生了更多训练信号,实际总样本开销可能相近甚至更省。
需要指出的是,GRPO的效果也依赖于奖励设计的合理性。DeepSeek之所以能成功,很大程度上由于他们精心设计了可自动判别对错的奖励函数,避免了“奖励模型偏差”带来的陷阱。如果奖励模型本身不可靠,比如存在偏导向错误的高分,那么无论PPO还是GRPO都会把模型带偏。但在相同的奖励信号下,GRPO因为没有价值网络的干扰,往往能更直观地反映奖励好坏,从而迅速对策略进行纠偏。正如DeepSeek团队所发现的,他们尝试用纯RL逼近甚至超越需要大量人工反馈的数据集的效果,而GRPO正是支撑这一尝试的核心武器。
(5)拓展和开源影响:GRPO的提出引起了业界广泛关注,许多开源项目开始尝试复现和改进这一算法。例如清华大学AIR和字节跳动近期发布了一个名为DAPO的算法(解耦剪切与动态采样策略优化),据称是在GRPO基础上的改进版,可以更高效地训练LLM。在他们的报告中,同样规模的模型使用DAPO训练在数学基准上得分明显高于GRPO,用的步数还减少了一半。这进一步验证了GRPO路线的潜力——通过探索群体采样和更新策略的改进,可以持续提高RLHF的效率。作为首个证明价值网络可弃用的大模型RL算法,GRPO开辟了新的方向。后续研究者将在其基础上优化采样策略、剪切机制等,使RL对齐成为更可控、高效的过程。