🎯 一句话理解 GRPO

GRPO = 对同一个问题采样一组答案,用组内奖励的均值做基线,‘比平均好’就奖励、‘比平均差’就惩罚,从而省掉 PPO 里又大又难训的 critic 网络。

它由 DeepSeek 团队提出(DeepSeekMath、DeepSeek-R1),让大模型强化学习的成本断崖式下降,也正因此成为 2025 年自动驾驶强化学习(AlphaDrive、Flow-GRPO 等)的首选算法。


GRPO Algorithm Flow

🧗 从 PPO 说起:为什么需要 critic?

要懂 GRPO 的妙处,得先看它的前身 PPO(Proximal Policy Optimization)。PPO 是 RLHF 时代的主力,它的目标函数是经典的 clipped surrogate

$$\mathcal{L}_{\text{PPO}} = -\mathbb{E}\left[\min\left(r_t A_t,\ \text{clip}(r_t, 1-\epsilon, 1+\epsilon) A_t\right)\right]$$

其中 重要性比 $r_t = \pi_{\text{new}}(a|s) / \pi_{\text{old}}(a|s)$,clip 用来限制单步更新幅度,防止策略"步子迈太大"。而 优势函数(advantage) $A_t$ 是核心:

$$A_t = Q(s,a) - V(s)$$

这里的 $V(s)$ 就是 价值网络(critic) 估计的"基线"——“在这个状态下平均能拿多少 reward”。减去基线是为了降低梯度估计的方差:好于平均才给正信号,差于平均才给负信号。

问题来了:critic 网络和 policy 网络一样大

PPO 的痛点后果
双模型显存policy + critic 两个大模型,显存翻倍
critic 难训价值估计本身需要大量采样才能收敛
调参复杂两个网络的 learning rate、loss 权重都要调
训练不稳critic 估计不准会带偏 advantage

对动辄几百亿参数的大模型来说,这个代价极其昂贵。GRPO 的洞察就是:能不能不要 critic?


💡 GRPO 的核心创新:组内相对优势

GRPO(Group Relative Policy Optimization)的做法极其简洁。对同一个问题(prompt/状态)$q$,用当前策略采样 一组 $G$ 个回答/动作 ${a_1, a_2, \dots, a_G}$,分别拿到 reward ${r_1, \dots, r_G}$,然后用组内统计量做基线:

$$A_i = \frac{r_i - \text{mean}(r_{1..G})}{\text{std}(r_{1..G}) + \epsilon}$$

就这么简单——用同组样本的均值替代 critic,用标准差归一化。不需要训练任何额外的网络,critic 直接被"组内平均"消解掉了。

维度PPOGRPO
基线来源critic 网络估计 $V(s)$组内 reward 均值
是否需要 critic✅ 必须不需要
显存开销双模型单模型
advantage 计算$Q - V$(需 GAE)$(r_i - \bar r)/\sigma$
关键超参clip $\epsilon$group size $G$
调参难度

一个直观例子:同一个数学题采样 4 个答案,reward 是 $[0.2, 0.4, 0.8, 0.6]$,均值 $0.5$、标准差 $\approx 0.224$。那么 $0.8$ 的那个 advantage $\approx +1.34$(强化它的生成概率),$0.2$ 的 advantage $\approx -1.34$(降低它的生成概率)。这就是"最终结果打分,整条生成路径领奖或背锅"。


🧮 GRPO 的完整损失

GRPO 的目标函数在 PPO 基础上加了熵正则(鼓励探索)和 KL 约束(防止偏离参考策略太远):

$$\mathcal{L}_{\text{GRPO}} = -\mathbb{E}\left[\frac{1}{G}\sum_{i=1}^{G}\left(\min(\hat r_i A_i,\ \text{clip}(\hat r_i, 1-\epsilon, 1+\epsilon) A_i) - \beta\, \mathbb{KL}(\pi_\theta \| \pi_{\text{ref}})\right)\right] + \gamma\, \mathcal{H}(\pi_\theta)$$

几个关键项的作用:

作用
clip限制重要性比,防止单步更新过猛
KL 约束把策略"拴"在参考策略(通常是 SFT 后的模型)附近,防 reward hacking
熵正则 $\mathcal{H}$鼓励探索,避免策略过早坍缩到单一模式
group size $G$太小方差大、太大算力贵,典型值 8~64

🤔 为什么"组内相对"比"绝对 reward"更合理?

这是 GRPO 最深刻的洞察,也是一个常被忽略的点。

如果直接用绝对 reward 训练,会有严重的 难度偏置 问题:

  • 简单题(如"直行通过空旷路口")平均 reward 天然高
  • 难题(如"无保护左转穿拥堵")平均 reward 天然低

若全局比较,模型会一味偏向"刷简单题"的生成路径,复杂场景能力反而退化。组内相对把"绝对好不好“换成”在同题候选里排第几",自动抵消了不同问题之间的难度差异——这一点对驾驶尤其关键:直路和路口必须按场景分组比较才有意义。

💡 工程小贴士:当 reward 稀疏导致同组方差为 0(所有候选同分)时,advantage 会消失。此时可用全局 std 替代组内 std,避免训练信号归零(Flow-GRPO 里的 global_std=True 开关就是干这个的)。


🧠 DeepSeek-R1:GRPO 的封神之战

GRPO 真正名震江湖是在 DeepSeek-R1 系列。DeepSeek 用 GRPO 让基础模型自主涌现出强推理能力:

  • R1-Zero:直接在基础模型上用 GRPO + 可验证 reward(数学题有标准答案、代码题能跑测试),无需 SFT,模型自己学会"长思维链推理"
  • R1:在 R1-Zero 基础上加冷启动数据、多阶段 RL,进一步稳定并提升

GRPO 在这里大放异彩的原因:

  1. 可验证 reward 天然适合组内比较(数学题对/错分明)
  2. 省 critic 让大规模 RL 在有限算力下可行
  3. 组内相对天然处理了不同难度题目的公平性

这证明了 GRPO 不仅是个"省钱技巧",而是能催生涌现能力的有效算法

从 DeepSeekMath 到 R1:GRPO 的演进轨迹

GRPO 并非凭空出现。它的最早版本见于 DeepSeekMath(2024 年 2 月),当时主要用于提升大模型的数学推理能力。作者发现,在数学这种有标准答案、reward 可验证的场景里,用组内相对优势替代 critic,不仅省算力,训练还更稳定——因为组内均值天然是一个无偏的低方差基线。随后在 DeepSeek-R1 里,GRPO 被推到极致,配合可验证 reward 让模型自主涌现出长思维链推理能力,成为开源大模型 RL 的标杆。

演进阶段工作关键贡献
雏形DeepSeekMath(2024.02)提出 GRPO,数学推理验证可行性
成熟DeepSeek-R1-Zero(2025.01)纯 RL 涌现推理,无需 SFT
稳定DeepSeek-R1(2025.01)多阶段 RL + 冷启动,工程稳定

这条演进线告诉我们:一个算法的价值,往往要在不同规模、不同任务的反复验证中才真正显现。GRPO 从数学题一路打到通用推理,再迁移到驾驶,靠的就是其对稀疏可验证 reward 的天然适配


🚗 GRPO 在自动驾驶:AlphaDrive 与 Flow-GRPO

GRPO 的优势在自动驾驶 RL 里同样成立,甚至更重要——因为驾驶的 reward 更稀疏、critic 更难训。2025 年涌现了几个代表性工作:

工作优化对象reward 来源特色
AlphaDrive驾驶策略(轨迹/决策)规划任务可验证指标首个把 GRPO 系统用于驾驶策略
Flow-GRPO扩散/Flow Matching 去噪过程图像/视频质量或偏好把 RL 注入连续生成
Gen-Drive扩散生成策略VLM 辅助偏好 reward生成 + 评估 + RL 微调

驾驶场景的 GRPO 类比

把 GRPO 的语言模型设定原样翻译到驾驶:

语言模型 RL自动驾驶 RL
同一个 prompt同一个驾驶场景(传感器观测)
采样 $G$ 个回答采样 $G$ 条候选轨迹/决策
答案对错打分轨迹的碰撞/舒适/合规 reward
组内均值做基线同场景候选均值做基线

驾驶里"组内相对"的价值更突出:直路场景的 reward 普遍高于无保护左转,必须按场景分组比较,否则策略会偏向"只会跑直路"。GRPO 天然满足这一点。

GRPO 与其他无 critic 算法的对比

去掉 critic 用"组内统计"做基线,这条路并非 GRPO 独有。理解它的独特性,需要放在整个无 critic RL 家族里看:

算法基线形式是否组内特点
REINFORCE + baseline单独价值估计仍需额外网络
RLOO(Leave-One-Out)留一均值用 $G-1$ 个样本估均值
GRPO组内均值 + 标准差归一化方差更低、更稳定

GRPO 相比 RLOO 的关键改进在于用标准差做归一化——这让 advantage 的尺度自适应于问题难度,难题主样本间方差大,归一化后信号强度与易题一致,避免训练被简单题主导。这个看似微小的差异,正是 GRPO 在大规模 RL 里更稳定的根源。

与 Diffusion/Flow 结合的妙处

当优化对象是 扩散/Flow Matching 策略时(如 DiffusionDrive、Flow-GRPO),GRPO 把整条去噪轨迹当成被优化的"动作序列"——最终生成样本拿到 reward,再用组内相对优势反向更新每一步去噪。这把"模仿数据分布"的生成模型升级为"对齐任务奖励"的智能策略,是当前端到端驾驶最前沿的方向之一。

驾驶场景的特殊适配考量

把 GRPO 搬到驾驶,还有几个场景特有的适配点需要关注:

  • 场景分组要准确:组内相对的前提是"同一场景采样的多个候选",因此必须保证同一组内确实对应同一个交通状态(同一传感器观测、同一路口)。数据组织上要按场景 ID 严格分组,否则跨场景比较会重新引入难度偏置
  • 候选多样性:如果采样策略温度太低,一组候选高度雷同、reward 几乎同分,advantage 会退化为零。需要保证采样有多样性,必要时提高温度或用不同的噪声起点
  • reward 离散度:驾驶 reward 常出现"大部分候选都不撞、reward 同分"的情况,此时需要设计更细粒度的差分指标(如最近碰撞距离、舒适度)来拉开候选间差距,否则组内比较无从谈起

这几个细节决定了 GRPO 在驾驶里"能不能学起来",比算法本身更值得工程师关注。


⚙️ GRPO 的工程实践要点

要点说明
group size $G$太小方差大、太大算力贵,典型 8~64,需权衡
KL 系数 $\beta$太大约束死板、太小 reward hacking,需动态调整
reward 标准化组内归一化是关键,必要时退化为全局 std
采样效率同 prompt 共享前向,可并行采样降低开销
与 SFT 配合通常先 SFT 再 GRPO(R1-Zero 是例外),冷启动更稳

⚠️ GRPO 的局限

GRPO 不是银弹,它也有自己的软肋。理解这些局限,才能在驾驶实践中扬长避短,知道什么时候该用、什么时候不该用:

  • 依赖可验证或可比较的 reward:reward 质量决定一切,驾驶里 reward 仍难定义
  • group size 权衡:小则方差大,大则算力贵
  • 稀疏 reward 退化:同组全同分时信号消失,需全局 std 兜底
  • 样本效率:本质上还是 on-policy,大量采样不可避免
  • 连续动作空间:直接用于连续控制需配合扩散/Flow 等生成式策略

📝 个人思考

GRPO 最打动我的,是它用一个极简的洞察——“用组内平均替代 critic”——撬动了大模型 RL 的整个成本结构。长期以来,大家默认"PPO 离不开 critic",于是把大量精力耗在调价值网络上。GRPO 像是戳破了一层窗户纸:critic 并非必需,它只是基线的一种实现;只要能拿到一组可比的样本,组内统计就是天然的基线。这种"做减法"的工程美学,比任何花哨的算法设计都更令人敬佩。DeepSeek-R1 的成功证明了,有时候关键创新不是’加了什么’,而是’敢去掉什么’

第二点启发在 “组内相对"哲学的普适性。这个思想其实远远超出 RL 的范畴——它本质是”在可比的参照系里评价好坏"。驾驶里直路和路口不能放一起比,语言里简单题和难题不能放一起比,本质上都是"消除不可比因素的干扰"。我倾向于认为,任何涉及"多任务、多难度"的优化场景,组内相对都是更公平、更稳定的范式。这也解释了为什么 GRPO 能从数学推理一路迁移到自动驾驶:它解决的不是某个领域的问题,而是’如何公平地学习偏好’这个普遍问题

最后,对自动驾驶而言,我认为 GRPO 的意义在于让 RL 真正上车成为可能。驾驶 RL 之所以长期难落地,很大程度是 critic 难训、reward 难定义、算力吃不消。GRPO 一次性砍掉了 critic 这个大包袱,又用组内相对天然适配了驾驶的场景多样性,再配合扩散/Flow 策略处理连续多模态动作——这套组合拳正在让"用 RL 把驾驶策略对齐到安全舒适的偏好“从论文口号变成工程现实。GRPO + 生成式策略 + 学习型 reward,这是我看 2025-2026 端到端驾驶最清晰的一条主线。


📖 这是知识点拆解系列的第 10 篇。GRPO 正在重塑驾驶 RL,你认为它能成为自动驾驶的’RLHF 时刻’吗?欢迎留言讨论。