← 返回 2026-02-06

长度无偏序列策略优化:揭示与控制RLVR中的回复长度变化 Length-Unbiased Sequence Policy Optimization: Revealing and Controlling Response Length Variation in RLVR

Fanfan Liu, Youyang Yin, Peng Shi, Siqi Yang, Zhixiong Zeng, Haibo Qiu 📅 2026-02-05 👍 54 2026-07-13 08:35
GRPO GSPO RLVR 多模态推理 大语言模型 强化学习 策略优化

通过长度归一化消除GSPO的长度偏差,提升RLVR训练稳定性和性能

前置知识

RLVR (Reinforcement Learning with Verifiable Rewards)

RLVR是一种利用可验证奖励信号对大语言模型进行强化学习后训练的技术范式。其核心思想是:对于数学推理、代码生成等任务,奖励信号可以通过验证器自动判定(如答案是否正确),无需人工标注。DeepSeek-R1的成功使RLVR成为提升LLM推理能力的主流方法。训练过程中,模型生成多个回复,由验证器评分,再通过策略梯度方法优化模型参数。

本文研究的是RLVR训练中的一个核心问题——回复长度偏差,理解RLVR的基本框架是理解本文动机和方法的前提。

GRPO (Group Relative Policy Optimization)

GRPO是由DeepSeek提出的RLVR算法,其核心创新在于无需单独训练价值网络。对于每个查询,GRPO采样一组回复,计算每个回复的奖励,然后通过组内相对比较计算优势值(advantage):$\hat{A}_i = \frac{r(x, y_i) - \text{mean}(\{r(x, y_j)\}_{j=1}^G)}{\text{std}(\{r(x, y_j)\}_{j=1}^G)}$。优化目标采用token级别的importance ratio $w_{i,t}(\theta) = \frac{\pi_\theta(y_{i,t}|x, y_{i,<t})}{\pi_{\theta_{old}}(y_{i,t}|x, y_{i,<t})}$,并配合clipping机制控制策略更新幅度。

GRPO是本文分析和改进的基线算法之一,其token级平均的损失函数正是长度偏差的根源所在。

GSPO (Group Sequence Policy Optimization)

GSPO是为解决GRPO在MoE模型上训练不稳定问题而提出的算法。它将importance ratio从token级别提升到序列级别:$s_i(\theta) = \exp\left(\frac{1}{|y_i|} \sum_{t=1}^{|y_i|} \log \frac{\pi_\theta(y_{i,t}|x, y_{i,<t})}{\pi_{\theta_{old}}(y_{i,t}|x, y_{i,<t})}\right)$,即序列各token log ratio的算术平均再取指数。同时采用序列级clipping和Clip-Higher机制。GSPO在MoE模型训练中显著提升了稳定性和效率。

GSPO是本文重点改进的对象,LUSPO正是在GSPO基础上通过长度归一化消除其长度偏差。

Importance Sampling与Clipping

Importance sampling是强化学习中纠正策略偏移的核心技术。当策略从$\pi_{\theta_{old}}$更新到$\pi_\theta$时,需要用ratio $\frac{\pi_\theta}{\pi_{\theta_{old}}}$ 对旧策略下采样的梯度进行校正。为防止ratio过大导致训练不稳定,PPO引入clipping机制:将ratio限制在$[1-\epsilon, 1+\epsilon]$区间内。Clip-Higher是DAPO提出的变体,对正负样本使用不同的$\epsilon$边界($\epsilon_{low}$和$\epsilon_{high}$),以更积极地探索。

clipping机制的序列级应用与Clip-Higher的组合是GSPO长度偏差被放大的关键原因,理解这些机制才能理解LUSPO的设计动机。

Mixture-of-Experts (MoE) 架构

MoE是一种稀疏激活的神经网络架构,通过路由机制将输入分配给不同的专家子网络处理。相比密集模型,MoE在保持高参数量的同时显著降低计算开销。代表性模型如Qwen3-30B-A3B-Instruct拥有30B参数但仅激活3B。MoE的路由多样性和稀疏激活特性导致token级别的importance ratio方差较大,这是GSPO采用序列级importance ratio的直接原因。

MoE模型的特殊性质决定了为什么需要序列级优化,也解释了为什么LUSPO需要在保持GSPO稳定性优势的同时消除长度偏差。

研究动机

在RLVR训练过程中,回复长度的变化模式因算法不同而显著差异,但现有方法存在系统性的长度偏差。GRPO的损失函数对每个轨迹内的token取平均,导致长回复中每个token对损失的贡献更小,而短回复中每个token贡献更大。这意味着对于正确样本,短回复的token权重更高,模型倾向于生成更短的正确回复;对于错误样本,模型避免极短回复而倾向更长输出。GSPO虽然用序列级importance ratio提升了MoE训练稳定性,但不仅没有解决这个长度偏差,反而通过序列级clipping和Clip-Higher机制进一步放大了它。具体来说,序列级clipping导致被截断的token比例大幅增加,而Clip-Higher机制不对称地移除了更多负样本token,使得单步梯度中正样本占主导,持续推动模型生成越来越短的回复。实验中训练Qwen2.5-VL-7B-Instruct时,GSPO出现了明显的回复长度塌陷(response length collapse),而GRPO在同一设置下没有这种现象。

本文的目标是本文的目标是在保持GSPO在MoE模型上训练稳定性优势的同时,彻底消除其损失函数中固有的长度偏差,从而避免回复长度塌陷问题,提升RLVR训练在多种模型架构(密集模型、MoE模型、纯文本模型、视觉语言模型)上的整体性能和泛化能力。

与已有工作不同的是,此前的工作虽然注意到了GRPO和GSPO在回复长度变化上的不同表现,但缺乏对其根本原因的理论分析。Dr.GRPO提出了token效率的无偏优化,但未涉及序列级优化的长度偏差问题。DAPO的Clip-Higher机制虽然提升了探索能力,却间接加剧了长度偏差。本文的独特切入角度是从损失函数的数学结构出发,严格推导出长度偏差的来源,并提出一个简洁而有效的修正方案——对每个序列的损失按其自身长度进行缩放,从理论上保证优化目标对回复长度无偏。

核心方法

LUSPO的方法思路可以从一个直觉出发:在GSPO的损失函数中,所有序列的贡献权重相同,但不同长度的序列包含的token数量差异很大,这导致短序列中每个token实际上获得了不成比例的更高权重。解决方案非常直接——让每个序列的损失贡献与其长度成正比,即乘以序列长度$|y_i|$。这样做的效果是:无论序列长短,每个token对总损失的贡献权重相等,从而消除长度偏差。从技术路线看,LUSPO在GSPO的基础上仅做了一处修改:在损失函数中为每个序列的项乘以其长度$|y_i|$,保持了序列级importance ratio、组内优势估计和clipping机制等所有其他设计不变。

LUSPO的核心创新点在于揭示并修正GSPO损失函数中的长度偏差。与已有方法的本质区别在于:GRPO和GSPO的损失函数形式上是对所有token取平均,但实际上在序列维度上引入了与长度相关的隐式权重。LUSPO的修改体现在优化目标中:$$J_{LUSPO}(\theta) = \mathbb{E}_{x \sim \mathcal{D}} \left[\frac{1}{G} \sum_{i=1}^{G} \min\left(s_i(\theta)\hat{A}_i, \text{clip}(s_i(\theta), 1-\epsilon, 1+\epsilon)\hat{A}_i\right) \cdot |y_i|\right]$$ 相比GSPO的目标函数,唯一的区别是为每个序列的损失项乘以了$|y_i|$。从梯度角度分析,GSPO的梯度中每个token的权重为$\frac{1}{|y_i|} \cdot \frac{\pi_\theta(y_i|x)}{\pi_{\theta_{old}}(y_i|x)} \cdot \hat{A}_i$,而LUSPO中变为$\frac{\pi_\theta(y_i|x)}{\pi_{\theta_{old}}(y_i|x)} \cdot \hat{A}_i$,消除了$\frac{1}{|y_i|}$这一长度依赖项。

方法步骤详情

LUSPO的完整算法流程如下:第一步,对于每个查询$x$从行为策略$\pi_{\theta_{old}}$采样$G$个回复$\{y_1, y_2, ..., y_G\}$。第二步,通过验证器$r$计算每个回复的奖励$r(x, y_i)$,然后进行组内标准化得到优势估计$\hat{A}_i = \frac{r(x, y_i) - \text{mean}(\{r(x, y_j)\}_{j=1}^G)}{\text{std}(\{r(x, y_j)\}_{j=1}^G)}$。第三步,计算序列级importance ratio $s_i(\theta) = \exp\left(\frac{1}{|y_i|}\sum_{t=1}^{|y_i|}\log\frac{\pi_\theta(y_{i,t}|x,y_{i,<t})}{\pi_{\theta_{old}}(y_{i,t}|x,y_{i,<t})}\right)$。第四步,应用clipping机制得到$\min\left(s_i(\theta)\hat{A}_i, \text{clip}(s_i(\theta), 1-\epsilon, 1+\epsilon)\hat{A}_i\right)$。第五步,将每个序列的clipped损失乘以其长度$|y_i|$,再对组内$G$个序列取平均。第六步,通过AdamW优化器更新模型参数。整个流程中,奖励函数包含三个分量:准确性奖励$R_{accuracy} \in \{0,1\}$、格式奖励$R_{format} \in \{0, 0.5\}$和超长惩罚$R_{overlong}$。

技术新颖性

LUSPO的技术新颖性体现在多个层面。首先,这是首个系统性分析并量化RLVR算法中长度偏差的工作,通过严格的梯度推导揭示了GSPO损失函数中$\frac{1}{|y_i|}$项导致的隐式长度偏好。其次,修正方案极其简洁——仅需一行代码改动(乘以$|y_i|$),但理论分析充分,证明了该修改确实消除了梯度中的长度依赖性。第三,这种长度归一化思想在强化学习领域有理论基础,但将其应用于序列级策略优化并针对RLVR场景进行分析是全新的。第四,LUSPO巧妙地平衡了两个看似矛盾的需求:保持GSPO在MoE模型上的训练稳定性(通过保留序列级importance ratio)和消除长度偏差(通过长度缩放),而不需要引入额外的超参数或复杂的机制。

VL模型训练中使用的System Prompt
Figure 3: VL模型训练中使用的System Prompt

实验结果

本文的实验结果充分验证了LUSPO的有效性和泛化性。在文本推理任务上,使用Qwen2.5-7B-Base训练后,LUSPO相比GSPO在AMC23上提升3.0%(58.3 vs 55.3),AIME24上提升2.9%(14.7 vs 11.8),AIME25上提升2.7%(13.9 vs 11.2),MATH500上提升7.4%(78.4 vs 71.0),平均提升4.0%(41.3 vs 37.3)。在MoE模型Qwen3-30B-A3B-Instruct上,LUSPO的优势更为显著:AIME24上提升6.9%(83.6 vs 76.7),AIME25上提升17.1%(76.3 vs 59.2),平均提升12.0%(80.0 vs 68.0)。在多模态任务上,Qwen2.5-VL-7B-Instruct的训练结果显示,LUSPO在MathVista-mini上比GRPO高1.6%(74.4 vs 72.8)、比GSPO高0.5%,在WeMath上比GSPO高5.1%(45.6 vs 40.7),在LogicVista上比GSPO高6.0%(53.7 vs 47.7),平均比GRPO高1.6%、比GSPO高2.0%。值得注意的是,GSPO在多个多模态基准上的平均分甚至低于GRPO,这正是因为其长度偏差在多模态场景下更加严重。回复长度方面,LUSPO训练的Qwen2.5-7B-Base平均回复长度3940 tokens,是GSPO的2611 tokens的1.5倍;Qwen3-30B-A3B-Instruct上LUSPO为11014 tokens,GSPO仅6757 tokens。训练动态上,LUSPO展示了更快的回复长度增长和更高的准确率奖励,在验证集上的泛化性能也显著优于GSPO。

训练数据集描述
Table 1: 训练数据集描述
GSPO和LUSPO在文本基准上的对比(Qwen2.5-7B-Base和Qwen3-30B-A3B-Instruct)
Table 2: GSPO和LUSPO在文本基准上的对比(Qwen2.5-7B-Base和Qwen3-30B-A3B-Instruct)
GRPO、GSPO和LUSPO在多模态基准上的对比(Qwen2.5-VL-7B-Instruct)
Table 3: GRPO、GSPO和LUSPO在多模态基准上的对比(Qwen2.5-VL-7B-Instruct)
验证集上生成回复的平均长度
Table 4: 验证集上生成回复的平均长度
ViRL39k+DAPO-MATH-17k上GSPO和LUSPO的多模态基准对比(消融实验)
Table 5: ViRL39k+DAPO-MATH-17k上GSPO和LUSPO的多模态基准对比(消融实验)
GSPO和LUSPO在三个模型上的回复长度训练曲线
Figure 4: GSPO和LUSPO在三个模型上的回复长度训练曲线
GSPO和LUSPO在三个模型上的准确率奖励训练曲线
Figure 5: GSPO和LUSPO在三个模型上的准确率奖励训练曲线
LUSPO和GSPO在AIME24上的avg@32验证分数对比
Figure 6: LUSPO和GSPO在AIME24上的avg@32验证分数对比
ViRL39k+DAPO-MATH-17k混合数据上训练的回复长度曲线
Figure 7: ViRL39k+DAPO-MATH-17k混合数据上训练的回复长度曲线
查看结构化数据
任务指标本文基线提升
AMC23 (密集模型Qwen2.5-7B-Base) 准确率(%) 58.3 55.3 (GSPO) +3.0%
AIME24 (密集模型Qwen2.5-7B-Base) 准确率(%) 14.7 11.8 (GSPO) +2.9%
AIME25 (密集模型Qwen2.5-7B-Base) 准确率(%) 13.9 11.2 (GSPO) +2.7%
MATH500 (密集模型Qwen2.5-7B-Base) 准确率(%) 78.4 71.0 (GSPO) +7.4%
AIME24 (MoE模型Qwen3-30B-A3B-Instruct) 准确率(%) 83.6 76.7 (GSPO) +6.9%
AIME25 (MoE模型Qwen3-30B-A3B-Instruct) 准确率(%) 76.3 59.2 (GSPO) +17.1%
MathVista-mini (VL模型Qwen2.5-VL-7B-Instruct) 准确率(%) 74.4 72.8 (GRPO) / 73.9 (GSPO) +1.6% vs GRPO, +0.5% vs GSPO
WeMath (VL模型Qwen2.5-VL-7B-Instruct) 准确率(%) 45.6 43.3 (GRPO) / 40.7 (GSPO) +2.3% vs GRPO, +5.1% vs GSPO
LogicVista (VL模型Qwen2.5-VL-7B-Instruct) 准确率(%) 53.7 46.5 (GRPO) / 47.7 (GSPO) +7.2% vs GRPO, +6.0% vs GSPO

局限与改进

本文存在以下局限性。首先,实验主要集中在数学推理和STEM相关的基准测试上,对于开放域对话、创意写作、长文本生成等其他类型的任务,LUSPO的效果尚未得到验证。其次,虽然LUSPO消除了损失函数层面的长度偏差,但回复长度仍然受到奖励函数设计(如超长惩罚$R_{overlong}$)和训练数据特性的影响,论文中对这些交互效应的分析不够深入。第三,实验规模限于7B和30B级别的模型,对于更大规模模型(如70B+)的表现尚不确定。第四,LUSPO通过乘以$|y_i|$放大了长序列的梯度贡献,这可能导致训练初期方差增大,论文中对此潜在的不稳定性讨论不足。第五,消融实验相对有限,仅在ViRL39k+DAPO-MATH-17k混合数据集上进行了额外验证,未系统探索不同$G$值、不同$\epsilon$配置下的表现。最后,论文未提供LUSPO的收敛性理论保证,仅通过实验展示了其有效性。

独立分析的弱点

LUSPO虽然简洁有效,但仍存在几个值得深入分析的弱点。第一,长度缩放因子$|y_i|$采用的是线性缩放,这意味着一个2000 token的序列权重是1000 token序列的两倍,但在实际推理任务中,更长的回复并不总是更有价值——可能存在大量冗余token。改进方向是探索自适应的缩放函数,例如基于有效信息量(而非原始长度)的缩放,或引入长度的非线性变换(如对数缩放$\log(|y_i|)$)。第二,LUSPO完全依赖序列级importance ratio,在短回复或高变异场景下,序列级ratio的估计可能不够稳定,可以考虑混合使用token级和序列级ratio。第三,论文未讨论LUSPO与动态采样(Dynamic Sampling)、过度长奖励塑形(Overlong Reward Shaping)等DAPO技术的兼容性,这些技术的组合可能产生非平凡的交互效应。第四,LUSPO对Clip-Higher机制中$\epsilon_{low}$和$\epsilon_{high}$的敏感性未被充分探索,不同配置下长度偏差的消除效果可能差异显著。

未来方向

基于本文的成果,未来研究可以在多个方向展开。作者提出的方向包括将LUSPO扩展到更多模型架构和任务类型。除此之外,可以探索以下延伸方向:一是将长度无偏思想应用于其他RLVR算法如DAPO、SAPO等,构建更通用的长度无偏框架;二是研究长度偏差与训练数据特性(如问题难度分布、答案长度分布)之间的关系,设计自适应的长度归一化策略;三是探索LUSPO在多轮对话RLVR中的应用,其中回复长度的含义更加复杂;四是将LUSPO与其他训练稳定化技术(如梯度裁剪、学习率调度)结合,进一步提升大规模训练的稳定性;五是从理论角度证明LUSPO的收敛性,并分析其收敛速度与长度分布的关系;六是研究LUSPO对模型输出质量(如连贯性、信息密度)的影响,确保长度增长带来的是有效推理而非冗余填充。

复现评估

从复现角度看,本文提供了相对充分的信息。训练基于开源的verl框架,模型使用公开的Qwen2.5和Qwen3系列,训练数据DAPO-MATH-17K和ViRL39K也是公开数据集。关键超参数如学习率$1 \times 10^{-6}$、batch size 128、每prompt采样8个回复、Clip-Higher的$\epsilon_{low}=2\times10^{-3}$和$\epsilon_{high}=2.5\times10^{-3}$等均有明确说明。然而,复现仍面临一些挑战:需要8块或32块H800 GPU的算力投入对大多数研究团队来说门槛较高;LUSPO的核心修改虽然简单(乘以长度),但论文未提供官方代码仓库;训练中的具体实现细节如梯度累积策略、混合精度设置、rollout生成的具体配置等未完全披露。此外,验证集评估使用avg@32指标(32次采样的平均准确率),这种评估方式的计算成本较高,可能影响结果的可比性。