最近面试面试官比较看重RL强化学习的知识考察,那么今天就简单讲讲强化学习的来世今生吧~
目录
前言
近年来,大型语言模型LLMs的快速发展标志人工智能领域的重要里程碑。模型通过海量文本语料的自监督预训练,获得了强大的语言理解和生成能力。然而,预训练的核心目标本质上是模仿数据分布,并不足以确保模型生成的内容完全符合人类的价值观和期望。未经对齐的LLM可能会产生不准确、有偏见、有害甚至虚构的内容,因此模型对齐应运而生,其核心目标是微调预训练模型,使其行为与人类的意图、偏好和价值观保持一致。

基于人类反馈的强化学习(RLHF)已成为实现模型对齐的主导范式。RLHF的核心思想是将人类的偏好数据转化为数值奖励信号,并利用强化学习算法优化语言模型的策略,以最大化期望奖励。在RLHF的发展过程中,近端策略优化PPO作为经典算法,通过限制策略更新幅度确保训练稳定性,但其依赖价值模型Critic和奖励模型RM,导致计算成本高、系统复杂性大。为克服这些挑战,直接偏好优化DPO被提出,它绕过显式奖励模型,直接通过偏好数据优化策略,简化了训练流程,但在复杂推理任务中表现较差。
针对PPO和DPO的局限性,DeepSeek团队提出了组相对策略优化GRPO,该算法通过组内相对优势估计替代价值模型,显著降低了计算资源消耗,并在数学推理等任务中展现出卓越性能。GRPO的创新引发了后续一系列优化算法的涌现,包括DAPO(解耦裁剪和动态采样)、GSPO(基于几何平均的稳定优化)、GMPO(改进的组策略优化)等,这些算法进一步解决了GRPO在训练稳定性、长度偏差和离群值敏感性问题上的不足。
本篇文章全面解析RL强化学习中的典型技术,深入探讨PPO、DPO和GRPO的核心原理、优缺点及适用场景,并重点分析最新算法如DAPO、GSPO、GMPO的技术改进与优化效果。通过对这些算法的对比研究,我希望为读者提供一套清晰的选择指南,助力其在不同的应用场景中实现高效、稳定的大模型对齐
一、PPO
论文链接:[1707.06347] Proximal Policy Optimization Algorithms (arxiv.org)
近端策略优化(PPO)是一种基于策略梯度的强化学习算法,由OpenAI于2017年提出。它通过引入裁剪机制和KL散度约束来解决传统策略梯度方法中训练不稳定和样本效率低下的问题,成为深度强化学习领域最广泛应用的算法之一。
1.1 核心思想和设计动机
PPO的核心设计目标是在保证策略性能提升的同时,限制新旧策略之间的差异,防止策略更新幅度过大导致的训练崩溃。这一思想源于信任区域优化概念,但相比TRPO采用复杂的二阶优化,PPO通过一阶近似显著降低了计算复杂度。
传统策略梯度方法直接最大化期望奖励的梯度:

-
∇θJ(θ)是策略性能指标 J(θ)关于参数 θ的梯度
-
Eτ∼πθ表示在策略 πθ下轨迹 τ的期望
-
∇θlogπθ(at∣st)是策略函数对数概率的梯度
-
R(τ)是轨迹 τ的总累积奖励
但这种更新方式容易导致策略更新幅度过大,破坏收敛稳定性
PPO通过两种主要机制解决这一问题:
-
概率比率裁剪:限制新旧策略概率比的变动范围
-
自适应KL惩罚:动态调整KL散度的惩罚系数
1.2 算法架构与关键组件

PPO中策略模型(Actor)、参考模型(Reference)和价值模型(Critic)的协同工作方式,可以这样理解:
-
策略模型(Actor):就像执行任务的员工,它根据当前情况(状态)主动做出决策(动作),比如生成一段对话文本或执行一个游戏操作。
-
参考模型(Reference):如同一位恪守成规的老员工,它保持不变,为策略模型提供一个“行为基准”。它的主要作用是防止策略模型在优化过程中为了追求高分而变得“离谱”或偏离正常轨道,确保更新稳妥。
-
价值模型(Critic):则像一位评估长期收益的分析师。它不直接打分,而是预测当前决策带来的长期潜在价值(状态价值),帮助策略模型判断某个动作不仅眼前有利,是否还对未来长久有益。
它们的协作流程大致是:策略模型做出动作,价值模型评估长期价值并提供“优势函数”信号,指示动作相对于平均水平的优劣。策略模型根据这个信号和参考模型的约束(通过KL散度或概率比裁剪)进行更新,在追求更高回报的同时不被坏“基准”太远。三者协作,确保策略模型在稳步提升的同时不走偏。
1.3 核心数学原理
a. 裁剪机制


其中:
-
rt(θ)是新旧策略的概率比
-
At是优势函数
-
ϵ是裁剪参数(通常设为0.1-0.2)
-
clip(rt(θ),1−ϵ,1+ϵ)将比率限制在 [1−ϵ,1+ϵ]范围内
当A_t > 0时:限制策略提升的上限,避免过度优化
当A_t < 0时:限制策略下降的下限,防止策略退化
b. KL散度约束


其中:
-
rt(θ)是新旧策略的概率比
-
A^t是优势函数估计
-
β是KL散度惩罚系数(可自适应调整)
-
KL[πθold∥πθ]衡量新旧策略分布之间的差异
当KL散度超过阈值时增大β,反之减小
c. GAE优势估计
PPO使用广义优势估计(GAE) 平衡偏差和方差:


δt是时序差分误差
γ是折扣因子
λ是GAE参数,控制偏差-方差权衡
V(st)是状态价值函数估计
当 λ=0时,退化为 单步TD误差

当 λ=1时,退化为 蒙特卡洛估计

1.4 损失函数组成
PPO的总损失函数由三部分组成:

其中:
-
LCLIP(θ):裁剪策略损失,限制策略更新幅度
-
LVF(ϕ):价值函数损失,通常采用均方误差形式
-
Et[H(πθ(⋅∣st))]:熵正则化项,鼓励策略探索
-
c1和c2:超参数权重系数
a. 策略损失
限制新旧策略差异,防止更新过大

原理和前文裁剪机制一样
b. 价值损失
目标是训练能够准确估计状态价值的Critic网络,任务是预测在给定状态 st下,遵循当前策略所能获得的期望累积回报 Rt。价值函数损失通过最小化预测值 V(st)与实际回报 Rt之间的差异来实现这一目标。
用于计算优势函数,衡量了在特定状态下采取某个特定动作相比平均情况的好坏程度,是策略网络Actor更新的核心指导信号。
常采用均方误差MSE作为损失函数:

Vϕ(st)是价值网络输出(状态价值预测),Rt是通过经验采样得到的实际折扣累积回报
c. 熵正则化项
主要目的是鼓励策略保持一定的随机性,防止其过早收敛到局部最优的确定性策略,从而促进探索
策略的熵H(πθ)是度量其随机性或不确定性的指标。一个均匀的随机策略具有高熵,而确定性策略(总是选择某个特定动作)的熵为零。通过最大化策略的熵,可以鼓励智能体尝试更多不同的动作,避免在训练早期就陷入局部最优,只利用当前看似最好的动作

二、DPO:简化大模型对齐
无需复杂强化学习,一步实现人类偏好对齐
论文:https://arxiv.org/abs/2305.18290
在大型语言模型(LLM)快速发展的今天,如何让模型输出更符合人类价值观和偏好成为了关键挑战。传统方法需要复杂的强化学习流程,而直接偏好优化(DPO)的出现彻底改变了这一局面。本文将深入解析DPO的原理、实现和优势。
2.1 提出背景和关键原理:解决RL痛点
传统基于人类反馈的强化学习RLHF是训练大语言模型对齐人类意图的核心方法,但其流程复杂,需要分三步进行:
-
监督微调SFT:使用标注数据微调模型
-
奖励模型训练:通过人类偏好数据训练奖励模型
-
强化学习优化:使用PPO等算法优化策略,最大化奖励同时约束KL散度
这种方法存在几个关键问题:PPO训练不稳定,需多次策略迭代,计算成本高;奖励模型的训练与强化学习阶段解耦,可能引入误差。
DPO于2023年提出,其核心思想是绕过显式奖励模型,直接通过偏好数据优化策略,将奖励函数隐式地参数化为策略本身。这种方法避免了训练独立的奖励模型,简化了训练流程,提升了计算效率。
2.2 损失函数详解

对比模型对优选/拒绝回答的概率差异,最大化人类偏好数据的似然,通过KL散度约束模型不要偏离参考模型太远
-
logπref(y∣x)πθ(y∣x)二元交叉熵表示当前策略θ相对于参考策略ref对答案y的偏好程度。yw系统选择更优回答 yl不符合偏好回答 尽可能让其评分差放大,确保模型选择偏好选项
-
β的作用:放大或缩小偏好差异的强度,控制策略更新的激进程度(类似温度系数)
-
Sigmoid函数的作用:将策略偏好差异映射到(0,1)区间,表示"好答案优于坏答案"的概率
2.3 训练流程
DPO训练过程简洁明了:
-
准备偏好数据:收集格式为(prompt, chosen, rejected)的偏好数据
-
加载模型:初始化策略模型和参考模型(通常为SFT模型)
-
计算损失:对于每个样本,计算DPO损失函数
-
参数更新:通过梯度下降优化策略模型参数
偏好数据,通常格式为三元组:(prompt, chosen_response, rejected_response)
数据收集方法:
-
模型生成多个候选回答
-
人工或LLM标注偏好排序(A优于B)
-
训练奖励模型对候选响应打分,快速标注
示例数据格式(JSON):
{ "prompt": "你认为气候变化的主要原因是什么?", "chosen": "气候变化主要由温室气体排放增加引起,特别是二氧化碳。", "rejected": "气候变化是自然周期的一部分,与人类活动无关。" }
以下是基于HuggingFace Transformers和TRL库的简化代码实现:
from transformers import AutoTokenizer, AutoModelForCausalLM
from trl import DPOTrainer, DPOConfig
from datasets import load_dataset
# 加载基础模型
model_name = "EleutherAI/gpt-neo-125M"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name)
# 加载偏好数据集
dataset = load_dataset("Anthropic/hh-rlhf", split="train[:1%]")
# 数据预处理
def preprocess(example):
prompt = example["chosen"].split("\n\n")[0] + "\n\n"
chosen = example["chosen"].replace(prompt, "", 1)
rejected = example["rejected"].replace(prompt, "", 1)
return {"prompt": prompt, "chosen": chosen, "rejected": rejected}
dataset = dataset.map(preprocess)
# 配置并启动DPO训练器
dpo_config = DPOConfig(
beta=0.1,
max_length=512,
max_prompt_length=256,
per_device_train_batch_size=4,
learning_rate=5e-5,
num_train_epochs=1,
output_dir="./results"
)
trainer = DPOTrainer(
model=model,
ref_model=None,
args=dpo_config,
train_dataset=dataset,
tokenizer=tokenizer
)
trainer.train()
2.4 优势和局限性
显著优势
-
简化训练流程:DPO不需要训练奖励模型,也不需要复杂的强化学习循环,将多阶段训练压缩为单阶段监督学习
-
计算效率高:相比RLHF需加载4个模型(策略、价值、奖励、参考),DPO只需要加载1个必选模型+1个可选模型,降低显存需求
-
训练稳定性强:避免强化学习中常见的崩溃和震荡问题,训练过程更可控
-
实现简单:超参数调整相对简单,主要需要关注学习率和偏好权重β
局限性
-
效果直接依赖于偏好数据的质量和数量,如果数据存在噪声或偏差,模型性能会受到影响
-
由于缺少奖励模型的泛化,容易直接拟合人类偏好数据,造成过拟合
三、GRPO:革新大模型强化学习训练的高效算法
论文:https://arxiv.org/pdf/2402.03300
在大语言模型LLM的强化学习训练中,近端策略优化PPO一直是主流方法,但其依赖价值模型Critic来评估奖励基线的设计带来了巨大的计算成本和内存开销。为了解决这一痛点,Group Relative Policy Optimization(GRPO) 应运而生。GRPO通过群体采样和相对优势计算的创新机制,在保持训练效果的同时显著降低了资源消耗
3.1 PPO的价值模型瓶颈
在传统PPO算法中,需要同时维护和训练四个模型:
-
策略模型Actor:生成回答的主模型
-
价值模型Critic:评估状态价值,提供基线
-
参考模型Reference:计算KL散度惩罚
-
奖励模型Reward Model:评估生成文本质量
这种架构存在明显瓶颈:
-
高计算成本:价值模型通常与策略模型规模相当,占用大量内存和计算资源
-
训练复杂性:价值估计依赖于单独的神经网络,带来误差,影响优化效果
-
收敛不稳定:数学推理任务的奖励通常是最终答案的正确性,而PPO要求对每个token计算优势函数,导致优化难度较大
3.2 核心创新

GRPO的创新在于去除价值模型,改用群体奖励基线来计算优势函数,从而降低计算成本并提高稳定性
GRPO的关键改进是通过组内回答的相对好坏来估计优势,替代了PPO中价值模型的功能,具体步骤如下:
-
组采样:对于问题q,从旧策略模型πθ_old采样G个不同的答案
-
组评估:使用奖励模型为每个答案o_i评分,得到G个奖励值
-
组内优势计算:计算组内所有回答的平均奖励和标准差,并计算归一化(可选)奖励,直接用归一化奖励作为优势函数

这种方法直观易懂:如果一名学生的分数远高于班级平均分,那么他的优势就是正的,反之亦然。组内标准化有效地消除了绝对奖励偏差
3.3 损失函数详解
优化目标函数结合了PPO的裁剪机制和KL散度约束:

π_θ(o | q) / π_old(o | q) 重要性采样比率,表示新策略相对于旧策略在生成某个响应(或token)上的概率变化
Â是上述计算得到的(标准化后的)相对优势估计值
ε是裁剪超参数(通常设置为0.1或0.2),定义了策略更新幅度的信任区域
1-ε限制下限,1+ε限制上限
该目标函数包含三个关键组件:
-
概率比:反映新策略对响应的概率变化
-
裁剪函数min+clip:限制概率比的变化范围,防止策略更新幅度过大
-
KL散度:防止模型偏离参考策略太远,平衡性能提升与输出稳定性
变体GRPO-Zero
GRPO的一个有趣变体是GRPO-Zero,它进一步去除了奖励模型(RM),使用基于规则的奖励函数,进一步降低开销
GRPO-Zero使用两种奖励类型:
-
准确奖励:基于可验证的客观标准(数学问题的正确答案)
-
格式奖励:基于响应格式的合理性(代码语法正确性)
这种设计特别适合数学推理和代码生成等可验证正确性的任务,其中奖励可以基于规则自动计算,无需训练单独的奖励模型
3.4 优势与局限
显著优势
-
省去了价值模型和其计算过程,显著减少显存需求,加速训练
-
在数学推理等确定性答案任务上表现与PPO相当甚至更好
-
通过组内基线和KL散度约束,能够更稳定地进行策略更新
局限
-
多输出采样增加成本
-
在复杂任务中,GRPO表现不如传统PPO算法
-
对于主观性强的任务效果有限
四、最新相关研究
4.1 DAPO 字节Seed
论文地址:https://arxiv.org/pdf/2503.14476
面对大语言模型在复杂推理任务中的强化学习训练困境,DAPO算法通过一系列精巧设计实现了训练效率与稳定性的双重提升。

大语言模型LLM的强化学习后训练,特别是针对数学推理、代码生成等需要复杂思维链CoT的任务,一直是研究和应用的难点。传统的PPO和其简化版GRPO算法在实践过程中逐渐暴露出诸多问题。 DAPO应运而生,旨在系统性地解决这些痛点。
DAPO通过移除KL散度约束、设置更高裁剪值、引入动态采样、基于Token的策略梯度损失以及软超长惩罚机制,来构建一个更强大、更稳定的训练框架。
4.1.1 诞生背景:GRPO与PPO的固有局限
在深入DAPO之前,我们需先理解其试图解决的核心问题。GRPO算法简化了PPO,使其更适用于LLM的规则性任务(如程序、数学),它主要利用规则函数进行奖励打分,并取消了价值模型。
尽管GRPO做出了简化,但它仍继承了PPO的一些固有缺陷,并在LLM的长思维链生成场景下放大了新的问题:
-
熵坍塌:训练中模型的熵值急剧下降,输出多样性锐减,探索能力受限,策略变得确定而缺乏变化
-
奖励噪声与梯度消失:当GRPO算法中同一组内的所有输出结果全部正确或全部错误时,会导致优势函数 A^group的方差为零,进而造成梯度消失,模型无法从该组样本中学到任何有效信息。
-
奖励粒度与动作粒度不匹配:GRPO的奖励是基于整个输出序列计算的,但策略更新粒度却是每个Token。这种不匹配使得每个Token都获得相同的优势值,未能精细区分不同Token对最终奖励的贡献差异,稀释了Token级别的更新信号。
-
长序列惩罚的干扰:对生成长度超出限制的样本进行硬性截断和惩罚,会干扰模型学习。有时模型推理过程正确,却因答案过长而受到重罚,引入不必要的奖励噪声,导致训练不稳定。
4.1.2 核心优化方案
DAPO针对上述问题,提出了五项关键优化措施。
问题:在传统的PPO/GRPO中,KL散度项用于约束当前策略模型不至于偏离初始参考模型太远,目的是防止模型“遗忘”原有知识。在长思维链CoT训练中,我们的目标恰恰是让模型分布发生显著变化,使其获得强大的推理能力。此时,KL约束反而成为一种限制,阻碍模型探索和获得新能力。
优化1:移除KL散度约束
DAPO移除了目标函数中的KL散度项。这不仅简化了目标函数,更重要的是释放了模型的探索潜力,允许其为了追求更高的任务奖励而进行更大幅度的策略更新
移除KL散度后,需警惕“奖励作弊”:模型可能找到一些无关紧要或错误的方式来获得高奖励。DAPO通过直接使用客观准确率作为奖励(答案正确奖励+1,错误奖励-1),确保奖励信号与任务目标的严格对齐,从而在很大程度上 缓解了这一风险。
优化2:设置更高裁剪值

问题:PPO/GRPO中使用的对称裁剪(通常上下限设为[0.8, 1.2])在LLM场景下会限制探索。对于旧策略中采样概率极低(如0.01)但可能有潜力的Token,其重要性采样比率即使有很大提升空间(例如从0.01到0.5),也会被粗暴地裁剪到上限(1.2),从而抑制了对低概率、高价值Token的探索,加剧了熵坍塌。
优化:
DAPO将裁剪的上限和下限分开设置,并显著提高裁剪的上限值。如图所示,这种非对称的裁剪策略允许模型在训练中更积极地探索那些旧策略下概率较低但可能带来高回报的动作Token,有效鼓励了探索,缓解了熵坍塌问题。
效果:
训练过程中的熵曲线变得更加平稳,模型输出的多样性得以维持,探索能力增强。
优化3:动态采样
问题:GRPO算法需要为每个输入生成一组(N个)输出进行计算。如果这组输出全部正确或全部错误,那么计算出的组内优势值 A^group会缺乏方差,导致梯度接近于零,模型无法从当前更新中学到任何东西,浪费计算资源
优化:DAPO引入了动态采样机制。它会自动识别并丢弃这些“全对”/“全错”的无效样本组,然后重新采样填充,确保用于训练的批次中始终包含混合了正负奖励的有效样本。这套流程保障了几乎每个训练步都能提供有效的梯度信号
效果:虽然动态过滤和重采样会略微增加一些采样时间,但大幅提升了训练效率和稳定性,避免了因无效样本组导致的训练资源浪费和性能停滞。

优化4:token级策略梯度损失
问题:GRPO/PPO的损失计算方式是先对序列中所有Token的损失求平均,再对一个批次中所有样本的损失求平均。导致长序列中每个Token对最终损失的贡献被严重稀释。同时,由于奖励是序列级的,每个Token都获得相同的优势值,无法有效惩罚长回答中某个特定Token产生的不良模式,可能导致模型倾向于生成冗长但不精确的内容

优化:DAPO将损失计算改为基于Token的粒度。它不是将整个序列的优势值平均分配给每个Token,而是为每个Token计算更精细的损失贡献,然后对所有Token的损失进行加权求和平均。这使得模型能够更关注长序列中每个Token的优化,尤其是那些对最终结果有关键影响的Token

效果:显著提升了模型在长序列生成任务上的表现。生成的思维链逻辑更清晰,冗长和重复的情况减少,最终答案的准确性也更高。
优化5:软超长惩罚
问题:对超过预定长度的样本进行硬性截断和固定惩罚(如直接赋予-1的奖励),会引入大量奖励噪声。一个典型的场景是:模型的推理过程完全正确,仅仅因为最终答案比预设的最大长度多出了几个Token就受到重罚,这无疑会干扰模型的学习信号,导致训练不稳定。
优化:DAPO采用了“软”超长惩罚。它设定了惩罚缓冲区。对于长度超出最大限制但处于缓冲区内的样本,惩罚值从0到-1线性递增。只有当长度严重超出缓冲区时,才会施加最大的固定惩罚。这种渐进式的惩罚机制更符合常理。
效果:训练过程的收敛曲线更加稳定平滑。它降低了因长度判断而引入的奖励噪声,使模型能更专注于学习正确的推理逻辑,而不是简单地学习生成短答案以避免惩罚。

4.1.3 总结
DAPO算法并非一个全新的底层框架,而是对GRPO/PPO在大语言模型强化学习实践中所遇痛点的一次精准且有效的改进集合。
它通过移除KL散度来解放模型分布、设置更高裁剪值来鼓励探索、动态采样来确保训练信号有效性、Token级损失计算来精细化优化以及软超长惩罚来降低奖励噪声,系统地提升了训练效率和最终模型的性能。
这些优化思路深刻地反映了LLM强化学习后训练中的一个核心思想:需要在鼓励探索(获得新能力)和利用现有知识(保持稳定性)之间找到精妙的平衡。DAPO的实践表明,针对特定任务场景(如长思维链推理)进行算法适配和优化,远比追求一个“万能”的通用算法更为有效。
4.2 VAPO 字节Seed
论文地址:https://arxiv.org/pdf/2504.05118

这张图表明了相比于DAPO,VAPO能:
-
生成更长的响应
-
获得更高的奖励分数
-
输出更加确定和一致
4.2.1 背景:长链推理COT对PPO构成挑战
以下挑战导致传统PPO在长链推理中性能低下,模型生成过短响应或推理能力退化。尽管无价值方法(GRPO、DAPO)简化了训练,但基于价值的方法若能解决上述问题,理论上具有更高性能上限,因其能实现更精确的信用分配和更低方差的优势估计
-
价值模型偏差:价值模型通常从奖励模型初始化,但奖励模型只关注序列末尾评分(如最终答案对错),导致对早期token的回报估计偏低。传统GAE广义优势估计使用固定λ(0.95),在长序列中奖励信号会指数衰减,早期token几乎感知不到末端奖励,加剧偏差
-
序列长度异构:推理任务生成的序列长度差异大。固定λ的GAE难以适应:短序列估计方差高,长序列估计偏差大,导致模型优化不一致
-
奖励信号稀疏:基于验证器的任务(如数学答案评分)通常只有二元奖励(正确1,错误0),且仅在序列末尾提供。稀疏奖励使模型难以探索到正例,训练不稳定,易陷入次优解
4.2.2 核心创新点
创新点1:价值预训练
用固定策略(SFT模型)生成响应,以无偏的蒙特卡洛回报(λ=1)训练价值模型,直至损失收敛。消除了奖励模型初始化带来的偏差,使价值模型能准确估计长期回报
创新点2:解耦GAE的参数
价值更新使用λ_critic=1.0(无偏蒙特卡洛回报),确保奖励信号完整传播;策略更新使用λ_actor=0.95,降低方差,加速收敛
创新点3:长度自适应GAE
动态调整策略更新的λ_actor基于序列长度l:λ_actor=1 -1/(αl)。短序列λ较小减少方差,长序列λ接近1.0减少偏差,优化不同长度序列的优势估计
-
正例语言模型损失:对采样到的正确答案(正例),添加负对数似然NLL损失,通过模仿学习增强正例利用效率,减少试错成本
背景:长链推理任务中,模型获得的奖励通常是二元的,且仅在序列末尾提供,导致
1 正例(正确答案)采样率极低,需大量探索才能偶然获得一次正确输出
2 缺乏对正确行为的显式强化,学习效率低
正例LM损失通过直接模仿正确答案来弥补这一缺陷,减少盲目探索,加速收敛


T是当前批次中所有正例(正确答案)的集合。
∣σi∣是第 i个正例序列的长度。
πθ(at∣st)是模型在状态 st(即之前的token序列)下选择动作 at(生成下一个token)的概率。
u设置较低,确保RL优化仍是主导,模仿学习起辅助作用。
创新点4:组采样
减少每批次提示数量,但对每个提示重复采样多次。提供更丰富的对比信号(正例vs负例),增强同一提示下不同响应的学习能力
创新点5:解耦剪裁范围(DAPO)
设置ϵ_low=0.2, ϵ_high=0.28。更高的ϵ_high为低概率token提供更多探索空间,防止熵崩溃;ϵ_low防止高概率动作被过度抑制
创新点5:token级梯度损失(DAPO)
将PPO损失从序列级平均改为token级平均,确保每个token对损失的贡献均等(无论序列长短)。这增加长序列的优化权重,提升训练稳定性
4.2.3 优势
-
有效提升稀疏奖励下的利用率
-
性能相比DAPO和GRPO更高,训练步数少
-
高效解决长序列问题:长度自适应GAE和token级损失有效优化长序列推理,避免长度崩溃,生成长度和质量均更优
-
增强探索能力:Clip-Higher和组采样在稀疏奖励下鼓励探索,避免陷入次优解;正例LM损失加速正例利用
4.3 GSPO 阿里
突破token级优化瓶颈,让大语言模型训练更稳定高效
论文地址:https://arxiv.org/abs/2507.18071
在大型语言模型LLM的训练过程中,强化学习RL已成为提升模型推理、数学计算和代码生成能力的关键技术。DeepSeek 提出的 GRPOGroup Relative Policy Optimization算法虽然为 DeepSeek-R1 的强大表现立下汗马功劳,但研究人员逐渐发现其存在一些根本性缺陷。本文将深入分析 GRPO 的主要问题,并详细介绍一种优化算法GSPO,它通过序列级优化有效解决了这些难题。
4.3.1 GRPO的三大缺陷
1. Token 级别重要性采样引入高方差噪声
GRPO 在 token 级别计算重要性采样权重,这种方法在每个 token 仅采样一次的情况下,无法实现有效的分布校正,反而会在模型训练过程中引入高方差噪声。
这种噪声会随着生成序列长度的增加而不断累积,并被裁剪机制放大,导致模型训练过程不稳定甚至完全崩溃。特别是在生成长文本任务中,这种问题尤为明显。
2. 优化与奖励单位不匹配
GRPO 在 token 级别进行重要性采样修正,但奖励是在序列级别计算的,这种粒度不匹配导致噪声大、样本利用效率低下。
这种不匹配使得训练过程变得低效,需要更多的数据和计算资源才能达到理想效果,在某些情况下甚至会导致性能下降而不是提升。
3. 对 MoE 模型的支持不足
混合专家模型(Mixture-of-Experts, MoE)因其稀疏激活的特性,在训练中专家激活模式容易波动。GRPO 训练 MoE 模型时,需要依赖"路由重放"(Routing Replay)等额外策略来稳定训练。这不仅增加了内存和通信开销,还限制了模型的实际可用容量。
4.3.2 关键创新


面对 GRPO 的这些挑战,研究人员提出了 GSPO 算法,它通过以下几个关键创新解决了上述问题:
核心优化1:序列级的重要性权重*
GSPO 最核心的创新是将重要性权重计算从 token 级别提升至序列级别。
-
这意味着算法不再对每个 token 单独计算重要性权重,而是对整个生成序列计算统一的重要性比值。这种改变显著降低了梯度估计方差,提高了训练稳定性。
-
每个 token 共享统一的序列级别权重,有效避免了 token 级别噪声的引入。确保了整个序列的优化目标保持一致,提高了训练效率。
-
序列级权重计算对 MoE 模型中单 token 和专家激活变化不敏感,GSPO 能天然稳定地训练 MoE 模型,无需复杂的路由重放等稳定策略。不仅简化了训练流程,还释放了模型的全部容量。使用 GSPO 训练 MoE 模型不再需要路由重放技巧,从而消除了不必要的训练复杂性,并保留了 MoE 架构的全部潜力。
优化2:长度归一化处理
GSPO 对序列重要性比进行长度归一化,使其在不同长度的序列间保持数值范围统一,进一步提高了算法稳定性。
如果不进行长度归一化,仅仅几个 token 的似然变化就可能导致序列级重要性比值的剧烈波动,而不同长度的生成响应在目标函数中也将需要不同的裁剪范围,这会增加训练的不稳定性。
优化4:序列级裁剪机制
GSPO 将裁剪机制从 token 级提升到序列级,避免策略偏离过远的 token 参与更新,确保优化目标和奖励信号的一致性。
优化5:提出GSPO-token 变体,兼顾灵活性与稳定性
为适应多轮强化学习等需要更细粒度优势调整的场景,GSPO 提供了 GSPO-token 变体。这种方法在保持序列级别优化核心优势的同时,允许逐 token 的优势调整,为未来更细粒度(token 级别)的 advantage 计算提供了支持。
当各 token 的 advantage 相同时,GSPO-token 与 GSPO 是等价的。这种设计使得算法既能保持稳定性,又不会失去灵活性

4.3.3 效果

通过将重要性采样从 token 级别转移至序列级别,GSPO 显著降低了训练过程中的方差累积问题,使训练过程更加稳定平滑,经过实际测试表明:
-
训练效率优势:GSPO在所有测试任务上都表现出比GRPO更高的训练效率
-
稳定性证明:GSPO的训练曲线更加平滑稳定,验证了序列级优化降低方差的优势
-
泛化能力:在数学推理、代码生成等多种任务上,GSPO都展现出一致的性能优势
4.4 GMPO 微软
用简单数学变换,解决大模型强化学习训练中的根本性难题
论文地址:https://arxiv.org/pdf/2507.20673
在大语言模型(LLM)的强化学习训练过程中,研究人员常常面临一个棘手问题:训练过程不稳定,甚至突然崩溃。特别是使用GRPO方法时,这种不稳定性尤为明显。今天我将深入探讨微软研究院提出的解决方案——几何平均策略优化(Geometric-Mean Policy Optimization,GMPO),这一创新方法从数学原理层面解决了训练不稳定问题。
4.4.1 为什么GRPO的训练会崩溃
GRPO 是目前大语言模型推理训练中广泛使用的强化学习方法,它通过优化 token 级奖励的算术平均值来进行训练。虽然在许多场景下表现良好,但 GRPO 面临着一个根本性问题:算术平均对异常值过于敏感。
当模型训练过程中出现极端的重要性采样比率(即当前策略与旧策略分配给一个 token 的概率比)时,GRPO 的更新过程会变得极不稳定,当某个 token 的重要性权重比值是异常离群值时会导致策略更新不稳定,甚至训练崩溃
4.4.2 核心创新
核心优化1:几何平均
面对 GRPO 的稳定性问题,微软研究院团队提出简单而优雅的解决方案:用几何平均替代算术平均
算术平均(Arithmetic Mean)的计算方式是我们熟悉的:(a+b+c)/3,它对极端值非常敏感。几何平均(Geometric Mean)的计算方式则是:(a×b×c)^(1/3),它对异常值具有天然的鲁棒性。
举个简单例子:
考虑数值序列:2, 4, 6, 8, 100
-
算术平均 = (2+4+6+8+100)/5 = 120/5 = 24
-
几何平均 = (2×4×6×8×100)^(1/5) ≈ (38400)^(0.2) ≈ 8.25
在这个例子中,异常值100将算术平均从"正常范围"的5(前四个数的算术平均)大幅提升到24,而几何平均只从约4.75提升到8.25,受影响程度明显较小。

-
这种简单而有效的修改确保了 GMPO 在训练过程中能够更好地处理极端奖励,训练更稳定
-
从梯度分析的角度来看,GRPO 中每个 token 的梯度受到它自身的重要性采样比率加权,容易受到极端值影响。而 GMPO 中每个 token 的梯度则受到序列重要性采样比率的几何平均加权,不容易受到极端值影响。这种设计使得梯度更新更加稳定,避免了单个异常 token 主导整个序列更新的问题。
优化2:token级别裁剪策略
与序列级别裁剪不同,GMPO 采用了Token级别裁剪,这种设计有两个重要优势:
-
剪切更加稳定,不易产生极端梯度
-
序列级别的剪切一旦触发,会将整个序列中所有 token 的梯度置为零,丢失来自序列中有价值部分的梯度信号
优化3:更宽的裁剪范围
GMPO 使用了比 GRPO 更宽的裁剪范围:从传统的 (0.8, 1.2)扩展到 (e^{-0.4}, e^{0.4})≈(0.67, 1.49),得益于几何平均的稳定性,GMPO 能够在更宽的范围内安全地进行探索,从而有机会发现更优的策略
4.4.3 优势

这张图表通过直观的方式证明了GMPO算法在训练稳定性方面的显著优势。几何平均的引入不仅是一个数学上的改进,更是解决了大语言模型强化学习训练中的根本性稳定性问题。通过控制重要性采样比率的波动范围,GMPO确保了训练过程的平稳进行,为开发更强大、更可靠的AI系统奠定了坚实基础。
这种稳定性的提升不仅体现在训练过程中,最终也转化为模型性能的实质性改进,使得AI系统能够更加可靠地服务于各种实际应用场景。
感谢大家的观看!!!创作不易,如果觉得我写的好的话麻烦点点赞👍支持一下,谢谢!!!

1404

被折叠的 条评论
为什么被折叠?



