☰
PPO与GRPO核心差异:省掉Critic后优势函数从哪来
2026/10/14 4:45:38 网站建设 项目流程

1. 从一道面试题说起:为什么“省掉Critic”会成为分水岭

面试里聊强化学习,早几年问PPO,面试官想听的是“重要性采样”“裁剪目标”“GAE怎么算”。现在再问PPO,很多面试官会顺口追一句:GRPO把Critic砍了,那它的优势函数到底从哪来?这个问题一抛出来,基本就能筛掉一批只会背公式的人。

我自己第一次被问到的时候,脑子里第一反应是“组内归一化嘛”,但真让我把“为什么去掉Critic还能算优势”讲清楚,我发现我讲得磕磕巴巴。后来我把PPO和GRPO的推导从头捋了一遍,又对着几套开源实现逐行读了一遍,才算把这条线彻底打通。这篇就按我当时的思路,把这个问题拆开讲透:PPO的Critic到底在干什么、GRPO为什么敢把它拿掉、拿掉之后优势从哪冒出来、以及面试里怎么答才能让面试官觉得你是真懂而不是背过。

先说清楚这篇适合谁看。如果你正在准备算法岗面试,尤其是大模型对齐、强化学习方向,这篇能帮你把PPO和GRPO的差异讲成一条逻辑链,而不是零散的知识点。如果你已经在做RLHF相关的训练,这篇能帮你理解GRPO在工程上省了什么、代价是什么、什么场景下该选它。哪怕你只是刚接触强化学习,我也会尽量用生活化的类比把核心概念讲明白,不堆公式。

核心关键词我先摆在这:PPO、GRPO、Critic、优势函数、组内归一化、GAE、重要性采样、KL约束。这几个词基本就是这道面试题的全部骨架,后面每一节都会围绕它们展开。

2. PPO里的Critic到底在忙什么

2.1 优势函数的本质:比平均好多少

要理解GRPO为什么能省掉Critic,得先搞清楚Critic在PPO里到底承担了什么角色。优势函数A(s,a)的定义其实很朴素:在状态s下,采取动作a,比在这个状态下“平均水平”好多少。好多少是正数,说明这个动作值得鼓励;是负数,说明这个动作应该被抑制。

问题就出在“平均水平”这四个字上。什么叫平均水平?理论上应该是状态s下的期望回报,也就是价值函数V(s)。但V(s)是未知的,你没法直接算出来,所以PPO的做法是:训练一个神经网络去估计它,这个网络就是Critic。

所以Critic的本质工作只有一个——估计V(s),然后配合奖励算出优势。它不直接决定策略怎么更新,但没有它,优势就算不出来,策略梯度就无从谈起。这就是为什么传统PPO里Critic和Actor是绑定的,两个网络一起训。

2.2 GAE:Critic参与的精细活

PPO里算优势最常用的方法是GAE(广义优势估计)。它的核心思想是把多步的TD误差加权求和,用一个衰减因子λ来平衡偏差和方差。公式大概长这样:

A_t = δ_t + (γλ)δ_{t+1} + (γλ)²δ_{t+2} + ... δ_t = r_t + γV(s_{t+1}) - V(s_t)

你看这个公式,每一步δ都依赖V(s)。也就是说,GAE算出来的优势,质量完全取决于Critic估得准不准。Critic估偏了,优势就偏了,策略更新方向就歪了。

这就带来两个现实问题。第一,Critic本身要训练,它需要大量样本才能收敛,训练早期它估的V(s)基本是噪声,这时候算出来的优势也不可信。第二,Critic和Actor是两个网络,参数量翻倍,显存和计算开销都上去了。在大模型场景下,Actor本身就已经是几十上百亿参数,再挂一个同等量级的Critic,成本非常可观。

提示:很多人以为PPO的难点在裁剪目标函数,其实工程上真正难调的是Critic。Critic学得太快会过拟合,学得太慢会拖累Actor,两者的学习率配比是个玄学。

2.3 Critic带来的三个工程痛点

我把Critic在实际训练里的痛点总结成三条,这三条也是GRPO想要解决的靶子。

第一是显存和算力开销。Actor加Critic,等于两份前向反向。如果Actor是70B,Critic通常也得是同等量级才能估得准,这一下显存就顶不住了。很多团队为了省资源,把Critic做小,结果就是估不准,训练不稳定。

第二是训练不稳定性。Critic的损失和Actor的损失是两个目标,它们会互相干扰。Critic更新太猛,V(s)抖动大,优势噪声就大;Actor更新太猛,策略分布变化快,Critic又跟不上。这种耦合让调参变得很痛苦。

第三是冷启动问题。训练最开始,Critic是随机初始化的,它给出的V(s)毫无意义。这时候算出来的优势基本是随机数,策略更新方向也就随机。虽然随着训练会慢慢变好,但早期这段“瞎走”的过程会浪费不少样本。

理解了这三条,你就能明白GRPO的动机不是“为了创新而创新”,而是针对Critic的工程痛点做减法。减法的思路很直接:既然Critic这么麻烦,能不能不训它,直接用别的方式估出优势?

3. GRPO的核心思路:用“组内比较”替代“价值估计”

3.1 一句话讲清GRPO在干什么

GRPO全称是Group Relative Policy Optimization,翻译过来就是“组相对策略优化”。它的核心动作可以概括成一句话:对同一个问题采样一组回答,用这组回答的奖励均值作为基线,算每个回答的相对优势。

你品一下这句话。PPO需要一个Critic来估计“平均水平”,GRPO直接用一个组内采样的奖励均值来充当这个“平均水平”。既然平均水平可以从采样里直接算出来,那Critic不就没用了吗?这就是GRPO省掉Critic的根本逻辑。

举个生活化的例子。PPO像是请了一个专业评委,让他给每个选手打分,然后看选手比评委的预期高多少。GRPO则是把一群选手拉到一起比赛,直接看谁比这群人的平均分高多少。前者依赖评委的水平,后者依赖这群人的整体水平。评委可能不靠谱,但一群人的平均分是实打实算出来的,不需要额外训练。

3.2 组内归一化的数学表达

把上面的直觉写成公式。假设对同一个prompt,我们采样G个回答,每个回答拿到一个奖励r_i。那么这组的均值和标准差是:

mean = (1/G) * Σ r_i std = sqrt((1/G) * Σ (r_i - mean)²)

每个回答的优势就定义为:

A_i = (r_i - mean) / (std + ε)

这个式子就是GRPO优势函数的核心。你看,里面没有任何V(s),没有任何Critic,全靠组内采样出来的奖励自己算。减去均值是“相对”,除以标准差是“归一化”,合起来就是“组内归一化”。

注意:分母加ε是为了防止标准差为0时除零。当一组回答的奖励完全相同时,优势全为0,这时候这一组对策略更新没有贡献,这是合理的——因为大家表现一样,没有谁值得特别鼓励或抑制。

3.3 为什么“组内均值”能当基线用

这里有个关键问题必须回答:凭什么组内均值可以替代Critic估计的V(s)?它们是一回事吗?

严格说,它们不是一回事。V(s)是状态s下的期望回报,是对所有可能动作的加权平均。而组内均值只是对当前策略采样出来的G个动作的奖励平均。前者是理论期望,后者是蒙特卡洛估计。

但关键在于,策略梯度需要的不是精确的V(s),而是一个无偏或低偏差的基线。基线的作用是降低方差,只要它和动作相关但和动作的梯度无关,就不会引入偏差。组内均值恰好满足这个条件:它由当前组的采样决定,对每个动作的梯度贡献是对称的,所以不会让策略更新方向系统性偏移。

换句话说,Critic给的是一个“学出来的基线”,组内均值给的是一个“算出来的基线”。前者更精确但更贵,后者更粗糙但免费。GRPO赌的是:在采样数G足够的情况下,组内均值这个粗糙基线已经够用了。

3.4 和PPO的对比:一张表看清差异

维度PPOGRPO
优势估计Critic估V(s) + GAE组内奖励归一化
额外网络需要Critic不需要
显存开销Actor + Critic两份只有Actor
采样方式每个prompt采1个或多个每个prompt采一组(G个)
基线来源学习得到组内统计得到
冷启动Critic随机初始化,早期不稳无Critic,直接可用
适用场景通用RL大模型对齐、可批量采样场景

这张表建议面试前背下来,面试官问差异的时候,你能一条条说出来,比背公式有说服力得多。

4. 优势从哪来:把GRPO的推导走一遍

4.1 从策略梯度到优势函数

策略梯度的基本形式是:

∇J = E[∇log π(a|s) * A(s,a)]

这个式子的意思是:如果某个动作的优势是正的,就增大它的概率;是负的,就减小它的概率。所以整个训练的核心就是把A(s,a)算准。

PPO用Critic算A,GRPO用组内归一化算A。两者的策略梯度形式完全一样,区别只在A怎么来。这就是为什么面试官问“优势从哪来”,其实是在问“你知不知道A的计算方式变了,但策略梯度的框架没变”。

4.2 GRPO的完整目标函数

GRPO的目标函数在PPO的基础上做了两处改动。第一处是把优势换成组内归一化,第二处是KL约束的位置。

PPO的目标函数是:

L = E[min(ratio * A, clip(ratio, 1-ε, 1+ε) * A)]

GRPO把它改成:

L = E[min(ratio * A_i, clip(ratio, 1-ε, 1+ε) * A_i)] - β * KL(π || π_ref)

其中A_i就是前面算的组内归一化优势,KL项直接加在目标里而不是加在奖励里。这个改动看起来小,但工程上更干净:KL不用混进奖励信号,避免了奖励尺度和KL尺度互相干扰的问题。

提示:KL加在奖励里还是加在损失里,是个容易踩坑的点。加在奖励里,你需要调KL的系数,调不好奖励就被KL主导了;加在损失里,KL和策略损失是两个独立项,各自有各自的系数,调起来更直观。GRPO选了后者。

4.3 一个具体的计算例子

光看公式容易飘,我举个具体数字走一遍。

假设对某个prompt采样了4个回答,奖励分别是[2, 4, 6, 8]。

第一步算均值:mean = (2+4+6+8)/4 = 5。

第二步算标准差:每个偏差是[-3, -1, 1, 3],平方是[9, 1, 1, 9],平均是5,开方约等于2.236。

第三步算优势:A = [(2-5)/2.236, (4-5)/2.236, (6-5)/2.236, (8-5)/2.236] ≈ [-1.34, -0.45, 0.45, 1.34]。

你看,奖励最高的那个回答优势是+1.34,会被鼓励;奖励最低的优势是-1.34,会被抑制。整个过程没有用到任何Critic,全靠这四个奖励自己算出来。

如果换成PPO,你需要先用Critic估出每个状态的价值,再用GAE算优势。Critic估得准不准,直接决定这组优势可不可信。GRPO跳过了这一步,代价是它需要一次性采4个(或更多)回答,而PPO理论上采1个就能更新。

4.4 采样数G的选择:一个被低估的超参

G取多少,是GRPO里最容易被忽视但影响很大的超参。G太小,组内均值的估计方差大,优势噪声大;G太大,采样成本高,而且组内奖励如果都差不多,归一化后优势全接近0,梯度信号就弱了。

我自己的经验是,G取4到16之间比较常见。具体取多少,要看任务的奖励分布。如果奖励区分度大(比如正确/错误二值奖励),G可以小一点;如果奖励区分度小(比如连续的打分),G要大一点才能拉开差距。

这里有个反直觉的点:G不是越大越好。当G大到一定程度,组内均值已经接近真实期望,再增大G的边际收益递减,但采样成本线性增长。所以存在一个性价比最优点,需要根据实际任务调。

5. 实操层面:GRPO落地要注意什么

5.1 奖励设计:组内归一化的前提

GRPO的优势完全来自奖励,所以奖励设计的好坏直接决定训练效果。这里有个前提容易被忽略:组内归一化要求同一组的奖励有可比性。如果一组回答的奖励尺度差异很大,归一化后优势就失真了。

举个例子,如果奖励是“回答长度”,那长回答和短回答的奖励天然不可比,归一化后优势反映的是长度差异而不是质量差异。所以GRPO更适合奖励定义清晰、尺度统一的场景,比如数学题的对错、代码的通过与否。

注意:如果你的奖励是多个维度的加权和,一定要先把各维度归一化到同一尺度再加权,否则组内归一化会被某个大尺度维度主导。

5.2 采样策略:一组回答怎么采

GRPO要求对同一个prompt采一组回答,这就涉及采样策略。最直接的做法是用当前策略采样G个,但这里有个细节:采样时的温度参数会影响组内多样性。

温度太低,G个回答几乎一样,组内方差小,归一化后优势接近0,梯度信号弱。温度太高,回答质量参差不齐,组内均值被拉低,好的回答优势虚高。我一般会把温度设在0.7到1.0之间,具体看任务对多样性的需求。

另外,采样G个回答意味着前向计算量是PPO的G倍。虽然省掉了Critic的反向,但采样本身的开销不能忽略。工程上要权衡:省下的Critic开销,够不够覆盖多出来的采样开销。

5.3 KL约束的系数调节

GRPO把KL加在损失里,系数β需要调。β太大,策略不敢偏离参考模型,学不动;β太小,策略跑偏,输出质量崩坏。

我的经验是,β从一个较小的值开始(比如0.01到0.04),观察KL的实际值。如果KL一直很小,说明β偏大,可以调小;如果KL快速上升,说明β偏小,要调大。这个调节过程需要盯着训练曲线,不能设完就不管。

提示:KL约束的参考模型通常是SFT之后的模型。参考模型选得越强,KL约束越有意义;如果参考模型本身就很弱,KL约束反而会限制策略提升。

5.4 和PPO的工程取舍

什么时候用GRPO,什么时候用PPO?我的判断标准是三条。

第一,看采样成本。如果你的场景能低成本地对同一输入采多个输出(比如文本生成),GRPO的组内采样很划算。如果采样成本很高(比如机器人控制,一次采样就是一次真实交互),GRPO的G倍采样开销就吃不消。

第二,看奖励可定义性。GRPO强依赖奖励的组内可比性。如果你的奖励难以统一定义,或者不同样本的奖励尺度差异大,PPO的Critic反而更鲁棒。

第三,看资源约束。显存紧张、算力有限的情况下,GRPO省掉Critic的优势非常明显。反过来,如果资源充足,PPO的Critic能提供更精细的优势估计,训练可能更稳。

6. 面试怎么答:把逻辑链讲成故事

6.1 面试官到底想听什么

回到最初的问题:“PPO和GRPO,省掉Critic后优势从哪来?”面试官想听的不是一句“组内归一化”,而是你能不能把下面这条逻辑链讲通:

Critic的作用是估V(s)当基线 → 基线的本质是降低方差 → 组内均值也能当基线 → 因为它是蒙特卡洛估计,无偏且免费 → 所以GRPO用组内归一化替代Critic → 代价是需要一组采样,且依赖奖励可比性。

这条链讲完,面试官就知道你不是背的,是真理解了。如果还能补一句“GRPO的KL加在损失里而不是奖励里,避免了尺度干扰”,基本就稳了。

6.2 常见追问和应对

面试官可能会追问几个点,我列一下我遇到过的。

追问一:“组内均值和V(s)是一回事吗?”答:不是。V(s)是理论期望,组内均值是蒙特卡洛估计。前者更精确但需要学习,后者更粗糙但免费。GRPO赌的是采样数够大时,后者够用。

追问二:“G取多少合适?”答:没有标准答案,看奖励分布。奖励区分度大,G可以小;区分度小,G要大。常见范围4到16。太大边际收益递减,太小方差大。

追问三:“GRPO有什么局限?”答:依赖奖励的组内可比性,采样成本是PPO的G倍,奖励设计不好时优势会失真。不是所有场景都能替代PPO。

追问四:“为什么KL加在损失里?”答:避免KL和奖励的尺度互相干扰,两个系数独立调节更直观。

6.3 一个容易踩的坑

很多人答这道题的时候,会把GRPO说成“不需要基线”。这是错的。GRPO不是不需要基线,而是用组内均值替代了学习出来的基线。基线这个概念还在,只是来源变了。如果你说“GRPO不需要基线”,面试官会立刻发现你没理解本质。

还有一个坑是把GRPO和“无Critic的PPO”混为一谈。GRPO不是简单地把Critic删掉,而是重新设计了优势的计算方式。删掉Critic只是结果,组内归一化才是原因。这个因果关系要讲清楚。

7. 我踩过的坑和几条实操心得

7.1 奖励尺度不统一导致训练崩

我第一次跑GRPO的时候,奖励用了两个维度的加权和:一个是正确性(0或1),一个是格式分(0到10)。结果组内归一化后,优势完全被格式分主导,正确性的信号被淹没了。后来我把格式分归一化到0到1,两个维度才平衡。

这个坑的教训是:组内归一化对奖励尺度非常敏感。在把奖励送进GRPO之前,一定要检查各维度的尺度是否统一。不统一就先归一化,别偷懒。

7.2 G设太小导致梯度信号弱

有段时间我为了省采样成本,把G设成2。结果组内只有两个样本,均值就是两者的中点,归一化后优势就是+1和-1,信息量极少。训练几乎不动。后来把G调到8,训练才正常。

G的下限大概是4。低于4,组内统计量太粗糙,优势估计噪声大。如果实在采样成本高,宁可减少更新频率,也别把G压得太小。

7.3 KL系数设太大导致学不动

KL系数β我一开始设了0.1,结果策略几乎不偏离参考模型,训练loss降不下去。后来降到0.02,策略才开始有明显变化。β的调节没有万能值,必须盯着KL的实际曲线调。

我的做法是:先设一个中等值(比如0.04),跑几百步看KL曲线。如果KL一直低于0.01,说明β太大,调小;如果KL超过0.1还在涨,说明β太小,调大。反复几次就能找到合适的值。

7.4 采样温度影响组内多样性

温度这个参数容易被忽略,但它直接影响组内方差。温度太低,G个回答几乎一样,归一化后优势全接近0;温度太高,回答质量崩坏,组内均值被拉低。我一般从0.8开始试,根据组内奖励的方差来调。

一个判断标准是:如果组内奖励的标准差长期接近0,说明温度太低或者任务太简单,需要提高温度或换任务;如果标准差很大但均值很低,说明温度太高,回答质量不行。

8. 从PPO到GRPO:这条演进线还能怎么延伸

把PPO和GRPO放在一起看,你会发现强化学习算法的一个演进规律:用更便宜的估计替代更贵的估计,用采样换计算。PPO用Critic换来了精细的优势估计,GRPO用组内采样换掉了Critic。这个 trade-off 的思路,在别的算法里也能看到。

比如有些工作尝试用“多个策略的对比”替代Critic,有些尝试用“历史奖励的滑动平均”当基线。核心思路都是一样的:基线不一定要学出来,也可以算出来。只要算出来的基线满足“与动作梯度无关”这个条件,就能用。

这个视角对面试也有帮助。如果面试官问“GRPO之后还能怎么改进”,你可以从“更便宜的基线估计”这个角度答,比如用组内中位数替代均值(更鲁棒)、用分组采样替代全组采样(更省成本)。这样答显得你有自己的思考,而不是只会复述论文。

提示:面试里遇到开放性问题,别急着给结论,先把问题的本质拆出来。比如“优势从哪来”本质是“基线怎么估”,把这个问题答清楚,比堆砌名词有用得多。

最后分享一个我自己的习惯:每次学一个新算法,我都会问自己三个问题——它解决了旧算法的什么痛点?它为此付出了什么代价?什么场景下它不适用?把这三个问题答清楚,基本就掌握了。GRPO的答案分别是:解决了Critic的工程痛点;代价是G倍采样和奖励可比性要求;不适用于采样成本高或奖励难统一的场景。这三句话,面试的时候能直接说。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询