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

GRPO(Group Relative Policy Optimization) 算法的演进脉络以及DAPO、VAPO、SRPO、GFPO的区别与联系

“GRPO 家族算法操作手册”


一、所有算法的共同起点

不管哪种变体,前 3 步是完全一样的


Step 0:准备三样东西

  1. 一个 当前策略模型
    \( \pi_\theta(y \mid x) \)

  2. 一个 reward 计算方式

    • rule / verifier
    • RM
    • GPT-judge
    • correctness / preference
  3. 一个 prompt 集合
    \( x \sim \mathcal{D} \)


Step 1:对同一个 prompt 采样一组回答(Group)

对每个 prompt (x):

x├─ y₁ ~ πθ(·|x)├─ y₂ ~ πθ(·|x)├─ ...└─ y_K ~ πθ(·|x)

数学表示:

\( {y_i}*{i=1}^K \sim \pi*\theta(\cdot \mid x) \)

📌 关键直觉

不是“一个问题一个答案”,而是
“一个问题,一组可比的答案”


Step 2:给每个回答打 reward

\( r_i = r(x, y_i) \)

现在你手里有一组:

response reward
(y_1) (r_1)
(y_2) (r_2)
... ...

接下来,四种算法开始分道扬镳 👇


二、DAPO:最简单、最直观的版本

“谁比组内平均好,我就奖励谁”


Step 3(DAPO):算 group baseline

\( \bar r = \frac{1}{K}\sum_{j=1}^K r_j \)


Step 4(DAPO):算 advantage

\( A_i^{\text{DAPO}} = r_i - \bar r \)

📌 人话理解:

  • 比平均好 → 正 advantage → 被强化
  • 比平均差 → 负 advantage → 被压制

Step 5(DAPO):更新策略

\(\mathcal{L}= \frac{1}{K} \sum_{i=1}^K A_i \log \pi_\theta(y_i \mid x)\)

梯度直觉:

“多给好回答梯度,少给甚至惩罚差回答


🧠 DAPO 的行为特点

  • 学得快
  • 很激进
  • reward 一旦偏 → 模型就偏

三、VAPO:给 DAPO 加一个“理性大脑”

“别只看这一组,整体期望也要考虑”


Step 3(VAPO):训练 / 使用 value 预测器

\( V_\phi(x) \approx \mathbb{E}[r \mid x] \)

它回答一个问题:

“这个 prompt,大概能拿多少分?”


Step 4(VAPO):混合 baseline

常见两种:

方式 A:纯 value baseline

\( A_i = r_i - V_\phi(x) \)

方式 B:group + value(更稳)

\( A_i = r_i - \alpha \bar r - (1-\alpha)V_\phi(x) \)


Step 5(VAPO):策略更新(同 DAPO)

\(\mathcal{L}= \sum_i A_i \log \pi_\theta(y_i \mid x)\)

🧠 VAPO 的行为特点

  • 不容易“赌一个极端答案”
  • 收敛平滑
  • 适合语言质量 / 偏好类 reward

四、SRPO:我只和“过去的自己”比

“今天的我,有没有比昨天好?”


Step 3(SRPO):冻结一个 reference policy

\( \pi_{\text{ref}} = \pi_{\theta_{\text{old}}} \)


Step 4(SRPO):构造对照回答

可以是:

  • ref policy 生成的回答
  • 或同一回答在旧模型下的 logprob

Step 5(SRPO):算 advantage(两种常见)

显式 reward 差

\( A_i = r(y_i) - r(y_i^{\text{ref}}) \)

隐式 KL-style(很常见)

\(A_i=\log \pi_\theta(y_i \mid x) \log \pi_{\text{ref}}(y_i \mid x)\)


Step 6(SRPO):更新策略

\(\mathcal{L}= \sum_i A_i \log \pi_\theta(y_i \mid x)\)


🧠 SRPO 的行为特点

  • 几乎不退化
  • 非常稳
  • 改进速度慢,但“步步为营”

五、GFPO:不只看分数,还看“谁比谁好”

“我关心排序,而不是绝对值”


Step 3(GFPO):在 group 内做排序

例如:

\( y_1 \succ y_3 \succ y_2 \succ y_4 \)

或构造成 pair:

\( (y_i, y_j), \quad y_i \text{ better than } y_j \)


Step 4(GFPO):pairwise 优化目标

最经典的:

\(\mathcal{L}=\sum_{(i,j)}\log \sigma \left(\log \pi(y_i|x)-\log \pi(y_j|x)\right)\)

📌 人话版:

“模型更应该把概率放在好回答上,而不是差回答上”


Step 5(GFPO):更新策略

  • 不需要 value
  • 不需要 baseline
  • 只靠 相对偏好结构

🧠 GFPO 的行为特点

  • 非常适合 reasoning / 多步任务
  • 不怕 reward scale
  • 信息密度最高,但实现最复杂

六、四种算法的“完整流程对比图”

Prompt x│▼
Sample K responses│▼
Compute rewards│├─ DAPO:   group mean → advantage → update│├─ VAPO:   value / mixed baseline → advantage → update│├─ SRPO:   ref policy comparison → advantage → update│└─ GFPO:   rank / pairwise → preference loss → update

七、一句话工程总结(很重要)

DAPO / VAPO / SRPO / GFPO 的区别,不在“采样和更新”,而在:
👉 你如何定义“谁更好”

  • DAPO:比同一批平均
  • VAPO:比期望
  • SRPO:比过去自己
  • GFPO:比别人(排序)

伪代码与落地选型


一、统一伪代码:一个 if 切换四种 GRPO 变体


统一训练框架(GRPO Family)

for x in dataloader:                      # promptY = sample_group(pi_theta, x, K)      # Step 1: group samplingR = [reward(x, y) for y in Y]         # Step 2: rewardif algo == "DAPO":baseline = mean(R)A = [r - baseline for r in R]elif algo == "VAPO":v = V_phi(x)                      # value predictionbaseline = alpha * mean(R) + (1-alpha) * vA = [r - baseline for r in R]elif algo == "SRPO":logp_ref = log_prob(pi_ref, Y, x)logp_cur = log_prob(pi_theta, Y, x)A = [lc - lr for lc, lr in zip(logp_cur, logp_ref)]elif algo == "GFPO":pairs = make_rank_pairs(Y, R)     # (i, j): yi better than yjloss = 0for (i, j) in pairs:loss += -log(sigmoid(logp(pi_theta, Y[i], x)- logp(pi_theta, Y[j], x)))loss.backward()continue                          # skip advantage path# shared policy gradient updateloss = 0for y, a in zip(Y, A):loss += -a * log_prob(pi_theta, y, x)loss.backward()

🔑 核心观察(非常重要)

四种算法 唯一的区别
“A 是怎么算出来的?”

采样、reward、backward 完全一致


二、为什么在 reasoning task 上 GFPO 会赢?

这是机制级原因,不是“实验结果好”。


1️⃣ reasoning reward 的致命问题

在 reasoning 任务中,reward 通常是:

  • 0 / 1(对 or 错)
  • 或 noisy judge score
  • 或最终 answer correctness

但 reasoning 的本质是:

中间步骤才是价值密集区,最终 reward 是稀疏 + 延迟的


举个真实例子

Prompt:

Solve: (17 × 23) − 19

四个回答:

response reasoning quality final answer reward
y₁ 正确链路 正确 1
y₂ 错一步 0
y₃ 推理几乎对 算错 0
y₄ 胡说八道 0

DAPO / VAPO 会发生什么?

  • group mean ≈ 0.25
  • y₁ 被强化
  • y₂、y₃、y₄ 一样被惩罚

y₃ 明明“更接近正确推理”,但信号丢失


2️⃣ GFPO 的核心优势:保留“相对信息”

GFPO 不问:

“你得了几分?”

而是问:

“你是不是比另一个回答更好?”


GFPO 在上面例子里会构造:

\( y_1 \succ y_3 \succ y_2 \succ y_4 \)

训练信号变成:

  • 推理接近正确的,比胡说八道的
  • 完全错的,比部分对的

📌 这是 reasoning 最需要的梯度形状


3️⃣ 数学上,GFPO 更接近 “step-level credit”

GFPO 的目标:

\( \log \pi(y_i|x) - \log \pi(y_j|x) \)

这等价于:

“在 token 空间中,
把概率质量从坏路径挪到好路径”

即便 reward 是 binary,排序仍然是 dense 的


4️⃣ 这就是为什么:

算法 reasoning 收敛
DAPO 快,但易崩
VAPO 稳,但慢
SRPO 极稳,但提升小
GFPO 最优

三、真实项目中:我该用哪一个?

我给你一个 “工程决策表”(不是论文)


🧠 任务类型 → 算法推荐

✅ 1. 数学 / 逻辑 / code / multi-step reasoning

👉 首选:GFPO

原因:

  • reward 稀疏
  • 中间步骤价值巨大
  • 排序信息远比绝对分数重要

📌 工程建议:

  • K ≥ 8
  • pairs 用 top-vs-bottom + adjacent
  • reward 可以是 judge score + correctness

✅ 2. 通用 instruction / 偏好对齐

👉 VAPO

  • 平滑
  • 不赌极端
  • 好调参

✅ 3. 安全 / 不退化 / 长周期训练

👉 SRPO

  • 当成“安全护栏”
  • 可与 VAPO / GFPO 混合

⚠️ 4. 快速验证 / ablation / 小数据

👉 DAPO

  • 实现简单
  • 但不建议长期用

四、工业界真实做法(你可能会用到)

不是四选一,而是“阶段切换”

典型 pipeline:

SFT↓
DAPO / VAPO  (warm-up)↓
GFPO        (reasoning 强化)↓
SRPO        (stabilize / long run)

五、一句话结论

GFPO 在 reasoning 上赢,不是因为 reward 更好,
而是因为它把“推理质量”从一个标量,
变成了一个“有序结构”。


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

相关文章:

  • 基于STM32的地质灾害监测系统
  • Java赋能:同城自助KTV线上预约系统源码揭秘
  • 基于STM32的厨房安全报警系统
  • 数据治理平台选型避坑指南:以算子级血缘为核心的“专而精”路径
  • 基于STM32的仓库温湿度数据获取系统
  • 美国AI求职咨询哪家高效:AI咨询专业指南 - 技研备忘录
  • 2026年广州茶桌椅子生产厂排名,哪家售后好费用多少 - 工业设备
  • 2026年ELISA试剂盒市场风向标:哪些品牌受青睐?小鼠的elisa试剂盒/牛试剂盒,试剂盒产品推荐 - 品牌推荐师
  • 2026年财税服务平台排名,华光讯质保赔付基金怎么用看这里 - 工业品网
  • 2026国内最新FOSB板十大源头厂家推荐!山东等地优质环保板材品牌权威榜单发布,适配全屋/高端/工程定制多场景 - 品牌推荐2026
  • 基于STM32的二维码识别系统的设计与实现
  • 2026北京护理老人家政服务公司十大品牌排名推荐 全流程服务榜单 北京口碑溯源 - 极欧测评
  • 解读温州华夏游乐设备价格与性价比,和同行比优势及口碑 - mypinpai
  • 跟我学python(2)- 第一个程序
  • 2026权威指南:爱色丽色差仪/分光光度计优质经销商TOP推荐 - 品牌推荐大师1
  • Java扫码点餐系统:国际支付与多语言新突破
  • 线程安全输出革命:C++20 <syncstream> 全面深度解析 —— 无锁、高效、可组合的并发日志与 I/O 新范式
  • 2026年螺栓按需定制直销价格分析,螺栓厂家直销 - myqiye
  • 生信初学者必收藏!深度拆解Nature重编程轨迹分析:从原始数据到多组学(bulk+bulk ATAC+scRNA+scATAC+WGBS)集成(附代码)
  • AbMole小讲堂丨Concanamycin A (Con A):V-ATP酶抑制剂在自噬、肿瘤和动物实验中的应用
  • 2026年AI玩具深度评测:告别噱头,一场关于“有效陪伴”的价值较量 - 品牌策略主理人
  • 计算机毕业设计之springboot古玩在线互动展示平台
  • vue基于python的宠物领养救助系统 宠物用品商城管理系统x26k3505-pycharm DJANGO FLASK
  • 市面上1000盒马鲜生礼品卡回收多少,2026详细折扣一览 - 淘淘收小程序
  • 解锁国际餐饮市场:Java扫码点餐源码全攻略
  • vue基于 sprint boot 的健身房会员卡管理系统的设计与实现xfb83oua-pycharm DJANGO FLASK
  • 2026年电路安全保护元器件推荐:65℃/72℃/轴向/金属壳/电饭煲/电水壶温度保险丝系列——惠州市凯森电子有限公司提供一站式解决方案 - 品牌推荐官
  • 原圈科技揭秘2026金融AI市场分析:决胜未来的实操指南
  • 告别“人工智障”:零代码驯服大语言模型,打造你的专属AI助手
  • 【收藏必备】AI Agent技术演进与企业级研发实践:从入门到实战的数智化之路