GRPO 就像一个树节点,从这里开始开枝散叶。
大语言模型的发展速度令人惊叹,技术迭代日新月异。
自 DeepSeek 崛起以来,其在大模型后训练阶段提出的创新方法 GRPO 迅速成为强化学习领域的黄金标准范式。
GRPO 现已发展为一种通用的大模型强化学习算法,适用于广泛的后训练任务,甚至包括让大模型玩 2048 这类复杂游戏:
而就在今年,大模型后训练研究领域接连出现多个重磅成果,包括 Seed 团队的 DAPO、Qwen 团队的 GSPO 以及微软团队的 GFPO 等,这些工作无一例外都是对 GRPO 范式的进一步优化与改进。
看着这些相似的名字难免让人眼花缭乱,GRPO 究竟有何魔力,能让各大顶尖研究团队围绕它持续深耕?GRPO 又存在哪些固有缺陷,促使大家纷纷在其基础上“动手术”进行改良?
通过本文,我们将尝试深入浅出地解析大模型后训练的基本原理,梳理近期的技术演进路线,帮助读者构建一个系统、完整的知识框架。
许多人或许认为,强化学习是一个相对古老的概念,与新兴的大模型技术似乎有些格格不入。
让我们先从大模型本身说起。
公众对大型语言模型的普遍理解可能较为简单:一个通过海量数据自监督学习得到的模型,能够预测文本序列中下一个出现的词语,从而生成连贯的语言文本。
但这种理解并不全面,它主要强调了大模型的“预训练”过程,而完全忽略了至关重要的“后训练”阶段。
简而言之,从海量数据中学习知识的过程称为“预训练”。预训练的结果是赋予模型通用的语言理解和生成能力。然而,仅凭预训练,模型生成的内容不一定符合人类偏好;它可能产生冗长、不准确的信息,也可能无法满足特定应用任务的需求。
换句话说,预训练后的大模型“会说话”,但不一定会“说对话”。
因此,“后训练”过程就显得尤为关键。后训练的主要目标是强化模型在特定领域的知识掌握和应用能力,提升其适应性与灵活性,使其能更好地满足实际应用场景中的多样化需求。
强化学习则是后训练中不可或缺的核心组成部分。关于强化学习的核心思想,我们可以参考先前 Unsloth 团队文章中的阐述。
强化学习的精髓在于“反馈”,其目标是增加良好结果出现的概率,同时降低不良结果出现的概率。
举一个经典的例子,在吃豆人(Pacman)游戏中:如果吃下一块饼干,系统会给予加分奖励;如果不幸碰到敌人,则会扣分作为惩罚。
这是最朴素的强化学习形式。那么,在大模型训练中,我们该以何种方式给予模型这种“加减分”的反馈呢?
我们的核心目标是让大模型输出符合任务偏好的内容,最直接的方式自然是利用人类的反馈。
如果你也这么想,那你的思路与 OpenAI 不谋而合。
在训练 GPT 系列模型时,OpenAI 就采用了 RLHF(基于人类反馈的强化学习)方法。在该框架下,需要训练一个智能体(agent),针对给定的问题(状态)生成人类认为更有用、更符合偏好的输出。
然而,有了反馈并非万事大吉。我们通过 RLHF 获得奖励信号(Reward),若直接以此作为绝对标准去训练模型,会出现显著的激励不足和方差过大问题。
假设有两个模型,A 的初始能力显著强于 B。直接使用奖励反馈会导致:
为了在 RLHF 基础上实现稳定训练,OpenAI 提出了PPO(近端策略优化)机制。该机制引入了评论家(Critic)模型、Clip 操作以及参考模型(Reference Model),在确保策略更新幅度不过度的同时,又能高效提升模型性能。如今,PPO 已成为强化学习领域的标准方法之一,几乎是 RLHF 的默认选择。
针对第一个问题,PPO 引入了评论家(Critic):
通俗地讲,我们不再单纯依赖原始奖励进行反馈,而是设置一个“价值函数”
作为参考基准,训练目标从最大化“奖励”进化为最大化“优势函数”:
对于某个动作,如果实际获得的奖励超过了评论家的预期,则视为正向优势;若低于预期,则为负向优势。优化目标因此变为:
这意味着我们拥有了一种相对评估模型进步程度的新范式,而非依赖绝对的奖励反馈。引入评论家可以显著降低训练过程中的方差,使模型进步能获得更显著的梯度信号。
针对第二个问题,PPO 采用了 Clip(裁剪)策略:
为了避免模型更新幅度过大导致不稳定,Clip 策略在目标函数中加入了限制条件:
其中,
它表示新策略相对于旧策略,在特定动作上概率比的变化幅度。如果这个比值偏离 1 过多,就会被限制在预定的范围内,从而防止模型单次更新步伐过大。
此外,PPO 还通过引入参考模型上了“双保险”,在损失函数中加入相对于初始模型的 KL 散度作为正则项,同样可以避免模型为了短期奖励而偏离合理的策略分布。
因此,PPO 的完整损失函数如下所示:
以上描述应该能帮助我们很好地理解 PPO 的工作原理。
然而,PPO 存在一个严重的问题:由于价值函数(即评论家模型)需要随策略模型一同训练,且其参数量通常与策略模型相当,这会带来额外的内存占用和计算负担,训练成本非常高昂,难以进行大规模扩展。这或许是财力雄厚的 OpenAI 能够玩转 PPO 并取得领先的原因之一。
为了改善这种双模型策略带来的高成本问题,最直接的思路就是:简化网络结构,去掉其中一个网络。
如果你也产生了类似的想法,那么你和 DeepSeek 的研究者思路一致。
DeepSeek 在大模型训练改进中的一个主要动机就是设法移除评论家模型,为此他们提出了一种替代方案,也就是后来广为人知的组相对策略优化(Group Relative Policy Optimization, GRPO)。
PPO vs GRPO 流程算法对比
从流程对比图中可以清晰看到,价值函数(评论家)直接消失了。那么,不使用价值函数,我们如何确定模型的“优势”呢?
GRPO 采用了一种非常巧妙的思路:不再“学习”一个单独的评论家网络,而是利用策略模型自身过去多次的“表现”来确立一个基准线。
具体而言,对于同一个问题或状态,使用旧策略采样生成多条输出,然后计算这些输出所获奖励的平均值,以此作为 baseline。新策略下某个输出获得的奖励若超过此平均值,则被视为具有“正向优势”;反之则为“负向优势”。
在 GRPO 中,除了这一步核心改进,它仍然保留了 PPO 中的 Clip 操作和对参考模型的 KL 散度正则,这些机制共同保障了更新的稳定性。不过,GRPO 将 KL 散度项直接置于损失函数中,而非像 PPO 那样放在奖励函数里,这降低了奖励函数的计算复杂度。同时,其计算方式确保了归一化的 KL 值始终为正。
GRPO 与 PPO 的关键区别,主要在于移除了价值函数,并改用策略模型多次采样输出的奖励平均值来计算优势函数。
由此,我们得到 GRPO 的损失函数:
关于 PPO 到 GRPO 的转变,知乎网友从多个维度对两者进行了比较,如下图表所示。
知乎网友@杞鋂 分享PPO与GRPO的对比
GRPO 问世后迅速成为后训练范式的一个重要节点。DeepSeek 系列模型的成功,充分证明了 GRPO 范式的有效性和优越性。正因如此,后续的诸多改进工作大多都是在 GRPO 的方法框架基础上展开。
那么,GRPO 究竟存在哪些问题,引得各个新研究纷纷要对它进行“改良手术”呢?
最核心的问题在于,尽管 GRPO 在 PPO 基础上做了改进,但在训练稳定性方面与 PPO 方法相比仍然存在挑战。也就是说,GRPO 依旧面临着严重的稳定性问题,训练过程容易崩溃。
根据业界分析,DeepSeek 之所以能成功应用 GRPO,部分原因在于其拥有海量的训练数据。只要每次策略梯度计算时使用的批次(Batch)数据足够庞大,就能有效降低策略梯度的方差,从而获得相对稳定的迭代过程。然而,对于数据规模有限的中小型强化学习训练任务而言,GRPO 并非最佳选择,尤其是在每次使用的数据批量较小时,其稳定性缺陷可能是致命的。
因此,最新的一些研究方法针对 GRPO 的不同环节进行了迭代优化,具体的缺陷和优化方式将在介绍新工作时详细阐述。
首先要介绍的优化范式是 DAPO,这是由字节跳动与清华 AIR 于今年三月开源的一项算法。
应用该算法,该团队成功让 Qwen2.5-32B 模型在 AIME 2024 基准测试中取得了 50 分的好成绩,优于同等规模的 DeepSeek-R1-Zero-Qwen-32B 模型,并且 DAPO 版本的 Qwen2.5-32B 所使用的训练步数还减少了 50%。
需要指出的是,DAPO 方法在数学原理上并未做出本质性变革,其基本优化目标仍然沿用了 GRPO 的形式,主要是在 Clip 参数、采样机制等方面进行了工程上的改进。因此,我们将 DAPO 放在讨论序列的前端。
在实践中,GRPO 暴露了以下几个具体问题:
针对这些问题,DAPO 提出了相应的优化措施:
1. Clip-Higher 机制:将 Clip 的上下限进行解耦,分别设置为 ε_low 和 ε_high。研究者增大了 ε_high 的值,为低概率 token 的概率提升留出更多空间,这能显著提升模型训练早期的熵值,缓解收敛过快问题。
2. 动态采样:进行过度采样后,过滤掉奖励恒为 1 或 0 的提示语样本,仅保留能产生有效梯度的样本,从而提升训练效率。
3. Token 级策略梯度损失调整:对所有 token 的损失一起求平均,确保长序列中的所有 token 都能公平地为批次损失做出贡献,防止长序列的优化梯度被过度稀释。
4. 超长响应奖励调整:针对生成长度超过预设最大值的样本,研究者定义了一个“软惩罚”项。在这个区间内,响应越长,受到的惩罚越大,以此避免模型生成过于冗长的内容。
因此,DAPO 的优化损失函数如下所示:
虽然 DAPO 依然是token 级别的重要性采样,但其带来的训练曲线稳定性和最终性能提升非常显著。
接下来是一个重要的突破。后训练领域里的一项关键进展是 Qwen3 所采用的新方法 GSPO。
上文多次提到,PPO 及类似方法的重要性采样都是在 token 级别进行的。而GSPO 真正在原理层面上实现了突破,跳出了 token 级采样的限制。
近期 Qwen 团队的研究表明,使用 GRPO 训练大语言模型时存在严重的稳定性问题,常常导致模型发生不可逆的崩溃。他们的研究揭示了 GRPO 方法的一个根本性问题:
如果说 DAPO 是在 GRPO 框架内进行微调,那么 GSPO 则是直接改变了优化目标的粒度——从 token 级跃升至序列级。
重要性采样的作用是缓解离策略(off-policy)学习带来的分布差异问题。也就是说:
我们想要估计目标策略下的期望值,但我们手头只有行为策略下采集的样本。我们通过在行为策略的样本上赋予重要性权重,来估计目标策略下的函数值。
然而,这种采样方法的前提是需要多次采样。如果仅有一次采样(如 token 级别),则无法起到有效的分布矫正作用。问题在于,在大模型训练中,重要性采样通常在 token 级别进行。单个 token 的重要性采样不仅无法矫正分布,反而会引入高方差的噪声。
在训练时,奖励信号通常是针对整个回答(如一句话或一个完整回复)给出的整体评价。
但在模型优化时,我们却在 token 层面进行采样和更新。常见的做法是将整体奖励平摊到每个 token 上,再逐个调整。这就造成了优化目标与奖励信号在粒度上的不匹配:模型可能在单个 token 上学得很“努力”,但这并不能完全对应整段回答的最终质量。
为此,Qwen 团队将 GRPO 进化为组序列策略优化(Group Sequence Policy Optimization, GSPO)。
正如其名所示,GSPO 的核心在于将重要性采样从 token 级提升至序列级,其重要性权重比值基于整个生成序列的联合似然度计算:
这种序列级权重设计自然缓解了逐 token 方差累积的问题,从而显著提升了训练过程的稳定性。
因此,GSPO 的损失函数定义为:
此外,GSPO 还对序列级的重要性权重进行了长度归一化处理。不同问题的回答长度差异很大,如果不做归一化,重要性比率会对长度异常敏感,造成训练不稳定。
最后,由于同一序列中的所有 token 共享同一个重要性权重,一旦发生裁剪(clipping),被影响的是整个序列,而不像 GRPO 那样只影响部分 token。
综上所述,GSPO 提出的“序列级重要性采样”显著提高了大模型后训练的稳定性,很可能成为未来强化学习后训练的新标准范式。
在 GSPO 之后不久,微软研究院公布了一项新成果:组过滤策略优化(Group Filtered Policy Optimization,GFPO),这是另一种具有颠覆性的强化学习算法。
在 GFPO 工作中,微软研究团队指出了 GRPO 的一个关键局限:
GRPO 依赖于单一的标量奖励信号,这使得它难以同时优化多个属性,例如无法兼顾简洁性和准确性。
结果是,GRPO 确实能提升答案的准确度,但往往也会导致响应长度大幅增加。这也解释了一些大模型遇到稍微复杂的问题时,会像陷入“沉思”般长篇大论地推导,耗时耗力,结果却未必可靠。
GFPO 正是为了攻克这一问题而生,它可以协同优化多个响应属性。
GFPO 是一种简洁有效的方法,能够针对期望的响应属性进行定向的策略优化。
GFPO 会为每个问题采样一个规模更大的候选响应组,从而扩大响应池,以包含更多具备所需特性的候选答案。随后,在计算策略梯度时,显式地过滤这些特性,只有符合目标属性的响应才会参与优化。
这种数据过滤机制是一种隐式且灵活的奖励塑造方式——类似于利用选择性采样来放大特定模型行为的迭代式自我改进方法。过滤机制会迭代地增强模型在目标属性上的表现,如同一个“偏好放大器”。
在经过显式过滤步骤筛选出所需响应后,再在选定的组内使用标准的奖励信号来计算相对优势。
因此,GFPO 无需复杂的奖励函数工程,即可同时优化多个期望属性(如响应长度和答案准确性)。
GFPO 的形式化定义如下:
GFPO 的主要干预点在于优势估计层面,这使得它可以与任何 GRPO 类方法(如 DAPO、Dr. GRPO 或采用 Dual-Clip PPO 损失的 GRPO)兼容。
除了上述主要改进方向,一些研究者也发现了 GRPO 的其他潜在缺陷,这些或许能为未来的研究提供新的思路。
复杂的推理问题通常需要多个奖励信号进行评估,因此我们会为每个评判标准单独设计奖励函数。然后,将所有奖励函数的分数合并,折叠成一个单一的标量奖励信号。
问题在于,模型根本无法分辨自己究竟因何种行为受到奖励。尽管我们设计了不同的奖励函数,但最终所有奖励仍被合并为一个标量信号。模型又如何能知道奖励是来自“答案正确”,还是“推理清晰”,或是“格式规范”呢?
即使我们调整不同奖励组件的权重,模型接收到的依然只是一个总的标量奖励。
GFPO 在一定程度上改善了上述问题。
在推理任务中,GRPO 会丢弃所有中间过程的文本反馈,因为传递给模型的只是一个数值化的奖励标量。
举个例子,在某些训练环境中,模型每步猜测都可能得到文字反馈,例如:
这些文字反馈对模型学习其实大有裨益,但在 GRPO 框架下却完全无法利用,因为它们最终都会被抽象成一个标量数字。
另一个瓶颈是 GRPO 在处理多轮推理任务时的表现。问题的关键在于:
在多轮对话中,每一轮的反馈都会被重新整合到基础模型的输入提示中,这会导致指数级的分支(exponential forking)现象,使得 GRPO 在多轮任务中的训练变得异常艰难。如下图所示:
简单总结一下,大模型后训练强化学习的发展脉络其实相当清晰。自 OpenAI 提出 PPO 方法以来,后续工作大多是在此基础上的不断优化与完善。
GRPO 是 PPO 基础上一次重要的范式更新。自 GRPO 出现后,后训练策略优化便作为大模型研究的一个重要方向持续发展,正如树节点般向外延伸出众多分支。
参考链接:
https://www.zhihu.com/question/12933942086/answer/1933555787759871596
https://zhuanlan.zhihu.com/p/1941902507136746342
https://blog.csdn.net/m0_74942241/article/details/150611764
https://zhuanlan.zhihu.com/p/1941902507136746342
https://mp.weixin.qq.com/s?__biz=MjM5NzEyMzg4MA==&mid=2649520693&idx=7&sn=75f3515fb8ca4abbbc9dc0de2338baa3&chksm=bff51a0e6e62b39b8ebc6ee47f28688a5397e442b754429aed46ca7752c9c83db0cd6f77a427&scene=27
本文由主机测评网于2025-12-27发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://www.vpshk.cn/20251213168.html