【强化学习】DeepSeek 原理深度讲解,20W字总结(十二)

😊你好,我是小航,一个正在变秃、变强的文艺倾年。
🔔本文讲解【强化学习】GRPO 与 DeepSeek,20W字总结(十二),期待与你一同探索、学习、进步,一起卷起来叭!
🎯 把我的博客装进你的 Claude Code,它就是你的 AI 学习搭子
想随时搜我的文章、让 AI 帮你深度讲解甚至出面试题?复制下面这段提示词丢进你的 Claude Code——它会自动生成一个本地 SKILL,之后你直接说「搜一下强化学习的文章」就行。RSS 自动同步最新内容,不用手动存任何文件。
请为这个 CSDN 博客创建一个本地 SKILL(存到 .claude/skills/csdn-blog/SKILL.md): RSS 源:https://rss.csdn.net/m0_51517236/rss/map 支持三件事:① 列出最新文章(标题+链接+摘要);② 按关键词搜索; ③ 抓取指定文章全文,作为 AI 学习助手 / 面试官深度讲解并出题考核我。 SKILL.md 里写清楚 RSS URL、调用方式和示例。生成完就能用自然语言搜文章了。一键订阅,长期可用。🚀
前面我们讲了 PPO 和 DPO 两大对齐算法。这篇进入 GRPO(Group Relative Policy Optimization,组相对策略优化)——DeepSeek 的选择。DeepSeek-Math 和爆火的 DeepSeek-R1,推理能力强得离谱,背后靠的就是它。

强化学习增强大模型推理,是这两年的大热门。GRPO 解决了"把 RL 用到 LLM 上"的几个独特痛点。
PPO vs GRPO:三个关键改进
PPO 一直是 RL 微调 LLM 的首选(第 6~9 篇讲过)。但 PPO 用在大模型上有个累赘——得带一个价值函数网络(Critic),和策略网络一样大,显存直接翻倍。
GRPO 建立在 PPO 之上,砍了三刀:
- 去掉价值函数网络——省一半显存/计算
- 采样一组输出,用组内的相对关系估计优势(更稳)
- 更保守的更新——把 KL 惩罚直接写进奖励

LLM 作为策略:token 就是动作
在 GRPO 里,大语言模型就是策略网络(Actor)。问题 q q q 是输入状态,生成的 token 序列就是动作:
π θ ( a ∣ q ) = ∏ t = 1 N π θ ( a t ∣ q , a < t ) \pi_\theta(a|q) = \prod_{t=1}^{N} \pi_\theta(a_t | q, a_{<t}) πθ(a∣q)=t=1∏Nπθ(at∣q,a<t)
因为 LLM 是自回归的,生成本质上是顺序的——每个 token 都基于前面的 token 生成,每生成一个 token 就相当于 RL 框架里走了一步动作 a t a_t at。
组相对优势:GRPO 的灵魂
PPO 算优势,靠价值函数 V ( s ) V(s) V(s) 当基线(第 5 篇讲过:优势 = 回报 − V(s))。GRPO 没有 V ( s ) V(s) V(s),那基线从哪来?
让一组回答互相当裁判。
具体做法:对同一个问题 q q q,让旧策略采样一组 G G G 个回答 o 1 , o 2 , … , o G o_1, o_2, \dots, o_G o1,o2,…,oG,每个回答都算一个奖励 r i r_i ri。然后对这一组奖励做归一化当优势:
A ^ i , t = r ~ i = r i − mean ( r ) std ( r ) \hat{A}_{i,t} = \tilde{r}_i = \frac{r_i - \text{mean}(r)}{\text{std}(r)} A^i,t=r~i=std(r)ri−mean(r)
意思是:某个回答的奖励,减去这组的平均奖励,再除以标准差。比组内平均好的回答得正优势(增强),比平均差的得负优势(压制)——这就是"组相对"。
而每个 token 的奖励里,还直接塞了 KL 惩罚(防止偏离参考模型太远):
r t = r ϕ ( s , a ≤ t ) − β log π θ ( a t ∣ s , a < t ) π r e f ( a t ∣ s , a < t ) r_t = r_\phi(s, a_{\le t}) - \beta \log \frac{\pi_\theta(a_t | s, a_{<t})}{\pi_{ref}(a_t | s, a_{<t})} rt=rϕ(s,a≤t)−βlogπref(at∣s,a<t)πθ(at∣s,a<t)
第一项是任务奖励(比如答对给 1),第二项就是和参考模型的 KL(偏离越多扣越多)。
这个设计很妙:PPO 要专门养一个价值网络当裁判,GRPO 让同一批回答互相当裁判——既省了价值网络,又因为"组内对比"天然稳健。

GRPO 的目标函数
对每个问题 q q q,从旧策略 π θ o l d \pi_{\theta_{old}} πθold 采样一组输出 o 1 , … , o G o_1, \dots, o_G o1,…,oG,最大化这个目标(结构和 PPO 的 clip 很像,只是优势换成了组相对的 A ^ \hat{A} A^,KL 作为惩罚项加进去):
- 用**裁剪(clip)**做保守更新(和 PPO 一样)
- 把对参考模型的 KL 散度作为惩罚,防止策略跑偏
整体仍是我们熟悉的 PPO 那套"clip + 约束"骨架,只是优势的计算方式变了——从"价值网络估计"变成了"组内相对"。
小结
GRPO 的三个关键创新,都直指"把 RL 用到大模型上"的痛点:
| 创新 | 解决什么 |
|---|---|
| 去掉价值函数网络 | 省一半显存(LLM 太大,这点很关键) |
| 组相对优势估计 | 不用价值网络也能稳稳估优势 |
| KL 写进奖励 | 更保守的更新,训练更稳 |
DeepSeek-Math 和 DeepSeek-R1 的成功,证明了这套方法在推理密集型任务(数学、代码)上特别能打。
GRPO 之后还有改进款:字节的 DAPO、Qwen3 用的 GSPO 等。
下一篇我们就用 GRPO 实战微调 LLM,看"组采样 + 相对优势"的代码怎么写。
📌 [ 笔者 ] 文艺倾年
📃 [ 更新 ] 2026.06.14
❌ [ 勘误 ] /* 暂无 */
📜 [ 声明 ] 由于作者水平有限,本文有错误和不准确之处在所难免,
本人也很想知道这些错误,恳望读者批评指正!

更多推荐
所有评论(0)