告别 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
相关推荐
库拉大叔1 小时前
GPT-5.5办公落地全解析:四大场景实测+避坑指南+多模型策略
人工智能·gpt
2601_959986241 小时前
M4Markets:把信息透明度做到位——路径分析与提示整理
大数据·人工智能
YueJoy.AI1 小时前
敏捷需求优先级矩阵驱动迭代规划
人工智能·ai·语言模型
豆豆1 小时前
当GEO遇见CMS:企业网站管理系统如何适配AI大模型?
人工智能·cms·ai大模型·seo优化·geo优化·企业建站·企业网站管理系统
程序猿乐锅1 小时前
吴恩达Prompt提示词课有感
人工智能·prompt
倔强的石头1061 小时前
Dify 接入蓝耘 MaaS:从 0 搭建一个企业知识库问答助手
人工智能·dify·蓝耘
黄啊码1 小时前
【黄啊码】为什么你写好的 Skill,Agent 也许看不懂?
人工智能
YueJoy.AI1 小时前
非结构化业务中AI创业原型系统的极速交付
人工智能·ai·语言模型
黎阳之光1 小时前
无感定位·智管全域:黎阳之光人员无感定位管理系统,重新定义安全与效率
人工智能·物联网·算法·安全·数字孪生