跳转至

1.9 GSPO — 序列级策略优化

论文:GSPO

Group Sequence Policy Optimization (Alibaba / Qwen Team, 2025) arXiv: 2507.18071 地位: 将优化粒度从 Token-Level 提升到 Sequence-Level,应用于 Qwen3

核心问题

GRPO 的 Token-Level IS 存在理论缺陷:奖励是 sequence-level 的,但 IS 矫正是 token-level 的——优化单元与奖励单元不匹配。更关键的是,token-level IS 权重对"分岔词"造成剧烈波动,在 MoE 模型中尤其不稳定(专家路由切换导致个别 token 的 \(r_{i,t}\) 突变)。

核心公式

\[ \mathcal{J}_{\text{GSPO}}(\theta) = \mathbb{E} \left[ \frac{1}{G} \sum_{i=1}^{G} \min\!\left( s_i(\theta)\, \hat{A}_i,\; \text{clip}\!\left(s_i(\theta),\, 1\!-\!\varepsilon,\, 1\!+\!\varepsilon\right) \hat{A}_i \right) \right] \]

序列级 IS 比率(逐 token 比率的几何平均):

\[ s_i(\theta) = \left(\frac{\pi_\theta(y_i \mid q)}{\pi_{\theta_{\text{old}}}(y_i \mid q)}\right)^{1/|y_i|} = \exp\!\left(\frac{1}{|y_i|} \sum_{t=1}^{|y_i|} \log \frac{\pi_\theta(y_{i,t} \mid q, y_{i,<t})}{\pi_{\theta_{\text{old}}}(y_{i,t} \mid q, y_{i,<t})}\right) \]

GRPO vs GSPO 梯度对比

  • GRPO: 同一序列内的不同 token 有不同权重 \(w_{i,t}\)
  • GSPO: 同一序列内的所有 token 有相同权重 \(s_i\)

这消除了 token 间的不一致性,也使得 MoE 模型不受个别 token 专家切换的影响(GRPO 需要 Routing Replay 来解决此问题,GSPO 不需要)。

极小裁剪范围

由于 \(s_i(\theta)\) 经过了 \(1/|y_i|\) 归一化,数值范围远比 token-level 紧凑:

\[ \varepsilon_{\text{left}} = 3 \times 10^{-4}, \quad \varepsilon_{\text{right}} = 4 \times 10^{-4} \]

(对比 GRPO 的 \(\varepsilon = 0.2 \sim 0.28\),差了三个数量级)

深入:MoE 训练为什么难

三个相互放大的不稳定来源

MoE 在 RL 训练中叠加了 dense 模型不存在的失稳因子。下面三点是 GSPO 论文(§5)以及后续工程实践(AReaL / ROLL / TRL ≥ 0.20)反复确认的根因。

① 路由波动(Routing Volatility)

MoE 每层都有一个 gating network 选 top-k 专家(Qwen3 MoE / Mixtral 量级约 ~10% 激活率)。参数更新后,gating logits 微小的变化就足以让 top-k 离散选择整体翻盘

\[ \underbrace{\text{argtopk}\big(\text{Gate}_{\theta_{\text{old}}}(h_t)\big)}_{\text{rollout 时走的专家集合}} \;\neq\; \underbrace{\text{argtopk}\big(\text{Gate}_{\theta}(h_t)\big)}_{\text{反向时走的专家集合}} \]

后果:同一条响应在 \(\pi_{\theta_{\text{old}}}\)\(\pi_\theta\) 下,前向走的物理子网络都不一样——相当于在拿"两个不同模型"算 importance ratio。

② Token-Level IS Ratio 在 MoE 下被噪声污染

GRPO 的 token-level ratio:

\[ r_{i,t}(\theta) = \frac{\pi_\theta(y_{i,t} \mid x, y_{i,<t})}{\pi_{\theta_{\text{old}}}(y_{i,t} \mid x, y_{i,<t})} \]

在 MoE 上,这个比值的分子分母走了不同的专家组合——\(r_{i,t}\) 的波动里绝大部分是路由噪声,而非策略偏移。Importance sampling 的数学前提("两个分布在同一支撑集上的相对概率")在 token-level + MoE 下根本不成立

③ Clip 在 token level 形同虚设

成千上万个 token-level ratio 各自独立在 \([1-\varepsilon, 1+\varepsilon]\) 边界上抖动:

  • Clip 不再是"trust region 围栏",而是在噪声场里随机过滤
  • 噪声沿响应长度积累,长 CoT / 长 trajectory 上越长越爆
  • 最终 entropy 坍塌或 reward 反向,模型 catastrophic & irreversible collapse

GSPO 论文原话(§3)

"the instability of GRPO stems from the fundamental misapplication and invalidation of importance sampling weights ... high-variance training noise that progressively accumulates with increased response length and is further amplified by the clipping mechanism."

对照:旧时代的工程补丁——Routing Replay

在 GSPO 出现之前,业界主流的 MoE RL 稳定化方案是 Routing Replay(HF transformers PR #44925、AReaL、早期 Qwen 内部实现都有):

步骤 做法
Rollout 时 录下每个 token 在每层选了哪些专家(output_moe_routing=True
反向训练时 强行重放同一套路由(moe_routing=… 覆盖 gate 决策),让 \(\pi_\theta\)\(\pi_{\theta_{\text{old}}}\) 走相同物理路径

代价

  1. 跨 EP(expert parallelism)同步 routing 索引,通信 / 内存开销显著
  2. Gating network 自己的梯度被冻住一部分,牺牲学习信号
  3. vLLM / DeepSpeed / HF 多后端 routing 一致性脆弱,infra 复杂度爆炸
  4. 只是"压住"问题,没消除 token-level IS 的数学根因

R2 vs R3:Routing Replay 自身的演进

Routing Replay 的关键工程问题是:到底在 RL pipeline 的哪个阶段录制路由? 业界(NVIDIA Megatron-LM / verl / ms-swift / 论文 arXiv:2510.11370)分化出两个版本:

                  R2 录制点 ↓        R3 录制点 ↓
                                    │                  │
时间轴 →    ① Rollout (vLLM)      ② Recompute (Megatron)    ③ Update (Megatron)
                │                       │                       │
                生成 response          重算 old logprobs         forward + backward
                [ 路由 A ]              [ 路由 B ]              [ 路由 C ]

            R2: 录 B → 强制 C 用 B    (① 阶段路由 A 被丢弃)
            R3: 录 A → 强制 B、C 都用 A  (整条 pipeline 锁定到 A)
维度 R2 Recompute Replay R3 Rollout Replay
录制位置 阶段 ②(训练引擎内部) 阶段 ①(推理引擎里)
录制内容 training engine 重算时的 expert indices inference engine 实际生成时的 expert indices
路由真相源 Megatron 第二次 forward vLLM / SGLang 真实采样路径
解决的不一致 训练引擎内部前后两次 forward 的路由抖动 跨引擎(rollout vs trainer)的路由抖动
改推理后端 ❌ 不需要 ✅ 需要(如 vLLM PR #28284 返回 routed_experts
工程复杂度
训推不一致 仍存在 真正消除

实测:Qwen3-30B-A3B + GRPO(Megatron-LM Issue #4168

无 replay → 62.23 | R3 → 71.83 (KL 降约 2×,完全消除 collapse)。R3 比 R2 多拿到的那部分,正是阶段 ① ↔ ② 的跨引擎差距——这也是为什么 R3 是真正的"完整方案"。

和 GSPO 是互补,不是替代

GSPO 在算法层让路由噪声不再致命(sequence-level IS 把噪声平均掉);R3 在 infra 层把路由噪声直接锁死(强制三阶段路由一致)。两者可以叠用,verl / ms-swift 最新代码已支持 GSPO + R3 组合。

深入:GSPO 凭什么能根治 MoE

GSPO 不是"再加一个稳定化技巧",而是让 IS 框架在 MoE 上重新变 well-defined。四个机理对应解决上一节的三个根因:

机理 ①:路由噪声被几何均值"摊平"

序列级 ratio \(s_i(\theta)\)\(|y_i|\) 个 token-level log-ratio 的算术平均(即几何均值):

\[ \log s_i(\theta) = \frac{1}{|y_i|} \sum_{t=1}^{|y_i|} \log r_{i,t}(\theta) \]

每个 token 的路由噪声近似零均值独立,按中心极限定理,平均后噪声以 \(O(1/\sqrt{|y_i|})\) 速度衰减——长序列反而更稳(与 token-level 完全相反)。

机理 ②:IS 粒度终于和 Reward 粒度对齐

维度 Token-Level IS(GRPO) Sequence-Level IS(GSPO)
Reward 粒度 trajectory-level(1 个标量 / 序列) trajectory-level
IS 粒度 每 token 一个 ratio 每序列一个 ratio
对齐情况 错配:1 个信号摊到 N token 匹配:1 reward ↔ 1 ratio
结果 信号不变、噪声 ×N IS 数学前提重新成立

这一点和 1.6 (DAPO) / 1.8 (CISPO) 强调的"token-level 细粒度"是相反方向的设计选择——只在 reward 也是 token-level 时,token-level IS 才是"细粒度优势",否则就是"伪优势"。

机理 ③:Clip 重新变成有意义的 Trust Region

  • Token-level:clip 边界被噪声打满,clip fraction 飙升、但限制的全是噪声
  • Sequence-level:单个 ratio 描述的是"整条响应的策略偏移",clip 真的在框 trust region
  • 这也解释了为什么 GSPO 能用 \(\varepsilon \sim 10^{-4}\) 这种比 GRPO 紧三个数量级的 clip 范围——因为 \(s_i\) 本身的方差小了 \(\sqrt{N}\)

机理 ④:Routing Replay 这个 Hack 直接退役

既然 ratio 是几何均值后的整体量,两次前向走不走同一组专家已经不重要——只要整条序列的概率比合理,路由的 token 级差异在平均里就被抵消了。

GSPO 顺带送的 infra 红利

AReaL / ROLL 官方说法:GSPO "absorb MoE routing noise between different inference backends (vLLM and HF/DeepSpeed)"

工程上:

  • 不再需要跨 EP 同步 routing 索引
  • 不再需要锁定 inference / training backend 的 routing 一致性
  • 对训练-推理混合精度差异的容忍度大幅提升
  • TRL ≥ 0.20 的实现就是一行配置importance_sampling_level="sequence"

GRPO vs GSPO on MoE:一图总结

维度 GRPO(Token-Level) GSPO(Sequence-Level)
IS Ratio 每 token 一个 每序列一个(几何均值)
Clip 行为 Token-wise,高方差,被噪声主导 Sequence-wise,稳定,trust-region 有效
MoE 路由噪声 直接灌进梯度 \(O(1/\sqrt{N})\) 衰减后基本消失
Routing Replay 必需的脆弱 hack 被淘汰
Inference Backend 容忍度 严格对齐 vLLM ↔ HF/DeepSpeed 数值差可吸收
Dense 模型增益 边际,不显著
MoE 模型增益 易 collapse 质变,Qwen3-Instruct/Coder/Thinking 全线落地

一句话面试答法

"GSPO 把 importance ratio 从 token-level 抬到序列几何均值。MoE 的根本痛点是路由波动让 token-level ratio 失去物理意义——分子分母走的甚至不是同一个子网络。Sequence-level ratio 用 \(\sqrt{N}\) 级的噪声平均把路由抖动压下去,让 IS 重新满足同分布相对概率的数学前提,clip 也回到真正的 trust-region 角色。它不是调好了一个超参,而是让 IS 框架在 MoE 上重新变 well-defined——所以才能顺带把 Routing Replay 这种工程 hack 送走。"

参考资料