目录
一、GRPO(Group Relative Policy Optimization)
1. 核心目标函数
2. 关键符号详解
3. 计算流程
二、GSPO(Group Sequence Policy Optimization)
1. 核心目标函数
2. 关键符号详解
3. 计算流程
三、GSPO vs GRPO 详细对比
四、核心数学差异解析
1. 为什么GSPO更稳定?
2. 长度归一化的数学意义
3. 优势函数估计
五、实践建议
一、GRPO(Group Relative Policy Optimization)
1. 核心目标函数
L(θ)=E(x,y)∼πθoldt=1∑∣y∣min(wi,t(θ)⋅Ai,tb,clip(wi,t(θ),1−ϵ,1+ϵ)⋅Ai,tb)
2. 关键符号详解
a) 重要性比率(Token级别):
wi,t(θ)=πθold(yi,t∣x,yi,<t)πθ(yi,t∣x,yi,<t)
- πθ(yi,t∣x,yi,<t):在当前策略参数θ下,生成第t个token的概率。
- πθold(yi,t∣x,yi,<t):在旧策略参数θold下,生成相同token的概率。
- wi,t(θ):第i个样本在第t个token位置的重要性比率。
b) 其他符号:
- x:输入序列(如提示词)。
- y:输出序列(模型生成的完整响应)。
- yi,t:第i个样本的第t个token。
- yi,<t:第i个样本中第t个token之前的所有token。
- ∣y∣:输出序列的长度(token数量)。
- Ai,tb:基于基准的优势函数,衡量第t个token的“好坏”程度。
- ϵ:裁剪参数(通常取0.1或0.2),限制策略更新幅度。
- clip(w,1−ϵ,1+ϵ):将w裁剪到[1−ϵ,1+ϵ]区间内。
3. 计算流程
- 计算每个token的概率比:对序列中每个位置t,计算wi,t(θ)。
- 逐token求和:将所有token的优势加权求和。
- PPO裁剪:使用min和clip确保更新不会太激进。
二、GSPO(Group Sequence Policy Optimization)
1. 核心目标函数
L(θ)=E(x,y)∼πθold[min(si(θ)⋅A^i,clip(si(θ),1−ϵ,1+ϵ)⋅A^i)]
2. 关键符号详解
a) 重要性比率(序列级别):
si(θ)=(πθold(yi∣x)πθ(yi∣x))∣yi∣1
分步解析:
步骤1:计算整个序列的概率
πθ(yi∣x)=t=1∏∣yi∣πθ(yi,t∣x,yi,<t)
这是链式法则,整个序列的概率等于所有token条件概率的乘积。
步骤2:计算概率比
πθold(yi∣x)πθ(yi∣x)
新旧策略在整个序列上的概率比。
步骤3:长度归一化(关键创新)
(πθold(yi∣x)πθ(yi∣x))∣yi∣1
对概率比开∣yi∣次方,消除序列长度的影响,本质上是计算token级概率比的几何平均值。
步骤4:等价的对数形式(数值稳定)
si(θ)=exp∣yi∣1t=1∑∣yi∣log(πθold(yi,t∣x,yi,<t)πθ(yi,t∣x,yi,<t))
通过对数变换避免长序列连乘导致的数值下溢问题。
b) 其他符号:
- A^i:第i个序列的优势估计(序列级别)。
- ∣yi∣:第i个序列的长度。
3. 计算流程
-
计算对数概率比的平均值:
log_ratio_mean=∣yi∣1t=1∑∣yi∣log(πθold(yi,t∣x,yi,<t)πθ(yi,t∣x,yi,<t))
-
指数变换得到归一化的重要性比率:
si(θ)=exp(log_ratio_mean)
-
PPO裁剪:在序列级别应用裁剪。
三、GSPO vs GRPO 详细对比
| 维度 | GRPO | GSPO |
|---|
| 优化粒度 | Token级别(细粒度) | 序列级别(粗粒度) |
| 重要性比率 | wi,t:每个token一个比率 | si:每个序列一个比率 |
| 优势函数 | Ai,tb:每个token的优势 | A^i:整个序列的优势 |
| 计算复杂度 | 高(需对每个token计算和裁剪) | 低(只需计算一次序列级比率) |
| 训练稳定性 | 较低,易受单个token噪声影响 | 较高,长度归一化降低方差 |
| 长序列处理 | 概率乘积容易数值下溢 | 对数平均+指数变换,数值稳定 |
| 适用场景 | 需要精细控制每个token的任务 | 长文本生成、复杂推理任务 |
四、核心数学差异解析
1. 为什么GSPO更稳定?
GRPO的问题:
t=1∑∣y∣wi,t⋅Ai,t
- 每个token的噪声在求和中累加。
- 长序列时,误差被放大。
GSPO的解决:
si=exp∣yi∣1t=1∑∣yi∣log(wi,t)
- 先对每个token的重要性比率取对数再求平均,降低了方差。
- 通过长度归一化,使得不同长度的序列具有可比性。
2. 长度归一化的数学意义
si=t=1∏∣yi∣wi,t∣yi∣1
这实际上是计算token级概率比wi,t的几何平均值。相比算术平均:
- 对极端值不敏感。
- 保持了概率连乘的乘法结构。
- 使不同长度序列的重要性比率处于同一尺度。
3. 优势函数估计
GRPO:
Ai,tb=ri,t−bt
需要为每个token位置t估计奖励ri,t和基准值bt。
GSPO:
A^i=Ri−b
只需为整个序列估计一个总奖励Ri和一个基准值b。实践中,A^i常通过组内标准化计算:
A^i=σGRi−μG
其中Ri是序列i的总奖励,μG和σG是同一组(Group)内所有序列奖励的均值和标准差。
五、实践建议
选择GRPO的场景:
- 需要对每个token进行精细控制的任务(如语法纠正、特定风格生成)。
- 短序列生成任务。
- 有明确的、可获得的token级奖励信号。
选择GSPO的场景:
- 长文本生成(如长篇回答、故事创作、代码生成)。
- 只有序列级评价指标(如任务完成度、总体准确率、BLEU分数)。
- 需要提高训练稳定性和计算效率。
- 使用混合专家(MoE)等大规模模型。
本文作者:Dong
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC。本作品采用《知识共享署名-非商业性使用 4.0 国际许可协议》进行许可。您可以在非商业用途下自由转载和修改,但必须注明出处并提供原作者链接。
许可协议。转载请注明出处!