news 2026/10/20 6:47:35

PPO与GRPO优势估计对比:为什么GRPO能省掉Critic网络

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
PPO与GRPO优势估计对比:为什么GRPO能省掉Critic网络

1. 从一道面试题说起:为什么“砍掉Critic”反而成了加分项

如果你最近在准备算法岗面试,尤其是大模型对齐、强化学习方向,大概率会被问到这样一个问题:“PPO里的Critic网络到底在干什么?如果把它省掉,优势函数还怎么算?”这个问题看似只是考概念,实际上背后藏着近两年强化学习在大模型训练领域的一次重要范式转变。我第一次被问到的时候,脑子里第一反应是“没有Critic怎么估优势”,第二反应才是“哦,GRPO就是这么干的”。而面试官想听的,恰恰是你从第一反应到第二反应之间的那条推理链路。

这篇文章就是围绕这条链路展开的。我会把PPO和GRPO在“优势估计”这件事上的分歧彻底拆开,讲清楚Critic在PPO里承担了什么角色、为什么它在大模型场景下变得又贵又难训、GRPO用什么办法绕开了它、以及绕开之后优势到底从哪来。适合正在准备面试的算法同学,也适合正在做RLHF或推理模型训练、想搞清楚GRPO到底省了什么代价的工程同学。全文不堆公式,但关键推导会给到,力求让你在面试里能讲出“为什么”,而不只是背出“是什么”。

先说结论,方便你带着框架往下读:PPO的优势估计依赖一个学出来的价值网络(Critic)来提供基线,GRPO则用同一组采样回答的组内平均奖励作为基线。前者是“学一个裁判”,后者是“让选手互相比”。省掉Critic不是不要基线,而是换了一种更便宜、更稳的基线来源。这个替换之所以成立,是因为大模型RLHF的奖励结构有一个特殊性质——整条回答通常只在末尾拿到一个标量奖励,中间没有密集的即时奖励。这个性质让“组内比较”变得天然合理。

面试里如果只答“GRPO去掉了Critic所以更省显存”,基本就停在第一层。能讲到“基线从学出来的价值函数变成组内统计量,且这个替换依赖稀疏末端奖励结构”,才算摸到了第二层。

2. PPO里Critic到底在算什么:优势函数的基线逻辑

2.1 优势函数不是奖励,是“比预期好多少”

很多人对优势函数(Advantage)的理解停留在“就是回报减去基线”,但面试里更该讲清楚的是:优势衡量的是某个动作相对于“在这个状态下平均能拿多少”的超额收益。用大白话说,如果我在某个状态下随便做一个动作平均能拿10分,而我实际做了动作a拿了15分,那动作a的优势就是+5;如果只拿了8分,优势就是-2。策略更新的方向就是让正优势的动作概率上升,负优势的动作概率下降。

这里的关键在于“平均能拿多少”这个基线怎么来。基线选得好不好,直接决定了策略梯度的方差。基线选得准,方差小,训练稳;基线选得离谱,方差爆炸,策略更新方向全是噪声。PPO选择用一个神经网络Critic来拟合这个基线,也就是价值函数V(s),它估计的是“从状态s出发,按当前策略走下去,期望能拿到的累计回报”。

2.2 Critic是一个和策略同步训练的“预测器”

Critic的工作机制可以这样理解:它和策略网络(Actor)同时训练,Actor负责做动作,Critic负责预测这个状态值多少钱。每走一步,环境给出真实奖励,Critic就根据“预测值”和“实际回报”之间的差距来更新自己,用的就是时序差分(TD)误差。训练久了,Critic对各个状态的价值估计越来越准,Actor就能用这个越来越准的基线来算优势。

问题在于,Critic和Actor是一对互相追逐的搭档。Actor的策略一直在变,Critic要预测的目标也就一直在变。这就像你让一个人去预测一个不断改变打法的人下一步会出什么牌,预测器永远在追,永远慢半拍。在传统强化学习任务里,状态空间相对固定,这个追逐还能收敛;但到了大模型场景,状态是“prompt+已生成的token序列”,空间巨大且策略更新剧烈,Critic的拟合难度陡增。

2.3 大模型场景下Critic的三重代价

第一重是显存代价。PPO训练时通常要同时驻留四个模型:Actor、Critic、奖励模型(Reward Model)、参考模型(Reference Model)。其中Actor和Critic都是和主模型同量级的网络,也就是说光这两项就占了两份模型权重的显存。在70B级别模型上,这直接决定了你一张卡能不能放下、要不要开一堆并行。

第二重是计算代价。Critic每步都要前向预测价值,反向更新参数,这部分计算量和Actor的前向相当。训练吞吐因此明显下降。

第三重,也是最容易被忽略的,是训练稳定性代价。Critic的估计误差会直接污染优势,优势不准,策略更新方向就偏。更麻烦的是,Critic本身也可能训崩,一旦价值估计发散,整个训练就废了。很多团队在RLHF里踩过的坑就是:奖励涨了一阵突然崩掉,回头查发现是Critic的value loss炸了。

这里有个面试高频追问:“既然Critic这么麻烦,为什么不干脆不要基线?”答案是:不要基线方差太大,策略梯度噪声会淹没信号。所以问题不是“要不要基线”,而是“能不能换个更便宜的基线”。

3. GRPO的破局思路:用组内相对奖励替代学出来的价值

3.1 同一个prompt采样一组回答,让它们互相打分

GRPO(Group Relative Policy Optimization)的核心操作非常直观:对同一个prompt,让当前策略采样出G个回答(比如G=8或16),然后用奖励模型给每个回答打分,得到一组奖励{r1, r2, ..., rG}。接下来,它不去找一个价值网络估计“这个prompt的期望奖励是多少”,而是直接用这组奖励的均值作为基线。

优势的算法就变成了:某个回答的优势 = 它的奖励减去这组奖励的均值(实践中通常还会除以组内标准差做归一化)。用公式表达就是A_i = (r_i - mean(r)) / std(r)。这个形式你一看就明白,它衡量的是“这个回答比同组其他回答好多少”。基线不再是学出来的,而是当场算出来的统计量。

这个设计之所以成立,前提是奖励结构匹配。在大模型RLHF里,奖励模型通常对整条回答给一个标量分数,也就是说一个回答对应一个奖励,不存在中间步骤的即时奖励。这种“稀疏末端奖励”结构下,用组内均值做基线是完全合理的——因为同一个prompt下的不同回答,面对的是同一个初始状态,它们的奖励差异天然就反映了回答质量的相对高低。

3.2 省掉Critic之后,省下的不只是显存

从工程角度看,GRPO直接砍掉了Critic网络,训练时驻留的模型从四个变成三个(Actor、Reward、Reference)。显存压力显著下降,计算量也少了一块。但更重要的收益在稳定性上:没有了Critic,就没有了value loss这个可能发散的源头,训练过程少了一个需要精细调参的环节。

我自己的体会是,PPO调参时最头疼的就是Actor和Critic的学习率要分别调,两者还得匹配。Critic学太快,优势估计会过于自信;Critic学太慢,优势全是滞后信息。GRPO把这个耦合直接解开了,超参空间小了一圈,对工程团队来说这是实打实的省心。

3.3 组内比较的隐含假设与边界

当然,组内比较不是没有代价的。它隐含了一个假设:同一个prompt下的G个回答,奖励的差异主要来自回答质量,而不是奖励模型的噪声。如果奖励模型本身噪声很大,组内均值也会被噪声带偏。另外,G不能太小,太小了均值估计不稳;G也不能太大,太大了采样和推理成本线性上升。实践中G取8到64之间比较常见,具体要看任务和算力预算。

还有一个容易被忽略的点:GRPO的组内比较是“同prompt内”的比较,不同prompt之间的奖励尺度差异它是不管的。这在奖励模型输出尺度比较一致时没问题,但如果不同prompt的奖励分布差异很大,可能需要额外做处理。这一点在面试里如果主动提出来,是很加分的深度思考。

4. 优势到底从哪来:一次完整的数值推演

4.1 设定一个具体场景

光讲概念容易飘,我们用一个具体例子把两种方法的优势计算走一遍。假设某个prompt下,当前策略采样了4个回答,奖励模型给出的分数分别是:r = [2.0, 4.0, 6.0, 8.0]。为了简化,先不考虑折扣和token级拆分,只看回答级的优势。

在GRPO下,组内均值mean(r) = 5.0,标准差std(r) ≈ 2.236。那么四个回答的归一化优势分别是:

  • A1 = (2.0 - 5.0) / 2.236 ≈ -1.34
  • A2 = (4.0 - 5.0) / 2.236 ≈ -0.45
  • A3 = (6.0 - 5.0) / 2.236 ≈ +0.45
  • A4 = (8.0 - 5.0) / 2.236 ≈ +1.34

可以看到,高于均值的回答拿到正优势,低于均值的拿到负优势,且优势的绝对值反映了偏离均值的程度。策略更新时,回答4的概率会被推高,回答1的概率会被压低。

4.2 换成PPO,Critic要做什么

在PPO下,要算同样的优势,得先有一个Critic估计出这个prompt的状态价值V(s)。假设Critic经过训练,估计这个prompt的期望回报是5.0(和组内均值恰好一致,方便对比)。那么优势就是r_i - V(s),得到[-3.0, -1.0, +1.0, +3.0]。注意这里没有除以标准差,所以数值尺度和GRPO不同,但符号和相对大小是一致的。

关键差异在于:PPO的这个V(s)=5.0是Critic“学”出来的,它可能准,也可能不准。如果Critic训得不好,估计成3.0,那优势就变成[-1.0, +1.0, +3.0, +5.0],全部偏正,策略会误以为所有回答都不错,更新方向就偏了。而GRPO的5.0是当场从这组奖励算出来的,不依赖任何学出来的参数,只要奖励模型本身靠谱,基线就是靠谱的。

4.3 为什么这个替换在数学上站得住

从策略梯度的角度看,优势函数的基线只要满足“与动作无关”这个条件,就不会引入偏差,只会影响方差。PPO的V(s)是状态相关的基线,GRPO的组内均值是“同prompt同组”的基线,两者都满足“对同一个状态下所有动作相同”的要求(GRPO里同组回答共享同一个prompt,基线对组内所有回答一致)。所以从无偏性上讲,GRPO的基线是合法的。

差别在方差上。如果组内均值恰好接近真实的状态价值,GRPO的方差和PPO相当;如果组内样本数够多,组内均值本身就是状态价值的一个蒙特卡洛估计,样本越多估计越准。这就是为什么GRPO在G较大时表现稳定——它用采样换掉了学习,用统计换掉了拟合。

面试里可以这样总结:PPO用参数化模型估计基线,GRPO用蒙特卡洛采样估计基线。前者偏差小但方差受拟合质量影响,后者无偏但方差受组大小影响。选择哪个,取决于你的算力更愿意花在“训一个Critic”还是“多采样几个回答”上。

5. 面试现场:怎么把这个问题答出层次感

5.1 第一层:说清楚Critic的作用

面试官问“省掉Critic后优势从哪来”,你首先要证明你知道Critic原本在干嘛。标准答法是:Critic估计状态价值函数V(s),作为优势计算的基线,优势A = 回报 - V(s),作用是降低策略梯度的方差。这一层是基础,答不出来后面免谈。

5.2 第二层:点出GRPO的替代机制

接着要讲清楚GRPO的替代方案:对同一prompt采样一组回答,用组内奖励的均值和标准差做归一化,得到相对优势。强调这个基线是“算出来的”而不是“学出来的”,所以不需要Critic网络。这一层是核心,能答到这里说明你确实了解GRPO。

5.3 第三层:解释为什么这个替代合理

再往深一层,要讲清楚这个替代成立的前提:大模型RLHF的奖励通常是整条回答一个标量,属于稀疏末端奖励,同一prompt下的回答共享初始状态,组内比较天然合理。同时要能说出代价:组大小G影响估计质量,奖励模型噪声会被组内均值放大,不同prompt之间的奖励尺度差异需要额外处理。这一层是区分“背过”和“想过”的分水岭。

5.4 第四层:联系工程取舍

最高一层是把它放回工程语境:省掉Critic省了显存、省了计算、省了调参耦合,但增加了采样开销。在算力充足、采样成本可接受的场景下,GRPO的性价比更高;在采样成本极高或奖励极其稠密的场景下,PPO的Critic可能仍有价值。能讲到这一层,面试官基本会认为你不仅懂算法,还懂落地。

6. 工程落地时那些文档不会写的细节

6.1 组大小G不是越大越好

理论上G越大,组内均值越接近真实状态价值,优势估计越准。但实际训练里,G增大会带来两个问题:一是采样和推理成本线性上升,二是组内奖励的方差可能被拉大,归一化后的优势分布反而更极端。我见过的比较稳的配置是G=8到16,配合对优势做裁剪(clip),防止极端优势主导更新。

6.2 奖励归一化的尺度要盯紧

GRPO用组内标准差做归一化,这一步在奖励尺度差异大时要特别小心。如果某个prompt下所有回答奖励都很接近,标准差极小,归一化会把微小的奖励差异放大成很大的优势,导致策略对这些噪声过度反应。实践中可以给标准差加一个极小值epsilon,或者对优势做全局裁剪,避免数值爆炸。

6.3 和KL惩罚的配合

GRPO同样需要KL惩罚来约束策略不要偏离参考模型太远。这里有个细节:KL项是加在奖励里还是加在损失里,会影响优势的计算。如果加在奖励里,那组内均值本身就包含了KL的影响,优势反映的是“含KL约束后的相对好坏”;如果加在损失里,优势只反映原始奖励的相对好坏。两种做法都有人用,但要在训练前定好,别中途换。

6.4 采样效率的隐藏成本

GRPO省了Critic的前向反向,但多了G倍采样。如果你的推理引擎没有做批量化优化,G倍采样可能比Critic的计算还贵。所以GRPO的工程收益高度依赖推理侧的吞吐能力。这也是为什么很多团队在推理优化做得好之后,才转向GRPO。

7. 从PPO到GRPO,变的是什么,不变的是什么

把这件事拉远看,PPO到GRPO的变化,本质是“基线来源”的变化:从参数化价值估计,变成蒙特卡洛组内统计。不变的是策略梯度的基本框架——依然是用优势加权更新策略,依然需要KL约束,依然依赖奖励模型。变的只是那个“参照系”怎么来。

这个变化之所以能发生,是因为大模型RLHF的任务结构恰好适合组内比较:同一prompt、稀疏末端奖励、奖励模型可复用。如果换一个奖励稠密、状态转移复杂的环境,组内比较就不一定成立,Critic可能还是必需的。所以面试里如果被追问“GRPO能不能用在传统RL任务”,正确的回答是“要看奖励结构是否支持组内比较”,而不是简单说能或不能。

我自己在复现这两种方法时最大的感受是:PPO像是一个需要精心调校的双人舞,Actor和Critic要配合默契;GRPO更像是一群人赛跑,谁快谁慢一目了然,组织起来简单,但对“赛道”(奖励模型)的公平性要求更高。选哪个,取决于你手里有什么资源、面对什么任务。面试里能把这层取舍讲清楚,比背十个公式都管用。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/20 6:47:19

vitalsource-dl实战:将VitalSource已授权电子书抓取为离线PDF/EPUB指南

简介:vitalsource-dl 是一份基于 Node.js 开发的 VitalSource 电子书下载器,面向需要将正版已购教材转存为本地 EPUB 的读者,以及想学习 Node.js 下载脚本写法的开发者。针对在线阅读不便备份、离线阅读受限的问题,脚本通过读取浏…

作者头像 李华
网站建设 2026/10/20 6:47:18

PMSM低速大负载启动难?IF控制策略Matlab/Simulink仿真实战解析

一个老问题——永磁同步电机(PMSM)低速大负载启动怎么搞。我自己做无位置传感器控制时,最纠结的环节就是零低速段的转子初始位置辨识和可靠启动。试过高频注入、试过磁极辨识,折腾一圈回到最务实的方案,就是IF控制&…

作者头像 李华
网站建设 2026/10/20 6:47:02

Artcraft:融合手艺与艺术的系统化创作新范式

1. “Artcraft”不是新词,而是被长期低估的创作范式重启信号最近在多个设计社区、开源项目讨论区和创意工作坊里,“artcraft”这个词频繁跳出来——不是作为某个具体工具或平台的名字,而是像一个突然被擦亮的老铜牌,上面刻着“手艺…

作者头像 李华
网站建设 2026/10/20 6:47:01

智能体技能模块化设计:可测试、可插拔、可治理的行为引擎

1. 项目概述:这不是一个“技能库”,而是一套可插拔的智能体行为引擎“agent-skills”这个名称乍看像某个开源工具包的名字,但实际在当前技术演进脉络里,它代表的是一种范式转移——从“写死逻辑”的自动化脚本,转向“按…

作者头像 李华
网站建设 2026/10/20 6:46:19

固定翼无人机着陆纵向控制与串级PID仿真解析

简介:面向固定翼无人机纵向控制与着陆场景的研究者、飞控开发者和相关专业学生,这份zip资源包围绕PID控制策略,提供了着陆路径规划、高度跟踪与动力学建模的完整实现。包内共8个文件,包含4个MATLAB脚本(m文件&#xff…

作者头像 李华
网站建设 2026/10/20 6:46:13

Manjaro 上搭建 NFS 服务:从服务端配置到客户端挂载的完整指南

1. 为什么要在 Manjaro 上折腾 NFS 服务手里这台 Manjaro 用了快两年,滚动更新一路跟下来,桌面体验确实舒服,但真正让我离不开它的原因,是它作为一台“家庭数据中转站”的稳定性。家里三台设备——一台主力台式、一台旧笔记本改的…

作者头像 李华