3.7 GSPO:Group Sequence Policy Optimization(组序列策略优化)

3.7 GSPO:Group Sequence Policy Optimization(组序列策略优化)

论文提出 GSPO(Group Sequence Policy Optimization) ,核心目标是:把大模型强化学习中"token 级动作、sequence 级奖励"的错位问题显式对齐,并进一步缓解 GRPO/PPO 在长序列训练时容易出现的高方差与不稳定(甚至不可逆崩溃)现象。

直观理解:

  • 过去(PPO / GRPO)更多是在 token 级做策略比值与裁剪;
  • 但我们真正关心的奖励(正确性、偏好、任务完成度等)通常是 整段 response 的序列级奖励
  • GSPO 选择把 重要性权重与优化单位上移到序列级,并且用一种"长度归一化"的方式来构造稳定的序列比值。

1. RL for LLM:Action 与 Reward 的"单位不匹配"问题

在 LLM 的自回归生成里,常见建模是:

  • 状态(history):
    st=(x,y<t) s_t = (x, y_{<t}) st=(x,y<t)

    其中 xxx 是 prompt,y<ty_{<t}y<t 是已生成的前缀 token。

  • token 级动作:
    at=yt a_t = y_t at=yt

  • token 级策略:
    πθ(at∣st)=πθ(yt∣x,y<t) \pi_\theta(a_t \mid s_t) = \pi_\theta(y_t \mid x, y_{<t}) πθ(at∣st)=πθ(yt∣x,y<t)

但很多 RLHF / RLVR 的奖励(忽略 KL 惩罚项时)是 对整段输出 给一个标量:
r(x,y) r(x, y) r(x,y)

也就是说:

  • **动作(action)**在建模与优化上是 token 级;
  • **奖励(reward)**却是序列级(prompt+response 对)。

这就引出一个关键张力:我们用 token 级的"局部"更新,去拟合一个 sequence 级的"整体"目标

PPO/GRPO 的不同,只是如何估计优势、是否需要 value model,但它们都绕不开这个结构性错位。


2. PPO:token 级优化 + sparse reward(序列奖励只在末端出现)

在 PPO(用于 LLM 的常见实现)里,如果只考虑任务奖励 r(x,y)r(x,y)r(x,y),往往把中间 token 的环境奖励当作 0,把序列奖励放在终止时刻:

  • token 级奖励(简化):
    rt={0,t<Tr(x,y),t=T r_t = \begin{cases} 0, & t < T \\ r(x,y), & t = T \end{cases} rt={0,r(x,y),t<Tt=T

于是优势函数 A^t\hat A_tA^t 通过 value model(或 GAE)在 token 级被定义出来,优化目标也是 token 级的(再配合 clip):

  • token 级重要性权重:
    wt(θ)=πθ(yt∣x,y<t)πθold(yt∣x,y<t) w_t(\theta)=\frac{\pi_\theta(y_t \mid x, y_{<t})}{\pi_{\theta_{\text{old}}}(y_t \mid x, y_{<t})} wt(θ)=πθold(yt∣x,y<t)πθ(yt∣x,y<t)

  • PPO 的典型裁剪 surrogate(符号略简化):
    LPPO(θ)=Et[min⁡(wt(θ)A^t, clip(wt(θ),1−ε,1+ε)A^t)] L^{\text{PPO}}(\theta)=\mathbb{E}_t\Big[\min\big(w_t(\theta)\hat A_t,\ \text{clip}(w_t(\theta),1-\varepsilon,1+\varepsilon)\hat A_t\big)\Big] LPPO(θ)=Et[min(wt(θ)A^t, clip(wt(θ),1−ε,1+ε)A^t)]

特点:

  • 优化单位(token)与权重/裁剪(token)对齐;
  • 但奖励本质仍是序列级,过程是一个典型的 sparse reward credit assignment 问题;
  • 训练稳定性高度依赖 value 估计质量与 KL/clip 等工程约束。

3. GRPO:去掉 value model,但把"序列优势"广播到每个 token

GRPO 的关键动机是:避免训练 value model,直接用 同一个 prompt 下的多个采样 response 组成 group,用组内统计来构造优势(advantage)。

给定 prompt xxx,采样一组 GGG 个 response:{yi}i=1G\{y_i\}_{i=1}^G{yi}i=1G,每个序列有序列级奖励:
r(x,yi) r(x, y_i) r(x,yi)

GRPO 的一种典型优势构造(你给出的形式)是:
A^i,t=A^i=r(x,yi)−mean({r(x,yi)}i=1G)std({r(x,yi)}i=1G) \hat{A}{i,t}=\hat{A}i= \frac{r(x,y_i)-\text{mean}\left(\left\{r(x,y_i)\right\}{i=1}^{G}\right)} {\text{std}\left(\left\{r(x,y_i)\right\}{i=1}^{G}\right)} A^i,t=A^i=std({r(x,yi)}i=1G)r(x,yi)−mean({r(x,yi)}i=1G)

注意这里的关键:

  • A^i\hat A_iA^i 是 序列级的(每个 response 一个标量);
  • 但 GRPO 仍然在 token 级做策略比值与裁剪;
  • 因此会把 A^i\hat A_iA^i 广播到该序列内的每个 token 上参与更新。

也就是说,GRPO 实际做的是:

用序列级的"好坏"信号,驱动 token 级的"局部"重要性权重更新。

这种"单位不匹配"本身不一定必然错误,但它会把训练稳定性极大地绑定在 token 级重要性权重的统计性质上------这正是后面问题的根源之一。


4. GRPO 的核心隐患:token 级重要性采样权重的误用与高方差

4.1 先回顾重要性采样为什么需要"多样本平均"

重要性采样(importance sampling)的基础形式是:从行为分布 πbeh\pi_{\text{beh}}πbeh 采样,用权重校正来估计目标分布 πtar\pi_{\text{tar}}πtar 下的期望:
Ez∼πtar[f(z)]=Ez∼πbeh[πtar(z)πbeh(z)f(z)] \mathbb{E}{z\sim \pi{\text{tar}}}[f(z)] \mathrm{}= \mathbb{E}{z\sim \pi{\text{beh}}}\left[ \frac{\pi_{\text{tar}}(z)}{\pi_{\text{beh}}(z)} f(z) \right] Ez∼πtar[f(z)]=Ez∼πbeh[πbeh(z)πtar(z)f(z)]

蒙特卡洛估计依赖 多样本平均 才能让估计稳定:
Ez∼πtar[f(z)]≈1N∑n=1Nπtar(zn)πbeh(zn)f(zn),zn∼πbeh, N≫1 \mathbb{E}{z\sim \pi{\text{tar}}}[f(z)] \approx \frac{1}{N}\sum_{n=1}^N \frac{\pi_{\text{tar}}(z_n)}{\pi_{\text{beh}}(z_n)} f(z_n), \quad z_n\sim\pi_{\text{beh}},\ N\gg 1 Ez∼πtar[f(z)]≈N1n=1∑Nπbeh(zn)πtar(zn)f(zn),zn∼πbeh, N≫1

这里 N≫1N\gg 1N≫1 是关键:

重要性权重 πtar(z)πbeh(z)\frac{\pi_{\text{tar}}(z)}{\pi_{\text{beh}}(z)}πbeh(z)πtar(z) 本身可能方差很大,必须靠平均来降低方差。


4.2 GRPO 的 token 级权重:每个"条件分布点"只有一个样本

GRPO(以及 PPO)在 token 级使用的权重是:
wi,t(θ)=πθ(yi,t∣x,yi,<t)πθold(yi,t∣x,yi,<t) w_{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})} wi,t(θ)=πθold(yi,t∣x,yi,<t)πθ(yi,t∣x,yi,<t)

关键问题在于:对固定的条件 (x,yi,<t)(x,y_{i,<t})(x,yi,<t),你只采样到了一个 token yi,ty_{i,t}yi,t。

也就是在重要性采样里,对应的随机变量
z=yi,t∣x,yi,<t z = y_{i,t}\mid x,y_{i,<t} z=yi,t∣x,yi,<t
只有一个样本

即便外层有对整段 yyy 的采样期望,但每条轨迹的前缀不同:

  • 你采样的是一组不同的 yiy_iyi;
  • 于是每个 ttt 上的条件 (x,yi,<t)(x,y_{i,<t})(x,yi,<t) 几乎都不同;
  • 从"重要性采样"的角度看,相当于对每个条件点只取了一个样本,缺少 N≫1N\gg 1N≫1 的平均来稳定权重估计。

这会直接带来两个后果:

  1. wi,tw_{i,t}wi,t 方差很高(单样本比值天然不稳)。
  2. 这些高方差权重会沿着序列长度累积,长序列越容易出现极端权重,从而把噪声引入到梯度中。

4.3 长序列上的噪声累积:一个直观案例

考虑一个 response 长度 T=512T=512T=512。

假设大多数 token 的比值比较温和,但有一部分 token 因为分布移动、低概率事件等原因导致权重偏离很大:

  • 例如有 10% 的 token(约 51 个)触发极端比值:
    wi,t≫1+εw_{i,t} \gg 1+\varepsilonwi,t≫1+ε 或 wi,t≪1−εw_{i,t} \ll 1-\varepsilonwi,t≪1−ε。

在 GRPO 中,由于 A^i\hat A_iA^i 被广播到所有 token,这些 token 会在同一个序列里重复贡献"偏差的 surrogate 梯度"

当 TTT 很长时,这种偏差不再是偶发,而是统计意义上更容易发生:

  • 序列越长,出现极端 token 的概率越大;
  • 极端 token 一旦出现,就会把不稳定性注入到这条序列的梯度估计中;
  • 多个序列叠加后,训练梯度呈现更强的随机震荡,甚至出现崩溃风险。

5. clip 与高方差权重的"不匹配":误差被累积并放大

GRPO/PPO 引入 clip 的初衷是限制极端权重的影响:
clip(wi,t,1−ε,1+ε) \text{clip}(w_{i,t},1-\varepsilon,1+\varepsilon) clip(wi,t,1−ε,1+ε)

但当 wi,tw_{i,t}wi,t 是高方差单样本估计时,clip 会产生一种结构性问题:

5.1 token 级裁剪导致"偏差"在长序列累积

当大量 token 触发裁剪时,每个 token 的 surrogate 都被强行截断到边界值。

对单个 token 来说,这只是局部误差;但对长序列来说:

  • 被裁剪的 token 数量随着 TTT 增长而增长;
  • 每个被裁剪 token 都引入一份偏差;
  • 总偏差随序列长度累积,最终显著扭曲整条序列的梯度方向。

5.2 裁剪对极端权重产生"选择性扭曲"

极端情况往往是两类:

  • 若 wi,t≫1+εw_{i,t}\gg 1+\varepsilonwi,t≫1+ε,裁剪后变成 1+ε1+\varepsilon1+ε:

    本应非常"重要"的 token 被系统性低估。

  • 若 wi,t≪1−εw_{i,t}\ll 1-\varepsilonwi,t≪1−ε,裁剪后变成 1−ε1-\varepsilon1−ε:

    本应强烈抑制的 token,其负向作用被系统性削弱。

更关键的是:

长序列中极端值出现概率更高,裁剪触发更频繁,于是这种扭曲会随长度系统性放大。

这解释了为什么实践里会观察到:高方差噪声进入梯度后可能导致训练崩溃,而且崩溃往往不可逆------因为一旦策略分布被推到异常区域,后续采样与更新会进一步强化异常,难以通过简单恢复 checkpoint 或调参修正。


6. GSPO 的核心设计:序列级重要性权重 + 序列级优化单位

GSPO 的核心思想可以概括为一句话:

把重要性权重从 token 级提升到 sequence 级,让权重与奖励/优势函数的"单位"对齐。

6.1 序列概率:从 token 概率的连乘得到

对一个 response yiy_iyi,序列概率定义为:
πθ(yi∣x)=∏t=1∣yi∣πθ(yi,t∣x,yi,<t) \pi_\theta(y_i\mid x)=\prod_{t=1}^{|y_i|}\pi_\theta(y_{i,t}\mid x,y_{i,<t}) πθ(yi∣x)=t=1∏∣yi∣πθ(yi,t∣x,yi,<t)

如果直接使用序列比值:
πθ(yi∣x)πθold(yi∣x)=∏t=1∣yi∣πθ(yi,t∣x,yi,<t)πθold(yi,t∣x,yi,<t) \frac{\pi_\theta(y_i\mid x)}{\pi_{\theta_{\text{old}}}(y_i\mid x)} \mathrm{}= \prod_{t=1}^{|y_i|} \frac{\pi_\theta(y_{i,t}\mid x,y_{i,<t})}{\pi_{\theta_{\text{old}}}(y_{i,t}\mid x,y_{i,<t})} πθold(yi∣x)πθ(yi∣x)=t=1∏∣yi∣πθold(yi,t∣x,yi,<t)πθ(yi,t∣x,yi,<t)

会遇到数值尺度随长度爆炸/衰减的问题(乘积很容易极端)。


6.2 GSPO 的关键:用"几何平均"做长度归一化的序列比值

GSPO 用序列比值的 几何平均 来做长度归一化。

设序列长度为 Ti=∣yi∣T_i=|y_i|Ti=∣yi∣,定义 token 级比值:
wi,t(θ)=πθ(yi,t∣x,yi,<t)πθold(yi,t∣x,yi,<t) w_{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})} wi,t(θ)=πθold(yi,t∣x,yi,<t)πθ(yi,t∣x,yi,<t)

则 GSPO 的序列级比值可以写成:
wˉi(θ)=(∏t=1Tiwi,t(θ))1Ti \bar w_i(\theta) \mathrm{}= \left( \prod_{t=1}^{T_i} w_{i,t}(\theta) \right)^{\frac{1}{T_i}} wˉi(θ)=(t=1∏Tiwi,t(θ))Ti1

等价地,在 log 空间中就是对 token log-ratio 的平均:
log⁡wˉi(θ)=1Ti∑t=1Tilog⁡wi,t(θ) \log \bar w_i(\theta) \mathrm{}= \frac{1}{T_i}\sum_{t=1}^{T_i}\log w_{i,t}(\theta) logwˉi(θ)=Ti1t=1∑Tilogwi,t(θ)

直观意义:

  • 不再让"长度"决定比值的尺度;
  • 把一整段 response 的策略变化,压缩成一个"每 token 平均变化率"的序列级指标;
  • 从而让序列比值在不同长度间可比,也更稳定。

7. GSPO vs GRPO:梯度层面的关键差异

7.1 GRPO:同一序列中,不同 token 拥有不同权重

GRPO 的 token 级目标会让同一 response 内的 token 贡献不均衡:

某些 token 的 wi,tw_{i,t}wi,t 偏大/偏小,会让它们的梯度贡献被放大/缩小。

随着训练推进,这种"token 内部不一致"会不断累积,并在长序列与 clip 的共同作用下变得不可预测。

用一句话概括:

GRPO 在同一个序列内部引入了大量高方差、彼此不一致的局部缩放因子。

7.2 GSPO:同一序列中,所有 token 共享同一个序列权重

GSPO 把权重提升到序列级 wˉi\bar w_iwˉi,于是对于同一个 response:

  • 该序列中的所有 token 被赋予相同的权重缩放(同一个 wˉi\bar w_iwˉi);
  • 序列内部不再存在"某些 token 权重极端、某些 token 权重温和"的不一致性来源;
  • 序列级优势(本来就是一个标量)与序列级权重天然对齐。

这带来的直接收益是:

  • 降低了序列内部梯度噪声;
  • 减少了长序列上 token 级极端权重与裁剪误差的累积;
  • 提升训练稳定性,降低不可逆崩溃风险。

8. 一个更具象的对比案例:为什么"序列统一权重"更稳

考虑同一个 prompt xxx 下的一条 response yiy_iyi,序列优势 A^i\hat A_iA^i 为正(这条回答比组内均值更好)。

8.1 在 GRPO 中可能发生什么

  • 大多数 token 的 wi,t≈1w_{i,t}\approx 1wi,t≈1,正常推动模型增加这条 response 的概率;
  • 但少数 token 出现极端比值(例如某个罕见 token 在新策略里概率上升/下降剧烈),导致 wi,tw_{i,t}wi,t 被裁剪到边界;
  • 这些 token 的"局部裁剪误差"会重复注入梯度,并可能把更新方向扭曲到与"整体更好"不一致的方向上。

最终可能出现一种反直觉现象:

明明整段 response 更好,但因为序列内部少数 token 的权重异常,更新被局部噪声主导,导致训练不稳定甚至发散。

8.2 在 GSPO 中会发生什么

  • 序列级比值 wˉi\bar w_iwˉi 由所有 token 的 log-ratio 平均得到;
  • 少数极端 token 的影响会被 TiT_iTi 平均稀释;
  • 整段 response 的更新以统一尺度作用在序列上,更符合"序列级奖励驱动序列级概率调整"的直觉。

最终得到更一致的效果:

若 A^i>0\hat A_i>0A^i>0,则整体倾向于增加这条序列的概率;若 A^i<0\hat A_i<0A^i<0,整体倾向于降低它的概率,并且不会被少数 token 的局部异常强行劫持更新方向。


9. 小结:GSPO 解决的到底是什么

GSPO 针对大模型 RL 中一个长期存在但经常被"工程化掩盖"的结构性问题:
token 级重要性权重 + 序列级奖励的错位,会在长序列与裁剪机制的共同作用下诱发高方差噪声累积,导致训练不稳定甚至不可逆崩溃。

GSPO 的关键改动是:

  1. 把重要性权重提升到序列级;
  2. 用几何平均(等价于平均 log-ratio)做长度归一化;
  3. 让同一序列内所有 token 共享同一个权重,从源头消除序列内部"token 权重不一致"的噪声来源。

一句话概括:

GRPO 在 token 上做重要性采样与裁剪,但奖励是序列级;GSPO 把"比值与优化单位"提升到序列级,并做长度归一化,从而显著降低长序列训练的不稳定性风险。

相关推荐
qyr67891 小时前
分布式光纤传感全球市场调研报告分析
大数据·人工智能·物联网·分布式光纤传感·市场分析·市场报告
njsgcs2 小时前
qwen3.5-plus识别原神按钮groundingbox
人工智能
systeminof2 小时前
从静态到实时对抗:首例安卓Runtime AI病毒解析
android·人工智能
向哆哆2 小时前
白血病细胞与正常细胞识别数据集:医学影像与智能诊断的细胞分析数据
人工智能·目标检测·计算机视觉
龙亘川2 小时前
城管住建领域丨市政设施监测功能详解(4)——路灯设施监测
大数据·人工智能·路灯设施监测
winfreedoms2 小时前
ROS2坐标转换,正解反解——黑马程序员ROS2课程上课笔记(5)
人工智能·笔记
正宗咸豆花2 小时前
混合精度NPU,爱芯元智如何登顶全球中高端边缘AI芯片市场
人工智能
net3m332 小时前
自动分工 现象时,一共有几种可能得权重组合变化,如何确保这些组合的扫描时的不发生组合爆炸
人工智能·c#·ai编程
wuxi_joe2 小时前
中国装备制造企业如何出海:以“配置管理”为核心构建全球竞争力
运维·人工智能·制造