当前位置: 首页 > news >正文

[AI]DeepSeek-R1的GRPO算法

GRPO(Group Relative Policy Optimization)是 DeepSeek 在训练DeepSeek-R1推理模型时提出并推广的策略优化算法。它本质上是对 PPO 的极简手术砍掉 Critic 网络,用组内采样的相对奖励来估计优势函数,从而将 RLHF 的显存占用和实现复杂度降低一个数量级。


一、背景:PPO 的“四模型之痛”

在标准 RLHF-PPO 中,你需要同时维护4 个模型

  1. Actor(策略网络,正在训练)
  2. Critic(价值网络,估计状态价值)
  3. Reward Model(奖励模型,打分)
  4. Reference Model(参考模型,防止偏离)

痛点

  • 显存爆炸:4 个大模型同时驻留 GPU,70B 参数模型训练需要数百 GB 显存
  • Critic 训练困难:语言生成的状态空间几乎无限,Critic 要准确估计“每个 token 位置的未来累积奖励”极其困难,训练不稳定
  • 实现复杂:Actor-Critic 架构、GAE 计算、重要性采样修正,工程调试成本高

GRPO 的洞见:对于生成任务,与其费劲训练一个 Critic 去预测未来价值,不如对同一个问题采样多个答案,用它们之间的相对好坏来定义“优势”


二、核心原理:组内相对奖励

GRPO 的核心就三步:

1. 组采样(Group Sampling)

对于同一个问题(prompt)qqq,从旧策略πθold\pi_{\theta_{old}}πθold采样GGG个不同的输出
{o1,o2,…,oG}∼πθold(⋅∣q)\{o_1, o_2, \dots, o_G\} \sim \pi_{\theta_{old}}(\cdot|q){o1,o2,,oG}πθold(q)

GGG通常取4~16

2. 奖励打分(Reward)

用奖励模型(或规则)给每个输出打分:
R={r1,r2,…,rG}R = \{r_1, r_2, \dots, r_G\}R={r1,r2,,rG}

3. 相对优势计算(Relative Advantage)

这是 GRPO 的灵魂。不依赖 Critic,直接用组内统计量定义优势:

A^i=ri−mean(R)std(R)=ri−1G∑j=1Grj1G∑j=1G(rj−mean(R))2\hat{A}_i = \frac{r_i - \text{mean}(R)}{\text{std}(R)} = \frac{r_i - \frac{1}{G}\sum_{j=1}^G r_j}{\sqrt{\frac{1}{G}\sum_{j=1}^G (r_j - \text{mean}(R))^2}}A^i=std(R)rimean(R)=G1j=1G(rjmean(R))2riG1j=1Grj

直觉

  • 比组内平均水平的输出 → 优势为正 → 策略增加其概率
  • 比组内平均水平的输出 → 优势为负 → 策略降低其概率
  • 好坏程度由组内标准差归一化,自动适应不同问题的奖励尺度

三、数学公式:完整目标函数

GRPO 的策略更新目标与 PPO 几乎一致,只是把A^i\hat{A}_iA^i的来源从 Critic 换成了组内相对奖励:

JGRPO(θ)=Eq∼P(Q),{oi}i=1G∼πθold(⋅∣q)[1G∑i=1G(min⁡(ri(θ)A^i, clip(ri(θ),1−ϵ,1+ϵ)A^i)⏟PPO-Clip 策略损失−β⋅DKL(πθ(⋅∣q)∥πref(⋅∣q))⏟KL 惩罚)]J_{GRPO}(\theta) = \mathbb{E}_{q \sim P(Q), \{o_i\}_{i=1}^G \sim \pi_{\theta_{old}}(\cdot|q)} \left[ \frac{1}{G} \sum_{i=1}^G \left( \underbrace{\min\left( r_i(\theta)\hat{A}_i, \; \text{clip}(r_i(\theta), 1-\epsilon, 1+\epsilon)\hat{A}_i \right)}_{\text{PPO-Clip 策略损失}} - \underbrace{\beta \cdot D_{KL}(\pi_\theta(\cdot|q) \| \pi_{ref}(\cdot|q))}_{\text{KL 惩罚}} \right) \right]JGRPO(θ)=EqP(Q),{oi}i=1Gπθold(q)G1i=1GPPO-Clip策略损失min(ri(θ)A^i,clip(ri(θ),1ϵ,1+ϵ)A^i)KL惩罚βDKL(πθ(q)πref(q))

其中:

  • ri(θ)=πθ(oi∣q)πθold(oi∣q)r_i(\theta) = \frac{\pi_\theta(o_i|q)}{\pi_{\theta_{old}}(o_i|q)}ri(θ)=πθold(oiq)πθ(oiq):新旧策略的概率比
  • ϵ\epsilonϵ:Clip 阈值(通常 0.2)
  • β\betaβ:KL 惩罚系数(防止 Actor 偏离参考模型太远)
  • πref\pi_{ref}πref:冻结的参考模型(通常是 SFT 后的模型)

四、算法流程(伪代码)

# 初始化:Actor (可训练), Reference (冻结), Reward Model (冻结)# 无需 Critic!foriterationinrange(num_iterations):# 1. 收集数据foreach question qinbatch:# 从旧策略采样 G 个答案outputs=[actor.generate(q)for_inrange(G)]rewards=[reward_model(q,o)foroinoutputs]# 计算组内相对优势mean_r=mean(rewards)std_r=std(rewards)+1e-8# 防止除零advantages=[(r-mean_r)/std_rforrinrewards]store(q,outputs,old_probs,rewards,advantages)# 2. 策略更新(多 epoch,类似 PPO)forepochinrange(K_epochs):foreach stored group(q,outputs,old_probs,advantages):new_probs=actor.get_probs(q,outputs)ratios=new_probs/old_probs# PPO-Clipsurr1=ratios*advantages surr2=clip(ratios,1-eps,1+eps)*advantages policy_loss=-min(surr1,surr2).mean()# KL 惩罚(与参考模型)ref_probs=reference.get_probs(q,outputs)kl_loss=kl_divergence(new_probs,ref_probs).mean()total_loss=policy_loss+beta*kl_loss total_loss.backward()optimizer.step()

五、GRPO vs PPO 核心对比

维度PPOGRPO
模型数量4 个(Actor + Critic + Reward + Reference)3 个(Actor + Reward + Reference),无 Critic
显存占用高(Critic 与 Actor 同规模)低 25-30%
优势估计Critic + GAE组内相对奖励
实现复杂度高(需训练 Critic、调 GAE 超参)(省掉整个 Critic 训练流水线)
适用任务通用(对话、写作等开放式任务)确定性奖励任务(数学、代码、逻辑推理)
样本效率依赖 Critic 质量依赖组内采样多样性
稳定性Critic 崩溃则整体崩溃无 Critic 崩溃风险,但 std=0 时无法更新

六、在 DeepSeek-R1 中的实战

DeepSeek-R1 使用 GRPO 进行强化学习训练,其奖励设计极具针对性:

1. 奖励函数(完全规则化,无需神经 Reward Model)

奖励类型说明示例
准确性奖励答案是否正确数学题最终答案匹配 = +1,否则 0
格式奖励是否按要求格式输出思考过程包含<think>...</think><answer>...</answer>标签 = +0.5
语言一致性防止中英文混用全中文或全英文 = +0.1

关键:R1 的奖励是确定性的、可编程的,不需要像 ChatGPT 那样训练一个复杂的神经 Reward Model 来判断“这段话好不好”。

2. 为什么 GRPO 特别适合 R1?

  • 数学/代码任务:答案对错是二元的(0 或 1)。如果用 Critic 预测价值,它必须学会“这个推导步骤值 0.3 分,那个步骤值 0.7 分”,极其困难。而 GRPO 直接看组内谁答对了谁没答对,简单有效。
  • 长思维链(CoT):R1 生成长达数千 token 的推理过程。Critic 要评估“第 500 个 token 之后的未来回报”几乎不可能。GRPO 只看最终结果,规避了过程评估难题。

七、优势与局限性

优势

  1. 显存友好:去掉 Critic 后,同等规模模型训练显存降低20-30%,使 70B 模型的 RL 训练从“集群专属”变为“单节点可行”
  2. 实现极简:代码量比 PPO 减少约40%,调试维度大幅减少
  3. 避免 Critic 崩溃:语言生成的价值估计本身就不稳定,GRPO 直接绕过这个难题
  4. 奖励尺度自适应:组内归一化自动处理不同问题的难度差异(简单题全对时 std=0 除外)

局限性

  1. 组内多样性依赖:如果GGG个输出高度相似(如模型已收敛),std 趋近于 0,优势全为 0,训练停滞
  2. 开放式任务表现一般:对于创意写作、开放式对话等奖励稀疏/主观的任务,组内相对奖励不如 PPO 稳定
  3. 推理成本:每次更新需要采样GGG个完整序列,前向推理量是 PPO 的GGG倍(但省掉了 Critic 的前向+反向)
  4. std=0 陷阱:如果组内所有答案都正确(或都错误),标准差为 0,此时 advantage 无定义,需平滑处理(如加 epsilon 或跳过更新)

八、一句话总结

GRPO 的本质是“用统计学替代预测学”:既然训练一个 Critic 去预测语言生成的未来价值那么难,不如对同一个问题采样一组答案,用它们之间的相对排名来告诉模型“这次你答得比同班同学好还是差”。这种“无 Critic 的 PPO”在数学、代码等确定性奖励任务上,以更低的显存和更简单的实现,达到了与 PPO 相当甚至更好的效果。

http://www.jsqmd.com/news/719640/

相关文章:

  • 2026年4月福州外墙/干挂/家具/别墅外墙/石材家具厂家选购指南:认准福建省峰群建筑装饰有限公司 - 2026年企业推荐榜
  • 2026年昆明代理记账与工商变更一站式财税服务深度横评指南 - 优质企业观察收录
  • Windows系统优化神器Winhance:告别卡顿的终极解决方案
  • 多维度图表:带自定义入场动画的折线图|Highcharts 代码示列
  • 2026年遵义央国企笔试面试培训机构优选 专注本土考情且服务有保障 - 深度智识库
  • 三步构建企业级开源CRM系统:EspoCRM全栈部署实战
  • QLVideo:深度解析macOS非原生视频格式的终极预览解决方案
  • 别再为mxnet安装报错头疼了!手把手教你用conda虚拟环境搞定版本兼容
  • 魔兽争霸3终极优化工具:WarcraftHelper 5分钟快速上手指南
  • 什么泥膜清洁毛孔效果好?12天解锁素颜柔光感干净肤质 - 全网最美
  • 南昌好的医疗纠纷代理律师推荐:为何律师的医法双背景更受信赖 - 品牌2025
  • 猫抓Cat-Catch:浏览器资源嗅探扩展的终极免费解决方案
  • 清洁毛孔泥膜哪个牌子好?12天告别面部灰蒙蒙打造原生透光肌 - 全网最美
  • 中国信通院启动“模数共振”行动:构建“高质量数据—高效能模型—高价值应用”良性循环,赋能新型工业化
  • 2026年AI毕业论文工具深度实测|7款AI毕业论文写作工具横评,这款AI领衔毕业安全线 - 逢君学术-AI论文写作
  • 前端性能优化:移动端优化详解
  • Highcharts的不规则间隔的时间数据图表示例|制作时间序列积雪深度对比图
  • 2026年装甲门厂家怎么选?从行业痛点看高端入户门的真正差异 - 企师傅推荐官
  • Barrier终极指南:如何用一套键鼠无缝控制Windows、macOS和Linux三台电脑?[特殊字符]
  • 2026年福田区靠谱GEO优化公司推荐技术实力与服务价值拆解 - 奔跑123
  • 生信总监,为何高薪裸辞?
  • 2026南昌医疗纠纷律师怎么选?医法双背景的律师提供专业代理方案 - 品牌2025
  • Mac Mouse Fix:5分钟让你的普通鼠标在macOS上超越触控板体验
  • 2026年云南昆明曲靖代理记账与工商变更全生命周期企业财税服务深度横评 - 优质企业观察收录
  • 2026年昆明代理记账与工商变更全生命周期服务深度横评——云南企业财税合规一站式解决方案 - 优质企业观察收录
  • 算网LLaMA-Factory镜像:零代码轻松微调百余种大模型
  • 3分钟看懂一个AI概念:卷积到底在干什么?
  • 2026年昆明代理记账与工商变更全生命周期服务深度横评|曲靖企业财税合规指南 - 优质企业观察收录
  • 【官方权威】2026年5月卡地亚售后服务中心地址变更通告:全国45城网点+营业时间全新发布+最新统一维修热线400-106-3365 - 速递信息
  • 别再让中文用户名坑了你!手把手教你解决Keil工程路径报错(附D盘迁移指南)