告别 Value Model:深度解析 GRPO 与 PPO 的核心差异

告别 Value Model:深度解析 GRPO 与 PPO 的核心差异

大家好,我是你们的老朋友,一名在代码世界摸爬滚打多年的技术博主。

最近,随着 DeepSeek-R1 等开源模型的爆火,GRPO(Group Relative Policy Optimization) 这个词频繁出现在大家的视野中。很多开发者朋友在后台留言问我:"GRPO 到底是什么?它和经典的 PPO 有什么区别?为什么现在大模型训练都在转向 GRPO?"

今天,我们就抛开晦涩的数学公式,用最通俗易懂的语言,结合图表和代码逻辑,彻底讲清楚 GRPO 和 PPO 的核心区别 ,特别是它们在信用分配优势估计方差控制这三个关键维度上的不同。


一句话概括核心差异

如果要用最简短的话来总结两者的区别,那就是:

PPO :依赖一个额外的"价值模型(Value Model)"来估计当前状态的好坏,通过 Reward - Value 计算优势。

GRPO不再训练价值模型,而是让同一个 Prompt 生成一组回答,通过"组内相对奖励"来计算优势。

本质上,GRPO 是 PPO 在大语言模型(LLM)场景下的一种简化与改进。它砍掉了最难训练的 Value Model,用更简单的统计方法实现了更稳定的训练效果。


一、 PPO 的传统流程与痛点

要理解 GRPO 的好,先得看看 PPO 在 LLM 场景下的"难"。

1. PPO 是如何工作的?

在传统的 PPO(Proximal Policy Optimization)算法中,训练流程通常包含两个模型:

  1. 策略模型(Actor):负责生成文本。
  2. 价值模型(Critic/Value Model) :负责评估当前生成的文本状态值 V ( s ) V(s) V(s)。

其核心计算公式为:

A d v a n t a g e = R e w a r d − V ( s ) Advantage = Reward - V(s) Advantage=Reward−V(s)

也就是说,PPO 认为一个动作(Token)好不好,要看它的实际奖励比"预期价值"高多少。

2. PPO 在 LLM 中的困境

虽然 PPO 在游戏控制等领域表现优异,但在面对动辄几十亿参数、序列极长的 LLM 时,它暴露出了严重的问题:

  • Value Model 极难训练:文本的状态空间是离散且巨大的,Token 序列很长,导致 Value Model 很难准确预测每一步的价值。
  • 训练成本高昂:你需要额外维护一个和 Actor 参数量相当的 Critic 模型,显存占用翻倍。
  • 误差传播:如果 Value Model 估计不准(这在 LLM 中很常见),那么计算出的 Advantage 就会偏差巨大,直接导致策略更新方向错误,训练不稳定甚至崩溃。

#mermaid-svg-aFYoO3ZSLSsQiFaA{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-aFYoO3ZSLSsQiFaA .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-aFYoO3ZSLSsQiFaA .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-aFYoO3ZSLSsQiFaA .error-icon{fill:#552222;}#mermaid-svg-aFYoO3ZSLSsQiFaA .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-aFYoO3ZSLSsQiFaA .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-aFYoO3ZSLSsQiFaA .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-aFYoO3ZSLSsQiFaA .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-aFYoO3ZSLSsQiFaA .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-aFYoO3ZSLSsQiFaA .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-aFYoO3ZSLSsQiFaA .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-aFYoO3ZSLSsQiFaA .marker{fill:#333333;stroke:#333333;}#mermaid-svg-aFYoO3ZSLSsQiFaA .marker.cross{stroke:#333333;}#mermaid-svg-aFYoO3ZSLSsQiFaA svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-aFYoO3ZSLSsQiFaA p{margin:0;}#mermaid-svg-aFYoO3ZSLSsQiFaA .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-aFYoO3ZSLSsQiFaA .cluster-label text{fill:#333;}#mermaid-svg-aFYoO3ZSLSsQiFaA .cluster-label span{color:#333;}#mermaid-svg-aFYoO3ZSLSsQiFaA .cluster-label span p{background-color:transparent;}#mermaid-svg-aFYoO3ZSLSsQiFaA .label text,#mermaid-svg-aFYoO3ZSLSsQiFaA span{fill:#333;color:#333;}#mermaid-svg-aFYoO3ZSLSsQiFaA .node rect,#mermaid-svg-aFYoO3ZSLSsQiFaA .node circle,#mermaid-svg-aFYoO3ZSLSsQiFaA .node ellipse,#mermaid-svg-aFYoO3ZSLSsQiFaA .node polygon,#mermaid-svg-aFYoO3ZSLSsQiFaA .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-aFYoO3ZSLSsQiFaA .rough-node .label text,#mermaid-svg-aFYoO3ZSLSsQiFaA .node .label text,#mermaid-svg-aFYoO3ZSLSsQiFaA .image-shape .label,#mermaid-svg-aFYoO3ZSLSsQiFaA .icon-shape .label{text-anchor:middle;}#mermaid-svg-aFYoO3ZSLSsQiFaA .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-aFYoO3ZSLSsQiFaA .rough-node .label,#mermaid-svg-aFYoO3ZSLSsQiFaA .node .label,#mermaid-svg-aFYoO3ZSLSsQiFaA .image-shape .label,#mermaid-svg-aFYoO3ZSLSsQiFaA .icon-shape .label{text-align:center;}#mermaid-svg-aFYoO3ZSLSsQiFaA .node.clickable{cursor:pointer;}#mermaid-svg-aFYoO3ZSLSsQiFaA .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-aFYoO3ZSLSsQiFaA .arrowheadPath{fill:#333333;}#mermaid-svg-aFYoO3ZSLSsQiFaA .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-aFYoO3ZSLSsQiFaA .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-aFYoO3ZSLSsQiFaA .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-aFYoO3ZSLSsQiFaA .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-aFYoO3ZSLSsQiFaA .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-aFYoO3ZSLSsQiFaA .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-aFYoO3ZSLSsQiFaA .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-aFYoO3ZSLSsQiFaA .cluster text{fill:#333;}#mermaid-svg-aFYoO3ZSLSsQiFaA .cluster span{color:#333;}#mermaid-svg-aFYoO3ZSLSsQiFaA div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-aFYoO3ZSLSsQiFaA .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-aFYoO3ZSLSsQiFaA rect.text{fill:none;stroke-width:0;}#mermaid-svg-aFYoO3ZSLSsQiFaA .icon-shape,#mermaid-svg-aFYoO3ZSLSsQiFaA .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-aFYoO3ZSLSsQiFaA .icon-shape p,#mermaid-svg-aFYoO3ZSLSsQiFaA .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-aFYoO3ZSLSsQiFaA .icon-shape .label rect,#mermaid-svg-aFYoO3ZSLSsQiFaA .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-aFYoO3ZSLSsQiFaA .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-aFYoO3ZSLSsQiFaA .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-aFYoO3ZSLSsQiFaA :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 生成 Token
给出 Reward
估计 V(s)
Advantage = R - V
Prompt
Actor Model
Response
Reward Model
PPO Advantage
Critic / Value Model
Policy Update

图中红色部分展示了 PPO 中难以训练的 Value Model 模块。


二、 GRPO 的核心思想:化繁为简

GRPO(Group Relative Policy Optimization)由 DeepSeek 团队提出,它的核心思想非常直观:既然绝对价值很难估,那我们就比相对好坏。

1. 不需要 Value Model

GRPO 直接移除了 Critic/Value Model。这意味着:

  • 显存节省:少训练一个大模型。
  • 稳定性提升:消除了 Value 估计误差带来的噪声。

2. "分组"生成与比较

GRPO 的做法是:对于同一个 Prompt,让 Actor 模型一次性生成 G G G 个不同的回答(例如 4 个或 8 个)。

举个例子:

Prompt: "请解释糖尿病的成因。"

生成的回答组:

  • 回答 A: 详细且准确... (Reward: 0.9)
  • 回答 B: 较为准确... (Reward: 0.7)
  • 回答 C: 有错误... (Reward: 0.2)
  • 回答 D: 一般... (Reward: 0.5)

3. 如何计算 Advantage?

GRPO 不再使用 R − V R - V R−V,而是计算组内均值,然后看每个回答偏离均值多少。

  1. 计算组内平均奖励:

    μ = 0.9 + 0.7 + 0.2 + 0.5 4 = 0.575 \mu = \frac{0.9 + 0.7 + 0.2 + 0.5}{4} = 0.575 μ=40.9+0.7+0.2+0.5=0.575

  2. 计算每个回答的优势(Advantage):

    • A d v A = 0.9 − 0.575 = 0.325 Adv_A = 0.9 - 0.575 = 0.325 AdvA=0.9−0.575=0.325 (比平均好,强化!)
    • A d v B = 0.7 − 0.575 = 0.125 Adv_B = 0.7 - 0.575 = 0.125 AdvB=0.7−0.575=0.125 (比平均好,轻微强化)
    • A d v C = 0.2 − 0.575 = − 0.375 Adv_C = 0.2 - 0.575 = -0.375 AdvC=0.2−0.575=−0.375 (比平均差,抑制!)
    • A d v D = 0.5 − 0.575 = − 0.075 Adv_D = 0.5 - 0.575 = -0.075 AdvD=0.5−0.575=−0.075 (略低于平均,轻微抑制)

本质逻辑:谁比这一组的平均水平好,就强化谁;谁比平均水平差,就惩罚谁。
#mermaid-svg-CrXygNEKzwW5rcrB{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-CrXygNEKzwW5rcrB .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-CrXygNEKzwW5rcrB .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-CrXygNEKzwW5rcrB .error-icon{fill:#552222;}#mermaid-svg-CrXygNEKzwW5rcrB .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-CrXygNEKzwW5rcrB .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-CrXygNEKzwW5rcrB .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-CrXygNEKzwW5rcrB .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-CrXygNEKzwW5rcrB .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-CrXygNEKzwW5rcrB .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-CrXygNEKzwW5rcrB .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-CrXygNEKzwW5rcrB .marker{fill:#333333;stroke:#333333;}#mermaid-svg-CrXygNEKzwW5rcrB .marker.cross{stroke:#333333;}#mermaid-svg-CrXygNEKzwW5rcrB svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-CrXygNEKzwW5rcrB p{margin:0;}#mermaid-svg-CrXygNEKzwW5rcrB .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-CrXygNEKzwW5rcrB .cluster-label text{fill:#333;}#mermaid-svg-CrXygNEKzwW5rcrB .cluster-label span{color:#333;}#mermaid-svg-CrXygNEKzwW5rcrB .cluster-label span p{background-color:transparent;}#mermaid-svg-CrXygNEKzwW5rcrB .label text,#mermaid-svg-CrXygNEKzwW5rcrB span{fill:#333;color:#333;}#mermaid-svg-CrXygNEKzwW5rcrB .node rect,#mermaid-svg-CrXygNEKzwW5rcrB .node circle,#mermaid-svg-CrXygNEKzwW5rcrB .node ellipse,#mermaid-svg-CrXygNEKzwW5rcrB .node polygon,#mermaid-svg-CrXygNEKzwW5rcrB .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-CrXygNEKzwW5rcrB .rough-node .label text,#mermaid-svg-CrXygNEKzwW5rcrB .node .label text,#mermaid-svg-CrXygNEKzwW5rcrB .image-shape .label,#mermaid-svg-CrXygNEKzwW5rcrB .icon-shape .label{text-anchor:middle;}#mermaid-svg-CrXygNEKzwW5rcrB .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-CrXygNEKzwW5rcrB .rough-node .label,#mermaid-svg-CrXygNEKzwW5rcrB .node .label,#mermaid-svg-CrXygNEKzwW5rcrB .image-shape .label,#mermaid-svg-CrXygNEKzwW5rcrB .icon-shape .label{text-align:center;}#mermaid-svg-CrXygNEKzwW5rcrB .node.clickable{cursor:pointer;}#mermaid-svg-CrXygNEKzwW5rcrB .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-CrXygNEKzwW5rcrB .arrowheadPath{fill:#333333;}#mermaid-svg-CrXygNEKzwW5rcrB .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-CrXygNEKzwW5rcrB .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-CrXygNEKzwW5rcrB .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-CrXygNEKzwW5rcrB .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-CrXygNEKzwW5rcrB .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-CrXygNEKzwW5rcrB .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-CrXygNEKzwW5rcrB .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-CrXygNEKzwW5rcrB .cluster text{fill:#333;}#mermaid-svg-CrXygNEKzwW5rcrB .cluster span{color:#333;}#mermaid-svg-CrXygNEKzwW5rcrB div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-CrXygNEKzwW5rcrB .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-CrXygNEKzwW5rcrB rect.text{fill:none;stroke-width:0;}#mermaid-svg-CrXygNEKzwW5rcrB .icon-shape,#mermaid-svg-CrXygNEKzwW5rcrB .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-CrXygNEKzwW5rcrB .icon-shape p,#mermaid-svg-CrXygNEKzwW5rcrB .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-CrXygNEKzwW5rcrB .icon-shape .label rect,#mermaid-svg-CrXygNEKzwW5rcrB .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-CrXygNEKzwW5rcrB .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-CrXygNEKzwW5rcrB .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-CrXygNEKzwW5rcrB :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} Prompt
Actor 生成 G 个回答
Response 1
Response 2
Response 3
Response 4
Reward Model 打分
计算组内 Mean & Std
计算 Relative Advantage
策略更新

图中绿色部分展示了 GRPO 如何通过统计组内数据来替代复杂的 Value Model。


三、 深度对比:信用分配、优势估计与方差控制

这是大家最关心的技术细节,我们从三个维度逐一拆解。

1. 信用分配(Credit Assignment)

信用分配指的是:如何判断某个具体的动作(Token)对最终结果贡献了多少?

  • PPO(绝对视角)

    • 依赖 Value Model 来判断当前状态 s s s 的绝对价值。
    • 问题 :在长文本生成中,中间某个 Token 的好坏很难通过一个标量 V ( s ) V(s) V(s) 准确体现。Value 模型容易"瞎猜",导致信用分配偏差。
  • GRPO(相对视角)

    • 不依赖绝对价值,而是基于组内相对比较
    • 优势:在同一个 Prompt 下,不同回答之间的语义差异是可控的。如果回答 A 比回答 B 得分高,那么 A 中特有的那些 Token 就更值得被强化。这种"排序优化"的思路更符合 LLM 的训练直觉------我们往往很难定义什么是"绝对完美"的回答,但很容易判断"A 比 B 好"。

2. 优势估计(Advantage Estimation)

  • PPO

    • 通常使用 GAE (Generalized Advantage Estimation)
    • 公式涉及 λ \lambda λ 和 γ \gamma γ 等超参数,且严重依赖 Value Network 的输出。
    • 属于绝对优势估计
  • GRPO

    • 直接使用统计量:
      A i = r i − mean ( g r o u p ) std ( g r o u p ) + ϵ A_i = \frac{r_i - \text{mean}(group)}{\text{std}(group) + \epsilon} Ai=std(group)+ϵri−mean(group)
    • 这里不仅减去了均值,还除以了标准差进行标准化。
    • 属于相对优势估计。这种方法简单粗暴但极其有效,因为它自动适应了不同 Prompt 的难度分布。

3. 方差控制(Variance Reduction)

在强化学习中,高方差会导致训练震荡,无法收敛。我们需要降低方差。

  • PPO 的做法

    • 引入 Value Baseline 。因为 V ( s ) V(s) V(s) 是一个基准线,减去它可以减少 Reward 波动带来的影响。
    • 风险 :如果 Baseline ( V ( s ) V(s) V(s)) 本身估计不准,反而会增加噪声。
  • GRPO 的做法

    • 利用 组内均值归一化
    • 为什么有效? 因为同一组回答是针对同一个 Prompt 生成的,它们的 Reward 分布天然具有相似性(同分布)。减去组内均值,相当于去除了该 Prompt 本身的"难度基线"(有些问题本身就难,得分普遍低;有些简单,得分普遍高)。
    • 除以标准差则进一步将优势映射到统一的尺度上,极大地稳定了梯度更新。

四、 为什么 GRPO 特别适合 LLM?

总结起来,GRPO 在大模型领域取代 PPO 成为主流,主要归功于以下三点:

  1. 工程极简,成本降低

    不需要训练和维护庞大的 Value Model,显存占用显著降低,训练链路更短,调试更容易。

  2. 符合"排序"直觉

    LLM 的本质往往是 Next Token Prediction,而在 RLHF 阶段,我们更关心的是偏好排序(Preference Ranking)。GRPO 的组内比较机制天然契合"优选法",即在一堆候选中挑出最好的进行强化。

  3. 训练更稳定

    避免了 PPO 中常见的"Value Model 崩塌"问题。在 PPO 训练中,经常会出现 Actor 和 Critic 互相博弈导致发散的情况,而 GRPO 通过统计归一化,使得梯度方向更加稳健。


五、 代码逻辑示例

为了让大家更直观地理解 GRPO 的优势计算过程,这里提供一段简化的 Python 伪代码逻辑:

python 复制代码
import numpy as np

def compute_grpo_advantages(rewards):
    """
    计算 GRPO 的优势值
    :param rewards: 同一组 prompt 生成的多个回答的奖励列表, e.g., [0.9, 0.7, 0.2, 0.5]
    :return: 优势值列表
    """
    rewards = np.array(rewards)
    
    # 1. 计算组内均值
    mean_reward = np.mean(rewards)
    
    # 2. 计算组内标准差
    std_reward = np.std(rewards)
    
    # 3. 计算优势 (标准化处理)
    # epsilon 防止除以零
    advantages = (rewards - mean_reward) / (std_reward + 1e-8)
    
    return advantages

# 示例数据
group_rewards = [0.9, 0.7, 0.2, 0.5]
advantages = compute_grpo_advantages(group_rewards)

print(f"Rewards: {group_rewards}")
print(f"Advantages: {advantages}")
# 输出类似:
# Rewards: [0.9, 0.7, 0.2, 0.5]
# Advantages: [ 1.18,  0.59, -1.48, -0.29] 
# 正值表示优于平均,负值表示劣于平均

这段代码清晰地展示了 GRPO 如何通过简单的统计运算,完成了原本需要复杂神经网络才能完成的优势估计任务。


六、 总结

特性 PPO GRPO
价值模型 (Critic) 需要,且难以训练 不需要,直接移除
优势估计方式 绝对优势 ( R − V R - V R−V) 相对优势 ( R − Mean g r o u p R - \text{Mean}_{group} R−Meangroup)
方差控制手段 Value Baseline 组内均值与标准差归一化
信用分配逻辑 依赖状态价值估计 依赖组内相对排序
LLM 训练稳定性 较低,易受 Critic 误差影响 ,统计特性更稳定
资源消耗 高 (需额外显存跑 Critic) 低 (仅需 Actor + Reward Model)

最后总结一下:

PPO 像是一个严谨但沉重的会计师,试图精确计算每一笔账目的绝对价值,但常常因为账目太复杂(LLM 状态空间大)而算错。

GRPO 则像是一个聪明的竞赛评委,它不关心绝对分数是多少,只关心在这一组选手中,谁比平均分高,谁就是优胜者。这种相对主义的智慧,恰恰解决了大模型训练中的诸多难题。

希望这篇文章能帮你理清 GRPO 和 PPO 的关系。如果你正在尝试微调大模型,不妨试试 GRPO,它可能会给你带来惊喜!


参考资料

  1. DeepSeek Technical Report : DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning
  2. PPO Original Paper : Proximal Policy Optimization Algorithms
  3. Hugging Face Transformers RLHF Docs : Reinforcement Learning from Human Feedback
相关推荐
奔跑中的小象9 小时前
统信UOS + 天数AI卡部署SGLang服务手册
人工智能·uos·sglang·天数智芯
DevSecOps选型指南9 小时前
中国版Mythos,为何是悬镜安全灵脉CodeAI?
人工智能·安全
Shockang9 小时前
LangGraph 状态机实战
人工智能
刹那芳华19929 小时前
循环神经网络的从零开始实现(RNN)
人工智能·rnn·深度学习
阿童木写作9 小时前
跨境图片翻译工具多合一,批量图片视频字幕翻译加智能抠图
人工智能·python·音视频·语音识别
科技之门9 小时前
AI3D从建模到贴图、绑骨和动画的完整流程怎么做?V2Fun完整工作流指南
人工智能·3d·贴图
宇宙第一小趴菜9 小时前
二、机器学习的应用领域和发展史
人工智能·机器学习
前端开发江鸟10 小时前
我写过 MCP Server,却一直以为 MCP 只有 Tool
人工智能
天国梦10 小时前
自习室智能化升级避坑指南:天学网AI智习室方案实测与选型建议
大数据·人工智能
阿里云云原生10 小时前
可用性从 99.9% 跃升至 99.995%:畅捷通如何用 AI 重塑运维底座?
运维·网络·人工智能