当前位置: 首页 > news >正文

稳定且高效:GSPO如何革新大型语言模型的强化学习训练?

稳定且高效:GSPO如何革新大型语言模型的强化学习训练?

本文将介绍Group Sequence Policy Optimization (GSPO),一种用于训练大型语言模型的稳定、高效且性能优异的强化学习算法。与之前采用token级重要性比率的算法不同,GSPO基于序列似然定义重要性比率,并执行序列级裁剪、奖励和优化,在Qwen3模型训练中取得了显著效果。

论文标题:Group Sequence Policy Optimization
来源:arXiv:2507.18071 [cs.LG],链接:http://arxiv.org/abs/2507.18071

PS: 整理了LLM、量化投资、机器学习方向的学习资料,关注同名公众号 「 亚里随笔」 即刻免费解锁

文章核心

研究背景

强化学习已成为扩展语言模型的关键范式。通过大规模RL,语言模型能够处理复杂的任务,如竞赛级数学和编程,通过更深入和更长的推理过程。然而,当前最先进的RL算法(如GRPO)在训练大型语言模型时表现出严重的稳定性问题,经常导致灾难性和不可逆的模型崩溃,这阻碍了通过持续RL训练来推动语言模型能力边界的努力。

研究问题

  1. 当前最先进的RL算法(如GRPO)在训练大型语言模型时存在严重的稳定性问题,经常导致模型崩溃。
  2. GRPO算法的不稳定性源于其算法设计中重要性采样权重的根本误用和失效,引入了高方差训练噪声。
  3. 现有算法在处理长序列和MoE模型时效率低下,且需要复杂的稳定化策略。

主要贡献

  1. 提出GSPO算法,基于序列似然定义重要性比率,执行序列级裁剪、奖励和优化,从根本上解决了GRPO的稳定性问题。
  2. GSPO在训练稳定性、效率和性能方面显著优于GRPO,特别在MoE模型训练中表现出色,消除了对复杂稳定化策略的需求。
  3. GSPO通过序列级优化简化了RL基础设施设计,对精度差异更容忍,具有实际应用价值。

思维导图

方法论精要

GSPO: Group Sequence Policy Optimization

GSPO的核心创新在于基于序列似然定义重要性比率,而不是像GRPO那样使用token级重要性比率。GSPO的优化目标为:

JGSPO(θ)=Ex∼D,{yi}i=1G∼πθold(⋅∣x)[1G∑i=1Gmin⁡(si(θ)A^i,clip(si(θ),1−ε,1+ε)A^i)]J_{GSPO}(\theta) = \mathbb{E}_{x\sim D,\{y_i\}_{i=1}^G\sim \pi_{\theta_{old}}(\cdot|x)}\left[ \frac{1}{G}\sum_{i=1}^G \min\left(s_i(\theta)\hat{A}_i, \text{clip}(s_i(\theta), 1-\varepsilon, 1+\varepsilon)\hat{A}_i\right) \right]JGSPO(θ)=ExD,{yi}i=1Gπθold(x)[G1i=1Gmin(si(θ)A^i,clip(si(θ),1ε,1+ε)A^i)]

其中,重要性比率si(θ)s_i(\theta)si(θ)基于序列似然定义:

si(θ)=(πθ(yi∣x)πθold(yi∣x))1∣yi∣=exp⁡(1∣yi∣∑t=1∣yi∣log⁡πθ(yi,t∣x,yi,<t)πθold(yi,t∣x,yi,<t))s_i(\theta) = \left(\frac{\pi_\theta(y_i|x)}{\pi_{\theta_{old}}(y_i|x)}\right)^{\frac{1}{|y_i|}} = \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)si(θ)=(πθold(yix)πθ(yix))yi1=exp(yi1t=1yilogπθold(yi,tx,yi,<t)πθ(yi,tx,yi,<t))

优势估计采用组内归一化:

A^i=r(x,yi)−mean({r(x,yi)}i=1G)std({r(x,yi)}i=1G)\hat{A}_i = \frac{r(x,y_i) - \text{mean}(\{r(x,y_i)\}_{i=1}^G)}{\text{std}(\{r(x,y_i)\}_{i=1}^G)}A^i=std({r(x,yi)}i=1G)r(x,yi)mean({r(x,yi)}i=1G)

这种方法将裁剪应用于整个响应而不是单个token,与序列级奖励和优化相匹配。

梯度分析

GSPO的梯度为:

∇θJGSPO(θ)=E[1G∑i=1G(πθ(yi∣x)πθold(yi∣x))1∣yi∣A^i⋅1∣yi∣∑t=1∣yi∣∇θlog⁡πθ(yi,t∣x,yi,<t)]\nabla_\theta J_{GSPO}(\theta) = \mathbb{E}\left[ \frac{1}{G}\sum_{i=1}^G \left(\frac{\pi_\theta(y_i|x)}{\pi_{\theta_{old}}(y_i|x)}\right)^{\frac{1}{|y_i|}} \hat{A}_i \cdot \frac{1}{|y_i|}\sum_{t=1}^{|y_i|} \nabla_\theta \log\pi_\theta(y_{i,t}|x,y_{i,<t}) \right]θJGSPO(θ)=E[G1i=1G(πθold(yix)πθ(yix))yi1A^iyi1t=1yiθlogπθ(yi,tx,yi,<t)]

相比之下,GRPO的梯度为:

∇θJGRPO(θ)=E[1G∑i=1GA^i⋅1∣yi∣∑t=1∣yi∣πθ(yi,t∣x,yi,<t)πθold(yi,t∣x,yi,<t)∇θlog⁡πθ(yi,t∣x,yi,<t)]\nabla_\theta J_{GRPO}(\theta) = \mathbb{E}\left[ \frac{1}{G}\sum_{i=1}^G \hat{A}_i \cdot \frac{1}{|y_i|}\sum_{t=1}^{|y_i|} \frac{\pi_\theta(y_{i,t}|x,y_{i,<t})}{\pi_{\theta_{old}}(y_{i,t}|x,y_{i,<t})} \nabla_\theta \log\pi_\theta(y_{i,t}|x,y_{i,<t}) \right]θJGRPO(θ)=E[G1i=1GA^iyi1t=1yiπθold(yi,tx,yi,<t)πθ(yi,tx,yi,<t)θlogπθ(yi,tx,yi,<t)]

GSPO对响应中的所有token采用相等权重,消除了GRPO的不稳定性因素。

GSPO-token: Token级目标变体

为了在多轮RL等场景中实现更细粒度的优势调整,GSPO还提供了token级目标变体:

JGSPO−token(θ)=E[1G∑i=1G1∣yi∣∑t=1∣yi∣min⁡(si,t(θ)A^i,t,clip(si,t(θ),1−ε,1+ε)A^i,t)]J_{GSPO-token}(\theta) = \mathbb{E}\left[ \frac{1}{G}\sum_{i=1}^G \frac{1}{|y_i|}\sum_{t=1}^{|y_i|} \min\left(s_{i,t}(\theta)\hat{A}_{i,t}, \text{clip}(s_{i,t}(\theta), 1-\varepsilon, 1+\varepsilon)\hat{A}_{i,t}\right) \right]JGSPOtoken(θ)=E[G1i=1Gyi1t=1yimin(si,t(θ)A^i,t,clip(si,t(θ),1ε,1+ε)A^i,t)]

其中:

si,t(θ)=sg[si(θ)]⋅πθ(yi,t∣x,yi,<t)sg[πθ(yi,t∣x,yi,<t)]s_{i,t}(\theta) = \text{sg}[s_i(\theta)] \cdot \frac{\pi_\theta(y_{i,t}|x,y_{i,<t})}{\text{sg}[\pi_\theta(y_{i,t}|x,y_{i,<t})]}si,t(θ)=sg[si(θ)]sg[πθ(yi,tx,yi,<t)]πθ(yi,tx,yi,<t)

实验洞察

实验设置与基线

实验使用从Qwen3-30B-A3B-Base微调的冷启动模型,在以下基准上进行评估:

  • AIME’24(32次采样的平均Pass@1)
  • LiveCodeBench(202410-202502,8次采样的平均Pass@1)
  • CodeForces(Elo Rating)

在RL训练中,每批rollout数据被分为四个小批次进行梯度更新。GSPO的左右裁剪范围分别设置为3e-4和4e-4,而GRPO的左右裁剪范围设置为0.2和0.27。

主要结果

实验结果表明:

  1. GSPO训练过程稳定,能够通过增加训练计算、定期更新查询集和延长生成长度来持续提升性能。
  2. GSPO在训练效率上显著优于GRPO,在相同训练计算和消耗查询下实现更好的训练准确性和基准性能。
  3. GSPO成功应用于最新Qwen3模型的RL训练,证明了其在释放大规模RL扩展能力方面的有效性。

关于裁剪比例的观察

尽管GSPO的序列级裁剪比GRPO的token级裁剪裁剪了更多token,但GSPO仍实现了更高的训练效率。这表明GRPO的token级梯度估计本质上是噪声大且低效的,而GSPO的序列级方法提供了更可靠和有效的学习信号。

GSPO对MoE训练的益处

在MoE模型训练中,专家激活波动会导致token级重要性比率剧烈波动,进而影响RL训练的正常收敛。为解决这个问题,之前的方法采用了Routing Replay策略,但会带来额外的内存和通信开销。

GSPO通过关注序列似然而非单个token似然,从根本上解决了专家激活波动问题,消除了对Routing Replay策略的依赖。这不仅简化和稳定了训练过程,还允许模型充分利用其容量而无需人工约束。

GSPO对RL基础设施的益处

由于训练引擎(如Megatron)和推理引擎(如SGLang和vLLM)之间的精度差异,在实践中通常需要使用训练引擎重新计算旧策略下采样响应的似然。然而,GSPO只使用序列级而非token级似然进行优化,对精度差异更容忍,因此可以直接使用推理引擎返回的似然进行优化,从而避免了使用训练引擎重新计算的需求。这在部分rollout和多轮RL等场景以及训练-推理分离框架中特别有益。

http://www.lryc.cn/news/621500.html

相关文章:

  • SpringCloud -- Nacos详细介绍
  • 跨网络 SSH 访问:借助 cpolar 内网穿透服务实现手机远程管理 Linux
  • 搭建前端开发环境 安装nvm nodejs pnpm 配置环境变量
  • Spark03-RDD01-简介+常用的Transformation算子
  • SQL:生成日期序列(填补缺失的日期)
  • 完整技术栈分享:基于Hadoop+Spark的在线教育投融资大数据可视化分析系统
  • 【Docker】关于hub.docker.com,无法打开,国内使用dockers.xuanyuan.me搜索容器镜像、查看容器镜像的使用文档
  • 关于截屏时实现游戏暂停以及本地和上线不同步问题
  • Java研学-SpringCloud(四)
  • Flink Stream API 源码走读 - keyBy
  • 转换一个python项目到moonbit,碰到报错输出:编译器对workflow.mbt文件中的类方法要求不一致的类型注解,导致无法正常编译
  • Vue响应式系统在超大型应用中的性能瓶颈
  • 中年海尔,是时候押注新方向了
  • 训练大模型的前提:数据治理工程:从原始数据到高质量语料的系统化治理实践
  • 抽奖程序web程序
  • 小迪安全v2023学习笔记(六十二讲)—— PHP框架反序列化
  • 实战 AI8051U 音视频播放:USART-SPI→DMA-P2P→SPI+I2S 例程详解
  • Redis 实用型限流与延时队列:从 Lua 固定/滑动窗口到 Streams 消费组(含脚本与压测)
  • 大华相机RTSP无法正常拉流问题分析与解决
  • (Arxiv-2025)Stand-In:一种轻量化、即插即用的身份控制方法用于视频生成
  • openwrt增加自定义网页
  • 基于asp.net#C##VUE框架的独居老人物资配送系统的设计与实现#sql server#visual studio
  • 国内多光谱相机做得好的厂家有哪些?-多光谱相机品牌厂家
  • 8月4日实训考察:重庆五一职院走进成都国际影像产业园
  • Flink面试题及详细答案100道(1-20)- 基础概念与架构
  • 基于.net、C#、asp.net、vs的保护大自然网站的设计与实现
  • Vue3中的ref与reactive全面解析:如何正确选择响应式声明方式
  • java 策略模式 demo
  • 基于微信小程序的家教服务平台的设计与实现/基于asp.net/c#的家教服务平台/基于asp.net/c#的家教管理系统
  • 「iOS」————APP启动优化