小白也能看懂的LLM-RL算法:PPO/DPO/GRPO/GSPO

原文: https://mp.weixin.qq.com/s/9KT9LrMTXDGHSvGFrQhRkg

LLM-RL往期文章推荐

小白也能看懂的RL-PPO

收藏!强化学习从入门到封神:5 本经典教材 + 8 大实战项目 + 7个免费视频,一站式搞定

小白也能看懂的RLHF:基础篇

小白也能看懂的RLHF-PPO:原理篇

强化学习 (RL, Reinforcement Learning) 已成为大模型后训练的关键环节,在前几篇中,我们对LLM-RL中最基础、最核心的PPO算法做了详细的拆解,有需要的可以点击上面链接阅读,本篇将介绍其他主流的LLM-RL算法。读完这篇后,你会发现,不管是哪种LLM-RL算法,本质都是将人类偏好融入到大模型中,差异点在于以何种方式/更高效地挖掘偏好数据的价值、如何在降低算力资源需求下保证模型性能、如何提高算法稳定性。

在介绍LLM-RL各类策略算法前,我们将先解释一些基本概念,涵盖强化学习理解、价值函数、NLP中的强化学习。 随后,介绍RLHF的起源、设计思路、如何与大模型RLHF算法关联的。再对LLM-RL主流的(DPO、GRPO、GSPO)策略优化算法进行细致讲解,如各个算法原理、训练过程、优缺点等。为了能够更好地对比各个算法,也会捎带介绍下PPO算法。

1 基本概念

1.1 强化学习理解

强化学习关键在于「强化 」这个词,简单理解就是「用反馈强化行为 」,即用奖惩规则让智能体自己在试错中筛选出有效行为,再通过重复反馈把这些行为巩固成最优策略,本质就是「奖惩驱动的行为筛选与巩固 」,咱们结合之训练小狗坐下的例子逐词解释下这句话。

  • 奖惩驱动 :RL整个学习过程的核心动力来自奖励惩罚/无奖励 的即时反馈,比如小狗做对坐下就给零食(奖励),没做对就不给零食(无奖励),小狗的行为选择完全由这种反馈驱动。

  • 行为筛选 :智能体(小狗)会在动作空间里不断尝试不同行为,而奖惩就像一个筛选器,被奖励的行为会被保留,被惩罚/无奖励的行为会被淘汰 。比如小狗一开始可能尝试蹦跳、趴着、摇尾巴等动作,这些动作都没得到零食,就会慢慢被筛选掉;只有坐下这个动作能拿到零食,就会被筛选出来。

  • 行为巩固 :被筛选出来的有效行为,会在一次次重复的「行为---奖励 」循环中被强化,最终变成稳定的条件反射。比如小狗每次做坐下都能拿到零食,重复次数多了,它就会把听到指令→坐下这个行为固定下来,形成稳定的技能。

简单来说,「强化 」不是增强能力,而是强化「动作 - 奖励之间 」的关联,让智能体慢慢记住做什么能拿到好处,做什么会吃亏 。就像训练小狗时,你不用强行掰它的腿让它坐下,只需要用零食的奖惩,让它自己悟出坐下=有吃的这个规律,最后形成稳定的行为习惯。

接下来,我们继续以**训练小狗坐下为例,**理解下强化学习的关键要素、学习过程。

强化学习的2个核心角色:

  • 智能体(Agent) :要学习坐下 技能的小狗

  • 环境(Environment):小狗所处的训练场景(比如家里的客厅、户外的院子等)

强化学习的3个关键要素:

  • 状态空间 \(S\):训练环境中所有可能出现的场景集合。比如小狗可能站着/趴着/对着玩具叫,也可能身边有陌生人经过,这些不同的状态都属于状态空间

  • 动作空间 \(A\):小狗能做出的所有动作集合。比如小狗可以站着不动、趴着休息、摇尾巴、跳跃、坐下,这些都是它动作空间里的内容

  • 奖励 \(R\):小狗处于某个状态、做出某个动作时,给出的即时反馈。比如小狗做出坐下动作时,给它一块零食;如果小狗乱蹦乱跳不配合,就不给零食甚至轻声制止。

那小狗(智能体)和训练环境是怎么互动的,最终学会坐下的呢?我们以训练中 \(t\)时刻的互动过程为例:

  • 当前状态\(S\_t\):小狗正站在客厅里看着你,此时它还没做出目标动作,所以没拿到奖励,即时奖励\(R\_t\)= 0

  • 小狗的动作\(A\_t\):你发出坐下 的指令后,小狗可能做出各种反应,比如蹦跳、可能趴着,也可能偶然做出坐下的动作;

  • 新状态 \(S\{t+1}\)与新反馈与\(R\{t+1}\):如果小狗刚才做的动作\(A\t\)=坐下,训练状态就变成小狗处于坐下状态 \(S\{t+1}\),主人立刻给它一块零食作为奖励\(R\{t+1}\)=2 的正向奖励;如果小狗做的是其他动作,\(S\{t+1}\)可能变成小狗趴着或小狗蹦跳,主人不给零食\(R_{t+1}\)=0。

这样的互动会一次次重复:主人反复发出指令,小狗在不同状态下尝试不同动作,并根据是否拿到零食(奖励)总结经验。最终,小狗(智能体)就会学到一套最优玩法:当接收到坐下 指令时,立刻做出坐下动作,以此稳定拿到零食奖励,这就是强化学习的核心逻辑。

1.2 价值函数

前面提到的即时奖励 \(R\_t\),只反映了当前状态\(S\_t\)的收益,忽略了当前状态和动作对未来收益的影响。更合理的计算方式,需要兼顾即时收益未来收益,公式如下:

\[V\t = R_t + \gamma V{t+1} \]

其中:

  • \(V_t\):\(t\)时刻的总收益(包含即时和未来收益)

  • \(R_t\):\(t\)时刻的即时收益

  • \(V_{t+1}\): \(t+1\)时刻的总收益,对 \(t\)时刻而言属于未来收益

  • \(\gamma\):折扣因子,用来调节未来收益在当前总收益中的权重

此处不展开强化学习价值函数的假设与推导,仅提供简化结论,方便读者聚焦于更好的理解各类算法策略的具体做法和直觉理解。

1.3 NLP中的强化学习

对应到\(NLP\) 下,大语言模型就是智能体,输入的提示词 \(prompt\) 就对应状态 \(S\),输出下一个\(token\) 就是动作 \(A\),对 \(prompt+response\) 进行打分就是奖励 \(R\),整体目标就是给定\(prompt\),调整策略模型,生成符合人类喜好的\(response\)。

2 RLHF的起源

论文标题:Deep Reinforcement Learning from Human Preferences

论文地址:https://arxiv.org/pdf/1706.03741

这篇发表于2017年NIPS的论文是强化学习领域的开创性成果,其核心设计直接奠定了大模型RLHF的技术基础,我们来看看这篇论文到底做出了哪些开创新工作、以及如何对RLHF带来启发的。

2.1 文章的核心:问题、创新与方法

  • 解决的问题:传统强化学习的核心思路是为任务手工设计明确奖励函数,用以引导智能体学习。这种模式对于简单的应用场景还行,一旦涉及复杂场景,如机器人控制、游戏,会面临奖励函数难以精准定义、奖励设计违背人类真实需求的问题,直接影响是智能体行为与人类偏好严重错位,比如机器人为适配简单奖励规则会出现跛行式行走,智能驾驶智能体为追求得分奖励而忽视人类更看重的平稳驾驶体验。

  • 核心创新 :舍弃手工设计奖励,提出「用人类偏好反馈驱动强化学习」,无需真实奖励函数就可以让智能体对齐人类需求,大幅降低人类监督成本。

  • 关键方法 :构建「偏好收集→奖励建模→策略优化」三阶段闭环。① 偏好收集:让非专家对比1-2秒短轨迹片段(如机器人后空翻成败片段),快速给出偏好判断;② 奖励建模:用Bradley-Terry模型训练奖励模型,拟合人类偏好背后的隐性规则;③ 策略优化:通过A2C(游戏场景)、TRPO(机器人场景)算法,结合拟合的奖励模型持续更新策略。

2.2 方法效果

论文在多个场景验证了所提方法的有效性:① MuJoCo机器人任务(8项):仅700条人类查询,性能就接近手工奖励方案,1400条查询实现反超;② Atari游戏(7项):5500条查询让多数任务性能显著提升;③ 可训练novel行为:1小时内教会机器人连续后空翻等人类难以演示的动作。核心亮点是仅需不到1%的环境交互反馈,就能达到甚至超越传统方法。

2.3 对大模型RLHF的启发

论文的核心思想与设计,被RLHF完整继承并适配文本场景(后文会给出详细解读),成为其核心技术框架:

  • 核心逻辑复用 :RLHF直接借鉴「用人类偏好替代手工奖励」的思路,解决大模型对话连贯性、礼貌性等难以量化的问题,避免大模型无法对齐人类偏好。

  • 三步流程照抄:让标注员快速对比两条文本,选出人类偏好,训练模型学会怎么给文本打分,将人类偏好打分融合到PPO算法中优化大模型参数

  • 关键突破的支撑 :大模型文本任务维度极高,全量标注不现实,得益于论文验证的「少量反馈即可驱动模型优化」,RLHF仅用数万条偏好数据就实现了问答质量跃升。

从上面的描述可以看出,论文提出的「奖励难定义 」、「三阶段闭环 」、「低成本反馈 」构成了RLHF的技术基石,启发了OpenAI的研发人员将「智能体对齐人类偏好」这一想法,从机器人、游戏领域成功迁移至大模型,成为ChatGPT一夜爆火的重要原因。

3 RLHF-PPO

论文标题:Training language models to follow instructions with human feedback 论文地址: https://arxiv.org/pdf/2203.02155

PPO(Proximal Policy Optimization)算法是 InstructGPT 模型实现人类反馈强化学习(RLHF)的核心,核心思想是通过约束策略更新幅度,在保证训练稳定性的前提下,最大化人类偏好导向的奖励,同时避免策略过度偏离初始监督模型。

3.1 RLHF-PPO的四大模型

相比传统PPO算法,RLHF-PPO模型架构更为复杂,一共包含4个模型,比传统PPO多出了参考模型(Reference Model)奖励模型(Reward Model)

**四大模型作用和参数初始化:

  • Actor Model \(\pi_{\theta}\) :用SFT后的模型作为初始模型,通过PPO训练调整参数,得到最终的模型,使其生成的回答更符合人类偏好,参数可变

  • Reference Model \(\pi_{base}\):SFT后的模型,用于限制Actor Model不要偏离Reference Model太远,参数冻结

  • Reward Model \(r\_{\theta}\):对模型回答打分,表示贴合人类偏好的程度,训练完后,在PPO中是参数冻结的。

  • Critic Model \(V_{t}\):用于预测期望总收益,为优势函数 \(A_{t}\)提供基线,使策略更新更稳定,参数可变

3.2 RLHF-PPO的训练过程

我们回顾一下RLHF里的整体流程,如上图所示:

Step 1:收集演示数据,训练监督策略(SFT)

Step 2:收集对比数据,训练奖励模型(RM)

Step 3:用强化学习(PPO)优化策略模型

整个流程的核心是用人类偏好数据(演示、排序)指导模型训练,最终让大模型输出既有用、又符合人类意图的内容。

下面,重点讨论PPO算法的训练过程

经验数据收集

  • 将一个batch的prompt喂给当前的Actor模型\(\pi_{\theta}\),生成对应的响应序列response

  • 对于响应序列的每个token,计算以下中间变量:

    • Actor模型的对数概率\(log(\pi_\theta(a_t | s_t))\)

    • Reference模型的对数概率\(log(\pi_{base}(a_t | s_t))\)

    • Critic模型根据当前状态 \(s\_t\)的价值估计 V_t

    • 计算每个token的KL散度\(kl = log(\pi_\theta(a_t | s_t)) - log(\pi_{base}(a_t | s_t)) = log \frac {\pi_\theta(a_t | s_t)}{\pi_{base}(a_t | s_t)}\)

    • 若该token位于序列的最后一个,通过Reward Model 计算人类偏好分数\(r_{\theta}\)

    • 结合 Reward Model 计算人类偏好分数\(r_{\theta}\)(只在最后一步)和 每个token 的 KL 惩罚 ,计算出每个token的最终即时奖励信号 R_t ,以deepspeed-chat的RLHF为例, R_t 的计算如下

    \\begin{align} R_t = \\begin{cases} -kl\\_ctl \*(log\\frac{\\pi_\\theta(a_t \| s_t)}{\\pi_{base}(a_t \| s_t)}), \&\\text t\\not =T \\\\ -kl\\_ctl \*(log\\frac{\\pi_\\theta(a_t \| s_t)}{\\pi_{base}(a_t \| s_t)}) + r_\\theta, \&\\text t=T \\end{cases} \\end{align}

    • 使用最终即时奖励信号 R_t 和Critic模型的价值估计 V_t ,通过 GAE (Generalized Advantage Estimation) 方法计算每个 token 的优势 \(Adv_t\),计算如下

\[\begin{align} \delta_t = R_t + \gamma*V_{t+1} - V_t \\ Adv_t = \delta_t + \gamma* \lambda*Adv_{t+1} \end{align} \]

将前面收集到的经验数据(prompt、\(log(\pi_\theta(a_t | s_t))\)、\(log(\pi_{base}(a_t | s_t))\) 、\(Adv_t\)、...)构成批次,放到经验池中

如果对上述计算过程有疑惑,可以回看小白也能看懂的RLHF-PPO:原理篇,文章有详细解读。

模型参数更新

  • 循环epochs次

    • 对经验池的每个batch数据

      • Actor Model参数更新: PPO更新模型 \(\pi_{\theta}\) 参数,这里为了防止策略模型 \(\pi_{\theta}\) 过度偏离参考模型 \(\pi_{base}\) ,有两种形式保证模型在有限的空间里微调参数,一种是引入PPO-KL散度,

        \\begin{align} L\^{PPO-KL}(\\theta) = E_{\\tau \\sim {\\pi_{base}}}\^t \[\\frac{\\pi_\\theta(a_t \| s_t)}{\\pi_{base}(a_t \| s_t)} A_{t} - \\beta D_{KL}(\\pi_{base}(.\|x_t) \|\| \\pi_{\\theta}(.\|x_t))\] \\end {align}

        另一种PPO-CLIP比较直接,在目标函数中,限制新旧模型的差距在约定的区间内:

        \\begin{align} L\^{PPO-CLIP}(\\theta) = E_{\\tau \\sim {\\pi_{base}}}\^t \[min( \\frac{\\pi_\\theta(a_t \| s_t)}{\\pi_{base}(a_t \| s_t)} A_{t}, \\ clip(\\frac{\\pi_\\theta(a_t \| s_t)}{\\pi_{base}(a_t \| s_t)}, 1-\\varepsilon,1+\\varepsilon)A_{t})\] \\end {align}

      • Critic Model参数更新:$$\begin{align} L^{Critic}({\phi}) &= E_t [(R_t + \gamma V_{t+1} - V_t)^2] \end {align}$$

        \(V\_{t}\): Critic模型对 \(t\)时刻收益的预估,即未来和即时收益的整体预估

        R_t + \\gamma\*V_{t+1}\\(: 计算得到的即时收益\\)R_{t} ,\(\gamma*V_{t+1}\) 为Critic模型预测出 \(t+1\)时刻之后的折损收益

模型参数同步

  • 策略参数更新:完成经验池的数据训练迭代后,用新训练得到的Actor模型参数、Critic模型参数替换旧的模型参数。

  • 丢弃旧数据:因这批数据是用旧策略模型收集的,与现有的新策略模型偏差较大,重要性采样的假设不再准确,所以必须丢弃当前这批数据。

  • 循环训练流程:回到数据收集阶段,用更新后的策略模型与环境重新交互,采集全新的数据;之后重复整个训练流程,直到策略性能稳定收敛,或达到预设的训练步数。

以上就是PPO算法训练全流程的说明,核心环节包括:经验数据收集、模型参数更新和模型参数同步

3.3 RLHF-PPO的优缺点

优点:① 稳定性强:靠裁剪/KL惩罚限制策略更新幅,降低崩坏风险,易收敛;② 易落地:无需TRPO的二阶计算,用Adam优化器即可;核心超参数(如clip系数、GAE参数)易调试

缺点:① 训练成本高:涉及4个模型的运算/更新,是后续改进重点;② 梯度信息浪费:clip机制会截断大量梯度,拖慢训练、限制策略精细度;③ 样本利用率低:本质是on-policy架构,策略同步阶段需丢弃旧数据,新模型每次收集数据都会带来算力、时间成本。

4 DPO

论文标题:Direct Preference Optimization: Your Language Model is Secretly a Reward Model 论文地址:https://arxiv.org/pdf/2305.18290

如前文所述,PPO算法虽被证实有效,但也暴露诸多痛点。如需同时维护和运行四个模型,对计算资源和显存的要求极高;训练过程还伴随强化学习(RL)常见的不稳定性问题;一次完整的PPO训练,覆盖多个环节,调优的难度较大。

能否找到一种方法,绕过显式训练奖励模型和复杂的强化学习环节,基于人类偏好数据直接优化策略模型呢?

DPO正是在这一背景下诞生的创新方法,由斯坦福大学研究团队提出。其核心思想是摒弃「先训练奖励模型,再用RL优化策略」的两步流程,直接将人类偏好数据转化为对策略参数的二分类损失优化,大幅简化了训练链路。

4.1 DPO算法的原理

DPO 的关键理论支撑在于人类偏好数据里隐藏的奖励规则,而针对这个规则,存在一个最优策略 \(\pi^*\),

既能让模型获得的期望奖励尽可能高,又能控制策略模型\(\pi_\theta\)和参考模型 \(\pi_{ref}\)之间的差异在合理的范围内。

论文进一步证明了,这个最优策略 \(\pi^*\)、参考策略模型 \(\pi_{ref}\)以及偏好数据里藏着的奖励函数\(r_{\theta}\) ,三者之间有明确的数学关系,详细的推导过程见论文。这意味着,不用单独训练一个奖励模型,直接拿偏好数据就能优化策略模型。

具体来说,DPO 让正在训练的模型\(\pi_\theta\),在面对同一个输入提示 \(x\)时,生成人类偏好的回答\(y_w\),而不是被否定的回答\(y_l\)。对应的损失函数定义如下:

\[\begin{align} L_{DPO}(\pi_\theta, \pi_{ref}) = -E_{(x, y_w, y_l) \sim {D}}[log(\sigma(\beta * (log\frac{\pi_\theta(y_w | x)}{\pi_{ref}(y_w | x)} - log\frac{\pi_\theta(y_l | x)}{\pi_{ref}(y_l | x)})))] \end {align} \]

我们来拆解这个公式的几个关键部分:

  • 数据来源 \(D\) : 是人类标注的偏好数据集,每个样本是 "提示 \(x\) + 更优回答\(y_w\) + 较差回答\(y\_l\)" 的组合

  • 概率比的比较:

    • \(log\frac{\pi_\theta(y_w | x)}{\pi_{ref}(y_w | x)}\):反映当前模型\(\pi_\theta\)相比参考模型\(\pi_{ref}\)倾向于生成优质回答\(y_w\)的程度,这个值越大越好

    • \(log\frac{\pi_\theta(y_l | x)}{\pi_{ref}(y_l | x)}\):反映当前模型\(\pi_\theta\)相比参考模型\(\pi_{ref}\)倾向于生成差回答\(y_l\)的程度,这个值越小越好

    • 这两个概率比的差值,就是模型学到的优质回答比差回答好多少的信号,两者相差越大,说明模型越能区分好坏,并且越偏爱好的回答,相当于把偏好转化成了隐式奖励。

  • 调控因子 \(\beta\):用来控制\(\pi_\theta\)和\(\pi_{ref}\)的偏离程度,\(\beta\)越大,表明模型需要更明显的偏好差异,才会认定一个回答比另一个好。

  • 损失的作用 :\(Sigmoid\)把奖励信号转成更优回答的概率,再用负对数似然损失来训练,本质是让模型尽可能准确地区分好回答和差回答。

4.2 DPO的训练过程

数据准备 :收集人类偏好数据集 (\(x, y_w, y_l\))

模型初始化

  • Actor Model \(\pi_{\theta}\) :用SFT后的模型作为初始模型,参数可变

  • Reference Model \(\pi_{ref}\):SFT后的模型,参数冻结

训练过程

  • 循环epochs次

    • 从 数据集\(D\)中抽取 (\(x, y_w, y_l\)) batch数据

      • 对于每个样本,计算公式(7)中的中间变量值 \(\pi_\theta(y_w | x)\)、\(\pi_{ref}(y_w | x)\)、\(\pi_\theta(y_l | x)\)、\(\pi_{ref}(y_w | x)\)及其对数概率。通常是计算序列的总对数概率, \(log \pi_theta(y | x) = \sum_t log \pi_\theta(token_t | x, y_{<t})\)

      • 代入 DPO 损失函数公式,计算损失,使用梯度下降更新 \(\pi_{\theta}\) 的参数。

  • 重复此过程,直到模型收敛或达到预定训练步数。

4.3 DPO的优缺点

优点:① 训练链路极简化:直接从偏好数据里提取隐式的奖励信息,没有复杂的数据采样过程,省掉了训练奖励模型、价值函数的步骤。② 资源占用少:仅有参考模型和策略模型,显存和计算资源的消耗大幅降低,训练也更稳定、更容易落地。

缺点:① 依赖大量高质量二元偏好数据:虽然可以借助开源 LLM 生成优质数据,但数据收集仍有难度;② 适配场景较局限:因高度依赖偏好数据,难以覆盖复杂推理任务,能力上限不及 PPO,仅胜在流程简单、训练成本低。

5 GRPO

论文标题:DeepSeekMath: Pushing the Limits of Mathematical Reasoning in Open Language Models

论文地址:https://arxiv.org/pdf/2402.03300

DeepSeek团队发现,PPO算法中Critic模型,参数规模与Actor模型相当,显著增加了LLM训练的内存占用与计算成本;更关键的是,很多LLM任务(如数学推理、代码生成等))奖励信号稀疏(仅序列末尾由RM给出奖励),导致训练能精准估计每个token价值的Critic模型异常困难。

Critic模型的核心作用是为优势函数计算提供基线以降低方差,能否用更高效方式替代Critic实现该目标呢?为此,DeepSeek团队提出GRPO(Group Relative Policy Optimization)算法,突破了对Critic模型的依赖,为策略模型的高效优化开辟了新路径。

5.1 GRPO的原理

GRPO取消了PPO中用于估计价值的Critic模型,通过同一Prompt下的群体信息来构造基线。即,针对单个 Prompt,让策略模型生成 \(G\) 个不同输出 \({\{o_1, o_2, ..., o_G\}}\),用奖励模型给每个输出打分 \(r={\{r_1, r_2, ..., r_G\}}\),计算这组奖励的均值与标准差,再将每个输出的原始奖励归一化,得到优势

\[\begin{align} \hat{A}_{i,t} = \widetilde{r}_i = \frac{r_i - mean(r)}{std(r)} \end{align} \]

由上式得到反映群组相对好坏的分数,以此替代 Critic 提供的优势基线。

由此看出,GRPO的训练仅需三个模型:

  • 策略模型 \(\\pi_{\theta}\) :由SFT模型初始化,根据组内相对奖励动态更新参数,参数变化

  • 参考模型 \(\pi_{ref}\):冻结参数的SFT,参数不变

  • 奖励模型 \(r\_{\theta}\):用于评估生成的完整响应序列的质量,为策略模型提供优化方向,冻结参数

GRPO算法沿用 PPO 的 clip 阶段结构,优势估计被替换为组内归一化奖励:

\[\begin{align} J_{GPRO}(\theta) = E[q\sim P(Q), {o_i} \sim \pi_{\theta_{old}(O|q)}] \frac{1}{G} \sum_{i=1}^G \frac{1}{|o_i|} \sum_{t=1}^{|o_i|} {\{min [ratio_t *\hat{A}{i,t}, clip(ratio_t, 1-\varepsilon, 1+\varepsilon)\}}*\hat{A}{i,t}] - \beta D_{KL}[\pi_\theta || \pi_{ref}]\} \end {align}\]

式(9)的中间变量拆解如下:

  • \\hat{A}_{i,t} 由公式(8)给出,作用于序列中每一个 token,就是说,所有 token 共享同一个优势

  • \(ratio_t=\frac{\pi_\theta(o_{i,t} |q, o_{i,<t})}{\pi_{old}(o_{i,t} |q, o_{i,<t})}\), ,即新旧策略对同一动作的概率比

  • \(\beta D_{KL}[\pi_\theta || \pi_{ref}]\),约束 策略模型不要偏离参考模型太远

5.2 GRPO的训练过程

  • 输入项 :初始策略模型 \(\pi_{\theta_{init}}\) 、奖励模型 \(r_{\theta}\)、任务提示集 \(D\),以及超参数 \(\varepsilon\),\(\beta\)(控制训练稳定性、更新步长等)。

  • 外层循环,总迭代轮次 \(I\)

    每一轮外层循环包含以下操作:

    • 复制当前策略模型\(\pi_{\theta}\)的参数并冻结,将其作为参考模型\(\pi_{ref}\)

    • 进入内层循环(步长\(M\)),执行策略的更新

      • 采样任务与旧策略:从任务提示集 \(D\)中采样一个批次 \(D_b\), 将当前策略模型\(\pi_{\theta}\)暂存为旧策略 \(\pi_{\theta_{old}}\)(用于后续生成候选输出)

      • 生成候选输出并计算奖励:对批次中每个任务q,用旧策略旧策略 \(\pi_{\theta_{old}}\)生成G个候选输出 \({\{o_1, o_2, ..., o_G\}}\),用奖励模型 $$r_{\theta}$$为每个候选输出计算奖励 \({\{r_1, r_2, ..., r_G\}}\)

      • 计算组相对优势: 由公式(8)计算群组相对优势 \\hat{A}_{i,t}

      • 优化策略模型:公式(9)(10)的梯度更新策略模型\(\pi_{\theta}\)的参数

5.3 GRPO算法的优缺点

优点:① 稳定性更强:无需依赖价值函数,只要奖励模型能相对判断群体内策略优劣,降低对价值估计精度的依赖降低对价值估计精度的依赖,提升算法稳定性;② 训练成本更低:没有了Critic 模型,显存占用减少大幅降低,相同硬件可训练更大模型或更大batch;③ 易实现且适配并行:组内各策略可独立与环境交互、收集数据,便于利用分布式框架实现并行训练加速。

缺点:①存在固有偏差:归一化易偏好短答案或冗长错误输出,且标准差归一化使模型优先优化简单问题(奖励稳定),忽视难题(奖励波动大) ;② 目标不一致问题:奖励函数针对完整序列打分(需等待完整回答),而GRPO优化目标的重要性采样基于token级别计算损失,两者目标存在偏差;③ 高方差和不稳定问题:GRPO 在 token 级别计算重要性采样权重,单个token只被采样一次,难以校正偏离原始策略的 token 分布,易引入高方差噪声,导致梯度估计不稳定。

6 GSPO

论文标题:Group Sequence Policy Optimization

论文地址:https://arxiv.org/pdf/2507.18071

GSPO(Group Sequence Policy Optimization,组序列策略优化)旨在解决GRPO中训练过程中存在的固有偏差、目标不一致、高方差和不稳定的问题。GSPO将RL中重要性采样的单位从令牌级别提升至整个序列级别,又引入了序列长度归一化, 确保不同长度的问题享有公平的优化尺度,从根源解决训练稳定性问题,完美适配 MoE 了架构。

6.1 GSPO的原理和训练过程

首先,我们来看下GRPO和GSPO的目标函数

  • GRPO目标函数

其中,\(ratio_t=\frac{\pi_\theta(o_{i,t} |q, o_{i,<t})}{\pi_{old}(o_{i,t} |q, o_{i,<t})}\)

  • GSPO目标函数

\[ \begin{align} J_{GSPO}(\theta) = E[x\sim D, {\{y_i}\}{i=1}^G \sim \pi{\theta_{old}(.|x)}] [ \frac{1}{G} \sum_{i=1}^G min (s_i(\theta) *\hat{A}_i, clip(s_i(\theta), 1-\varepsilon, 1+\varepsilon)*\hat{A}_i)] \end {align} \]

其中,\(s_i(\theta)=(\frac{\pi_\theta(y_i |x)}{\pi_{old}(y_i |x)}) ^{(\frac{1}{|y_i|})} = exp(\frac{1}{|y_i|} \sum_{t=1}^{|y_i|}log\frac{\pi_\theta(y_{i,t} |x, y_{i,<t})}{\pi_{old}(y_{i,t} |x, y_{i,<t})})\) ,\(|y_i|\)是响应\(y_i\) 的长度,长度归一 化是关键,确保不同长度序列的重要性比率具有可比性,防止比率因序列过长而剧烈波动。注意,论文里为了简化,在公式(11)中没有加KL,实际应用中是有用KL的。

通过对比GRPO与GSPO的核心公式,能清晰看出两者在重要性采样单位与计算逻辑上的关键差异。

先看GRPO的目标函数,其加权优势的计算核心聚焦于token级别 的,如\(ratio_t=\frac{\pi_\theta(o_{i,t} |q, o_{i,<t})}{\pi_{old}(o_{i,t} |q, o_{i,<t})}\), 所示,针对第 \(i\)个序列中的第\(t\)个token进行运算。

举个直观例子,若一个组包含5条样本序列,每条序列有20个token,GRPO需要为这5条序列的每一个token分别计算加权优势。

两次平均操作:内层先对单条序列的20个token取平均,外层再对5条不同序列取平均,本质就是算术平均,最终得到梯度更新的有效信号。

再看GSPO的目标函数,从公式\(s_i(\theta)=(\frac{\pi_\theta(y_i |x)}{\pi_{old}(y_i |x)}) ^{(\frac{1}{|y_i|})} = exp(\frac{1}{|y_i|} \sum_{t=1}^{|y_i|}log\frac{\pi_\theta(y_{i,t} |x, y_{i,<t})}{\pi_{old}(y_{i,t} |x, y_{i,<t})})\), 可以看出,其加权优势的计算单位直接升级为**序列级别,**内层平均由算术平均本变为了几何平均,外层的计算逻辑依然不变。

GSPO的训练过程和GRPO基本一致,差别在于目标函数中重要性采样计算逻辑,这里不做过多解释。

6.2 GSPO的优缺点

优点 :① 提升训练稳定性:GRPO 在 token 级进行重要性采样时,若某时间步生成错误 token,此时优势为 \(A\_t <0\),旧策略生成该 token 的概率极低(如\(1e^{-8}\)),新策略生成概率即使仅为 0.001,重要性比值也会飙升至 \(10^5\),通过公式(9) (10)发现,在\(A_t <0\)情况下,这么大的重要性比值不会被裁剪,进而造成损失函数的大波动,噪声会不断累积,甚至模型会训崩。而 GSPO 以序列为单位计算重要性采样比值,即便个别 token的重要性比值飙升,经过几何平均后(经过Log运算、算术平均、指数运算),也会被平滑,不会造成比值的大幅波动,从而避免了损失函数的震荡,保障了训练稳定性;② 适配 MoE 架构模型:GRPO 采用 token 级重要性采样,需依赖路由重放等技巧才能稳定训练;而 GSPO 基于序列级计算重要性采样,无需这类复杂操作即可实现 MoE 模型的稳定训练,大幅简化了训练流程,同时释放了 MoE 模型的潜力。

缺点:① 计算复杂度升高:相比 GRPO 的 token 级重要性采样,GSPO 切换为序列级计算后,算法的实现难度与计算成本有所增加。

7 参考资料

https://zhuanlan.zhihu.com/p/1932791271363154917

https://mp.weixin.qq.com/s/gSUw8bXraKy0RzVU_Crwcw

https://arxiv.org/pdf/1706.03741

https://arxiv.org/pdf/2305.18290

https://arxiv.org/pdf/2402.03300

https://arxiv.org/pdf/2507.18071

相关推荐
超的小宝贝1 天前
机器学习期末复习
深度学习·机器学习·强化学习
空山新雨后、1 天前
深度学习VS强化学习:预测与决策的本质差异
人工智能·深度学习·强化学习
Tfly__2 天前
Ubuntu20.04安装Genesis(最新)
linux·人工智能·pytorch·ubuntu·github·无人机·强化学习
人工智能培训2 天前
10分钟了解向量数据库(3)
人工智能·大模型·知识图谱·强化学习·智能体搭建
在西安放羊的牛油果4 天前
原型污染安全漏洞
前端·强化学习
春日见4 天前
强化学习第一讲:强化学习是什么,强化学习分类
开发语言·jvm·人工智能·python·学习·matlab·强化学习
人工智能培训5 天前
强化学习路径规划:技术内核与应用实践
人工智能·大模型·知识图谱·强化学习·智能体搭建
2503_946971865 天前
【AGI/认知计算】2025年度通用人工智能图灵测试与极端环境生存仿真基准数据集(含机械姬/火星救援核心样本)
自动驾驶·知识图谱·强化学习·agi·图灵测试
饮哉6 天前
PPO和GRPO面经
强化学习