GSPO(Group Sequence Policy Optimization)
一句话:把重要性采样从 token 级提升到序列级——用长度归一化的整句似然比作为裁剪与优化的基本单元,根治 GRPO 在长序列与 MoE 模型上的累积噪声和训练崩溃;Qwen3 系列 RL 训练所用算法。论文 Group Sequence Policy Optimization(Qwen Team, Alibaba,2025)。 提出年份:2025 · 机构/团队:阿里巴巴 Qwen Team · 会议/来源:arXiv:2507.18071
直觉与动机
GSPO 的出发点是一个理论洁癖式的观察:重要性采样权重要起到分布校正作用,前提是在同一分布上对多个样本求平均。GRPO 在每个 token 位置
- 噪声随长度累积。序列越长,逐 token 的乘性噪声越积越多;裁剪机制不仅消除不了这种噪声,反而因为有偏截断进一步加剧问题。长 CoT 训练中模型可能出现不可逆崩溃——一旦坏更新破坏了策略结构,靠后续训练拉不回来。
- 粒度错配。奖励是序列级的(整道题对/错、整条回答的 RM 分),优势也是序列级的,优化和裁剪的单元却是 token 级——"奖励的单位"与"优化的单位"不一致。GSPO 的主张就是把二者对齐。
- MoE 的专家激活波动。论文测量发现:MoE 模型经过一步 RL 梯度更新后,约 10% 被激活的专家会发生改变(expert-activation volatility)。新旧策略走的根本不是同一组专家,token 级比值因此剧烈波动。此前 Qwen 团队需要 Routing Replay——缓存
的专家路由模式、计算 时强制回放——才能让 GRPO 在 MoE 上收敛,代价是额外的内存与通信开销,且限制了模型用上真实路由的容量。
序列级比值对单 token 的概率波动天然平滑(做了长度归一化的几何平均),对专家路由抖动免疫,GSPO 训练 MoE 不再需要 Routing Replay。
方法与公式
定义序列级重要性比值(对整条序列似然比做
长度归一化有两个作用:消除长短序列间比值量级的系统差异(否则同一裁剪范围对不同长度的序列含义完全不同),并把少数 token 的似然剧变压平。优势沿用组内标准化
裁剪、奖励、优化全部发生在序列级。从梯度看:GSPO 对一条序列内的所有 token 施加相同的权重
裁剪阈值的量级完全不同:
论文另给出 GSPO-token 变体:通过 stop-gradient 改写使数值上仍等于

图源:Zheng et al., Group Sequence Policy Optimization, arXiv:2507.18071(用于学习注解,版权归原作者)
与 baseline 对比
| 维度 | GRPO | GSPO |
|---|---|---|
| 重要性比值 | token 级 | 序列级 |
| 裁剪单元 | 单个 token | 整条序列 |
| 裁剪阈值量级 | 0.2 / 0.27 | 3e-4 / 4e-4 |
| 噪声随序列长度 | 累积放大 | 被 |
| MoE 训练 | 需 Routing Replay 等补丁 | 直接收敛,无需补丁 |
| 优势估计 | 组内标准化(序列级,广播到 token) | 组内标准化(序列级,用在序列上) |
| 对训练/推理引擎数值差异 | 敏感(逐 token 比值放大误差) | 容忍度高(只需序列级似然) |
实现要点
# GSPO 核心:log 域计算序列级比值
log_ratio = (logp_new - logp_old) * resp_mask # [B, T] 逐 token 对数比
s = torch.exp(log_ratio.sum(-1) / resp_mask.sum(-1)) # [B] 长度归一化 + 指数
adv = group_normalize(rewards) # 同 GRPO:(r - mean) / std
loss = -torch.min(s * adv,
s.clamp(1 - eps_low, 1 + eps_high) * adv).mean()- 一切在 log 域进行:先逐 token 求
,按有效 token 数(注意是 response mask 后的长度,不含 prompt 和 padding)取平均再 exp,避免数值上溢/下溢。 - 序列级裁剪意味着一条序列要么整体保留、要么整体丢弃梯度,监控"被裁剪序列占比"而非 token 占比。
- 因为只依赖序列级似然,GSPO 对 rollout 引擎(vLLM/SGLang)与训练引擎之间的精度差异更鲁棒,工程上甚至可以直接用推理引擎返回的 logprob 计算比值,省一次训练框架的重计算前向;GRPO 的逐 token 比值则会把这种数值差异逐位放大。
- MoE 上无需缓存/回放路由;这是 GSPO 相对 GRPO 最大的基础设施简化。
调参与实践经验
- 裁剪范围必须重调:3e-4/4e-4 是与
的量级配套的,照搬 GRPO 的 0.2 等于不裁剪。可从论文值出发,按"被裁剪序列比例"微调——比例长期为 0 说明范围太宽,大面积裁剪正优势样本说明太窄。 - 长度归一化用 token 数,且新旧策略要用同一套 tokenization 的长度,否则比值定义本身就漂了。
- 组大小
、组内标准化、动态过滤全对/全错组等 DAPO 式技巧与 GSPO 正交,可以叠加。 - 论文报告 GSPO 在同等算力下训练效率与最终性能均优于 GRPO 基线,并支撑了 Qwen3 系列(含大规模 MoE)的 RL 训练;若你在 dense 小模型 + 短序列场景,GRPO 的噪声问题不明显,收益会相对有限——GSPO 的优势随序列长度和模型稀疏度增长。
参考文献
- Zheng et al., 2025. Group Sequence Policy Optimization. arXiv:2507.18071
- Shao et al., 2024. DeepSeekMath: Pushing the Limits of Mathematical Reasoning in Open Language Models. arXiv:2402.03300(GRPO 原始提出)
- Qwen Team, 2025. Qwen3 Technical Report.