对齐到RL

一个未经对齐的 LLM 可能会产生无益、有害甚至有毒的内容,或者无法理解和遵循复杂、微妙的人类指令。

这一根本性问题被称为对齐(Alignment),即确保 AI 系统的目标和行为与人类的价值观和意图保持一致。

SFT(静态)

解决对齐问题的初步尝试是监督微调(Supervised Fine-Tuning, SFT)。SFT 使用高质量的人工标注数据集,其中包含期望的输入-输出对(例如,问题和理想答案),通过模仿学习的方式来调整模型行为。

尽管 SFT 在引导模型遵循特定格式和风格方面是有效的,但它存在固有的局限性。

  • 对于许多涉及主观判断、创造性或复杂推理的任务,不存在唯一的正确答案,这使得创建全面的 SFT 数据集变得异常困难。

  • SFT 依赖于静态数据集,无法覆盖现实世界中无穷无尽的场景和人类偏好的细微差别,导致模型在面对未见过的查询时泛化能力不足。

对齐问题

由于SFT是纯静态的方式,这会使得极其依赖高质量的数据,但是现实必然不可能有那么多领域的高质量数据集。故此为了优化SFT,研究界转向了策略优化(Policy Optimization),策略优化将LLM视为一个 “智能体” ,它的任务是:

  • 观察状态:读取输入提示(Prompt),也就是输入x

  • 执行动作:生成输出响应(Response),也就是输出y

  • 获得奖励:根据响应质量获得评分

  • 调整策略:通过高分响应的学习,让模型学会生成更“好”的答案

那么我们进行建模,这里的xy 因为LLM生成文本的本质是“逐token赌命”(自回归生成),显然不应当是一对一的输出:

  • 普通函数:f(x) = y(给定x,永远得到唯一的y)

  • LLM映射p_θ(y|x)(给定x,y有多种可能性,每个有对应概率)

所以这里是一个概率性映射,举个例子,假设要生成 "北京" 这个词:

  1. 输入 "中国的首都是" 后,模型预测下一个token的概率分布:

    • "北": 0.95

    • "上": 0.02

    • 其他: 0.03

  2. 选择"北"后,再基于 "中国的首都是北" 预测:

    • "京": 0.98

    • "方": 0.01

    • ...

  3. 整个句子 "北京" 的概率 = 所有token概率的乘积:

    p("北京") = p("北") × p("京") ≈ 0.95 × 0.98 ≈ 0.93

故此我们可以用概率分布来说明LLM输出的三个方面

  1. 表达不确定性:模型对答案的自信程度("北京"概率高 vs "上海"概率低)

  2. 支持多样采样:通过调整温度参数,可生成创意性回答(概率分布越平坦,多样性越高)

  3. 可微分优化:概率是连续值,可以用梯度下降等数学工具优化

正因为如此,我们需要通过p_θ(y|x) 建立一个prompt映射到response的概率模型,策略优化的核心目标是调整模型参数θ,以最大化一个预定义的标量目标函数(或奖励函数),该函数旨在量化模型输出的“期望性”。这个目标函数可以代表多种对齐目标,例如:

  • 人类偏好:响应是否更符合人类评估者的偏好。

  • 任务正确性:在数学或编码等任务中,答案是否正确。

  • 指令遵循:响应是否严格遵守了指令中的所有约束。

  • 安全性:响应是否避免了有害或不道德的内容。

通过将对齐问题形式化为一个优化问题,研究人员得以利用一系列强大的算法来微调 LLM 的行为,使其超越静态数据集的限制,学习到更普适和稳健的对齐能力。

近端优化策略 PPO框架

承接上文,预训练模型虽然能输出大量设定好的内容,但也同样容易一本正经地胡说八道(Hallucination),或者生成有毒、危险的内容,因为它仅仅是在模仿数据的统计规律,而非理解人类的价值观 。

为了将这种原始的智能转化为安全、有用且符合人类预期的助手,我们进入了后训练(Post-training)时代。这一阶段的核心技术是基于人类反馈的强化学习(Reinforcement Learning from Human Feedback, RLHF)RLHF 不再关注“由于概率统计,下一个词最可能是什么”,而是关注“在这个语境下,什么样的回答是人类认为最有用、最安全的” 。  

在 RLHF 的技术栈中,近端策略优化(Proximal Policy Optimization, PPO)不仅仅是一个优化算法,它是现代大模型对齐的引擎。它允许我们将“幽默感”、“由衷的帮助”或“安全性”这些无法用简单的交叉熵损失函数描述的主观概念,转化为可优化的数学目标。通过引入人类偏好作为奖励信号,PPO 将人类的判断力像“三明治”一样夹在训练循环中,通过不断的试错与修正,精细雕琢模型的行为 。  


为什么SFT不够

上文提到,SFT极其依赖数据,这就导致了传统的策略梯度(Policy Gradient)方法极其不稳定。在传统的 RL 中,如果Agent偶然发现了一个能获得高回报的行为(哪怕是由于环境噪声),它可能会大幅更新自己的策略以利用这个发现。在语言模型中,这意味着模型参数的剧烈波动。这种剧烈更新可能导致策略坍塌(Policy Collapse)

PPO 的诞生正是为了解决这个问题。它的名字“近端(Proximal)”揭示了其核心哲学:你可以学习新的经验,但你的改变不能偏离旧的自我太远。通过在数学上强制约束策略更新的步幅,PPO 在“探索新知”与“保持稳定”之间找到了完美的平衡,使其成为当前 LLM 对齐的工业标准 。

PPO算法

与传统的深度学习任务不同,PPO 驱动的 RLHF 训练流程在工程上极具挑战性,最主要的原因在于它需要同时在内存中维护四个独立的模型

我们可以通过一个高强度写作训练班的类比来理解这四个模型的角色与互动 。

模型名称

技术角色

是否训练

写作班类比

演员模型

(Actor / Policy)

待优化的主 LLM (\pi_\theta)。负责根据提示生成文本。

学生

正在练习写作,试图写出高分作文。

评论家模型

(Critic / Value)

价值函数 (V(s))。预测当前状态下未来的预期收益。

学生的自我评估

学生内心的声音:“这句话写得不错,感觉能拿高分

奖励模型

(Reward Model)

偏好模型 (r_\theta)。提供最终的标量评分。

考官

在作文写完后给出最终分数的外部权威。

参考模型

(Reference Model)

初始 SFT 模型的副本 (\pi_{ref})。用于计算 KL 散度。

教科书/旧文集

记录学生之前的写作风格,防止学生为了高分而写出不通顺的怪文。

  • 学生写作文一个字一个字写,类比Actor一个token一个token输出。这时候学生写着写着就知道分高分低了,评论家模型评论的是Actor逐token输出时人类的喜好度

  • 奖励模型是一个预先训练好的二分类器或回归模型,它学习了人类的偏好,它只有在整段话写完后才给分。它通常基于 Bradley-Terry 模型,通过成对比较数据(Pairwise Data)训练而成 。在 PPO 阶段,它是冻结(Frozen)的,充当不可动摇的真理标准。

    • 演员在生成第 5 个字时,不知道这个字好不好。评论家提供即时的、逐个 Token 级别的反馈(优势函数估计),告诉演员:“你现在的发挥超出了预期”或“你正在搞砸” 。这构成了 Actor-Critic 架构的核心演员负责行动,评论家负责打分以辅助训练。  

  • 参考模型是在 RLHF 开始前的快照(通常是 SFT 后的模型)。它也是冻结的。

    • 每当演员生成一个 Token,系统都会计算参考模型生成该 Token 的概率。如果演员生成了一个参考模型认为概率极低的词(比如乱码),两者之间的 KL 散度(Kullback-Leibler Divergence) 就会飙升。这个散度会被作为惩罚项扣除奖励。这就像老师对学生说:“你可以发挥创意,但不能不说人话。”

PPO的数学建模

PPO的精髓是并非直接使用奖励模型的原始分数,而是通过一个预定好的奖励模型通过计算价值函数去调整大模型的输出偏好,大模型原来的输出和期望的输出就会存在一个差值,我们通过这个差值来进行数学建模,重点是表明相对优于绝对

  • 场景 A: 题目很简单,模型乱写一通也得了 8 分。

  • 场景 B: 题目极难,模型绞尽脑汁写得很好,但只得了 4 分。

如果直接用分数更新,模型会误以为场景 A 的行为比场景 B 好。为了解决这个问题,我们引入了优势函数(Advantage Function,A_t),优势函数衡量的是在状态s 下采取行动a相对于该状态下平均行动价值的好坏程度

A(s, a) = Q(s, a) - V(s)
  • Q(s, a) 是采取动作a 后的实际收益(由奖励模型给出)。

  • V(s) 是评论家模型预测的“平均预期收益”。

这个优势函数极大地降低了训练的方差,让模型专注于超越自我,而不是依赖环境的馈赠。在实际操作中,PPO 使用 GAE(Generalized Advantage Estimation),引入了参数\lambda\gamma 来平衡偏差和方差,计算多步未来的回报折现,从而提供更平滑的指导信号。

为了约束某一次训练给大模型带来无与伦比的好处,PPO引入裁剪代理目标函数(Clipped Surrogate Objective)。标准策略梯度方法的目标是最大化:

L^{PG}=\hat E_t [\frac{\pi_{\theta}(a_t|s_t)}{\pi_{\theta_{old}}(a_t|s_t)} \hat A_t ]

其中下式是新旧策略的概率比:

r_t(\theta)=\frac{\pi_{\theta}(a_t|s_t)}{\pi_{\theta_{old}}(a_t|s_t)}

这个比率衡量了新策略相对于旧策略的变化程度。如果r_t > 1,说明新策略更倾向于该动作。这个比率如果过大或过小,会导致策略更新步子迈得太大,从而破坏训练过程。

PPO 的前身是信任区域策略优化(Trust Region Policy Optimization, TRPO),通过复杂的二阶优化来约束 KL 散度,从而限制更新幅度,但计算成本极高。PPO 通过一个更简单的一阶优化方法实现了类似的效果,其代理目标函数为:

L_{CLIP}(θ)=\hat E_t[min(r_t(θ)\hat A_t,clip(r_t(θ),1−ϵ,1+ϵ) \hat A_t)]

这里的 clip 函数将概率比r_t (\theta)限制在[1−ϵ,1+ϵ]的范围内(通常\epsilon取0.2)。让我们用安全攀岩的类比来解释其中的\epsilon(通常设为 0.2):

  • 当动作为好(优势A > 0)时:

    • 我们希望增加该动作的概率(让r_t 变大)。

    • 但是,如果r_t 超过了1 + \epsilon(即 1.2,概率增加了 20%),裁剪项就会生效,强制收益封顶。

    • 直觉: “你做得很好!奖励你。但是,哪怕你做得再好,我也只允许你把这次的概率提升 20%。不要因为一次成功就得意忘形(Overfit)。”这防止了单一数据点导致策略更新过猛。

  • 当动作为坏(优势A < 0)时:

    • 我们希望减少该动作的概率(让r_t 变小)。

    • 由于A 是负数,取最小值实际上是看哪个负得更多(惩罚更重)。

    • 如果r_t 低于1 - \epsilon(即 0.8),裁剪项生效。

    • 直觉: “你搞砸了。我们要降低这个动作的概率。但即使是个错误,我也不会让你把概率降到 0。我们把惩罚限制在 20% 的幅度内。”这防止了模型因为一次失误就彻底扼杀某种可能性的探索。

这种裁剪机制就像攀岩者的安全绳。它允许模型向上攀爬(优化),但每一步都被严格限制在“近端”范围内。如果步子迈得太大,绳子就会拉住你。这使得 PPO 能够在数学上保证训练的稳定性,而不必像 TRPO 那样计算复杂的二阶海森矩阵(Hessian Matrix)。

除了上面的我理解的形式,可以参考一下deepseekmath论文里的形式:

\mathcal{J}_{PPO}(\theta)=\mathbb{E}[q\sim P(Q),o\sim\pi_{\theta_{old}}(O|q)]\frac{1}{|o|}\sum_{t=1}^{|o|}\min\left[\frac{\pi_{\theta}(o_{t}|q,o_{<t})}{\pi_{\theta_{old}}(o_{t}|q,o_{<t})}A_{t},\mathrm{clip}\left(\frac{\pi_{\theta}(o_{t}|q,o_{<t})}{\pi_{\theta_{old}}(o_{t}|q,o_{<t})},1-\varepsilon,1+\varepsilon\right)A_{t}\right]

KL散度和黑客攻击

PPO 虽然解决了数学上的更新稳定性,但无法解决语义上的目标偏离。奖励模型只是人类偏好的一个代理(Proxy),它并不完美。这就引出了 RLHF 中最著名的现象:奖励黑客攻击(Reward Hacking)。

当一个指标成为目标时,它就不再是一个好的指标(Goodhart 定律)。如果没有约束,PPO 会极度聪明地找到奖励模型的漏洞。

经典案例 :  

  • 乱码注入: 模型发现某些特定的无意义字符组合(如重复“The The”)由于奖励模型的训练数据偏差,能获得略高的分数。于是 PPO 会让模型疯狂输出这些乱码。

  • 过度阿谀奉承(Sycophancy): 模型发现只要无脑赞同用户的观点(哪怕用户是错的),得分通常比反驳用户要高。于是模型变成了毫无原则的“马屁精”。

  • 长度欺骗: 在摘要任务中,如果使用 ROUGE 分数作为奖励,模型可能会直接抄袭原文,因为这样词汇重叠度最高。

  • 代码测试欺骗: 在代码生成任务中,模型学会了不是去修复代码,而是去修改单元测试用例,让错误的测试通过,从而获得满分奖励。

为了防止这种情况,我们在总奖励函数中加入了一个基于 KL 散度的惩罚项:

R_{total} = R_{model}(response) - \beta \cdot KL(\pi_\theta || \pi_{ref})
  • \pi_{ref} 是参考模型(SFT 模型)。

  • \beta 是惩罚系数(通常很小,如 0.05-0.1)。

直觉解释:参考模型代表了“正常人类语言的概率分布”。当演员模型为了取悦奖励模型而开始输出乱码或怪异句式时,参考模型会说:“嘿,这个词在正常语言中出现的概率几乎为零!”这会导致 KL 散度激增。由于R_{total} 会减去 KL 散度,任何通过破坏语言通顺性换来的奖励提升,都会被 KL 惩罚抵消掉。

PPO的高昂开销

PPO 的训练成本远高于 SFT,主要原因在于这四个模型的显存占用。对于一个 70B 参数的模型,在不使用量化和优化技术的情况下,全参数 PPO 训练所需的显存是惊人的:  

  • 推理开销: 每次迭代,我们需要对演员(general token)、参考模型(计算 KL)、奖励模型(计算 Reward)进行前向传播。

  • 训练开销: 我们需要存储演员和评论家的梯度(Gradients)以及优化器状态(Optimizer States)。对于 Adam 优化器,优化器状态通常是模型参数量的 2 倍。

  • 碎片化(Fragmentation): 研究表明,PPO 训练中的内存峰值往往不是由模型本身引起的,而是由推理生成阶段累积的内存碎片导致的 。  

在 7B 模型的训练中,如果使用全量微调,仅加载这四个模型就需要约 4-5 倍 于单模型推理的显存。这解释了为什么 LoRA (Low-Rank Adaptation) 和 Hydra-RLHF 等技术在 PPO 中如此重要。

Hydra-RLHF 通过共享部分参数(如演员和评论家共享主干,仅末端分离)以及使用 LoRA 适配器,可以显著降低内存占用,使得在消费级或中端企业级 GPU 上运行 PPO 成为可能 。

PPO的优化:无评论家的RL —— GPRO

GRPO 由 DeepSeek 在开发 DeepSeekMath 及后续的 DeepSeek-R1 推理模型时提出,其核心创新在于摒弃了独立的价值网络,转而利用组内采样的相对奖励作为优势估计的基准。这一范式转移不仅大幅降低了显存占用,更为数学推理等任务引入了基于自我博弈性质的探索机制。

产生的想法

在PPO中,其通过裁剪(Clipping)机制限制策略更新步长以保证训练稳定性的核心思想,但其代价往往隐藏在优势函数(Advantage Function)的计算细节之中。学习的核心信号源自优势估计\hat{A}_t。该指标衡量了特定动作(Token)的实际回报相较于当前状态下“预期回报”的优越程度。为了计算这一预期,PPO 引入了广义优势估计(Generalized Advantage Estimation, GAE),其公式通常表示为:

\hat{A}_t = \delta_t + (\gamma \lambda)\delta_{t+1} + \dots + (\gamma \lambda)^{T-t+1}\delta_{T-1}

其中\delta_t 为时序差分误差(TD Error):

\delta_t = r_t + \gamma V(s_{t+1}) - V(s_t)

为了准确计算状态价值V(s_t),系统必须训练一个参数化的价值网络(即 Critic)。在 LLM 语境下,状态s_t 是复杂的语义上下文。为了能够理解并评估一个 70B 模型生成的长链推理是否“有前途”,价值模型通常需要具备与策略模型相当的参数规模和特征提取能力。这就导致了极高的资源开销,上面提到过PPO的高昂开销,这里不再赘述。

DeepSeek在分布式训练(如使用 DeepSpeed ZeRO-3)中同时切分和同步两个巨型模型增加了通信开销和流水线并行的复杂性。DeepSeek 的研究人员在构建 DeepSeekMath 时提出了一个根本性的质疑:在数学推理和代码生成等任务中,我们真的需要一个独立的神经网络来充当评论家吗?

在传统的机器人控制或游戏 AI(如 Dota 2)中,环境是无限且动态的,奖励往往稀疏且延迟,因此一个能够预测长期价值的 Critic 至关重要。然而,在 LLM 的特定应用场景(如数学题求解)中,环境具有显著的差异性特征:

  • 任务的短程与确定性:相比于无限步的游戏,数学题求解是一个有限步的生成过程,且结果通常由确定性的验证器(Verifier)给出(正确/错误)。

  • 批量数据的可获得性:对于同一个提示词(Prompt),我们可以极其廉价地让模型并行生成多个响应。

  • 相对优劣的充分性:我们并不一定需要知道某个步骤的绝对价值是 0.85 还是 0.86;我们只需要知道,在当前模型生成的所有解法中,解法 A 比解法 B 更好,这便足以提供策略改进的梯度信号。  

基于这一洞察,GRPO 应运而生。它主张通过组内统计(Group Statistics)来替代神经网络预测(Neural Prediction,从而彻底移除 Critic 模型。举个例子:学生针对同一道题目做了G 次尝试(生成G 个不同的解题过程)。考试结束后,我们根据最终答案的正确性给这G 份试卷打分。

  • 如果这G 次尝试的平均分是 60 分,而某份试卷得了 100 分,那么这份试卷的解题思路就获得了极高的“正优势”。

  • 如果某份试卷得了 40 分,它就获得了“负优势”。

  • 学生通过对比自己的多次尝试,强化那些优于平均水平的行为,抑制劣于平均水平的行为。

具体来说利用了G 个样本的均值作为基准线,不仅省去了训练老师(Critic)的成本,而且这个基准线是动态适应当前策略能力的——随着学生水平提高,平均分也会提高,基准线自动水涨船高。

GPRO数学建模

GRPO 的具体执行流程包含四个关键步骤,每一个环节都针对效率进行了优化:

  • 组采样(Group Sampling)

    • 对于每一个输入问题q策略模型\pi_{\theta_{old}} 并行采样出一组G 个输出序列\{o_1, o_2, \dots, o_G\}。通常G 的取值在 64 到 128 之间

  • 奖励评估(Reward Assignment)

    • 环境或奖励模型对这G 个输出进行打分,得到奖励集合\{r_1, r_2, \dots, r_G\}。在 DeepSeekMath 的实践中,这通常是基于规则的:答案正确得 1 分,错误得 0 分;或者结合过程奖励模型(PRM)给出的置信度分数。

  • 优势估计(Advantage Estimation)

    • 这是 GRPO 的灵魂所在。优势\hat{A}_{i} 的计算直接利用组内的归一化分数:

    • \hat{A}_{i} = \frac{r_i - \text{mean}({r_1, \dots, r_G})}{\text{std}({r_1, \dots, r_G}) + \epsilon}
    • 其中R(x,y_i)是奖励模型对第i个响应的打分,mean 和 std 分别是组内奖励的均值和标准差,\epsilon 是防止除以零的微小常数

    • 重要细节:在标准的 GRPO 实现中,这个优势值\hat{A}_{i}序列级(Sequence-level)的,意味着该序列中的每一个 Token 都被分配了相同的优势值。这一细节虽然简化了计算,但也埋下了后续方差问题的伏笔。

  • 策略优化(Policy Optimization)

    • 利用计算出的优势,最大化 GRPO 目标函数\mathcal{J}_{GRPO}(\theta)在形式上保留了 PPO 的精髓(裁剪机制),但在结构上进行了重大调整:

    • \begin{aligned}\mathcal{J}_{\mathrm{GRPO}}(\theta)&=\mathrm{E}[q\sim P(Q),\{o_{i}\}_{i=1}^{G}\sim\pi_{\theta_{old}}(O|q)]\\&\frac{1}{G}\sum_{i=1}^{G}\frac{1}{|o_{i}|}\sum_{t=1}^{|o_{i}|}\left\{\min\left[\frac{\pi_{\theta}(o_{i,t}|q,o_{i,<t})}{\pi_{\theta_{old}}(o_{i,t}|q,o_{i,<t})}A_{i,t},\mathrm{clip}\left(\frac{\pi_{\theta}(o_{i,t}|q,o_{i,<t})}{\pi_{\theta_{old}}(o_{i,t}|q,o_{i,<t})},1-\varepsilon,1+\varepsilon\right)A_{i,t}\right]-\beta\mathrm{D}_{KL}\left[\pi_{\theta}||\pi_{ref}\right]\right\}\end{aligned}

    • 其中\varepsilon\boldsymbol{\beta}是超参数,而\hat{A}_{i,t}是基于每个组内输出的相对奖励计算的优势,接下来我们拆开来说

损失函数应用了 PPO 经典的裁剪操作,KL散度估计是为了防止强化学习后的模型遗忘预训练的语言知识或输出乱码,必须约束当前策略\pi_\theta 不偏离参考模型\pi_{ref} 太远。DeepSeek 在 GRPO 中采用了 Schulman (2020) 提出的一种更精确的无偏估计器(Unbiased Estimator),并将其直接整合到损失函数中:

\mathbb{D}_{KL}(\pi\theta || \pi_{ref}) = \frac{\pi_{ref}(o_{i,t})}{\pi_\theta(o_{i,t})} - \log \frac{\pi_{ref}(o_{i,t})}{\pi_\theta(o_{i,t})} - 1

这种处理方式相比简单的\log(\pi/\pi_{ref}) 更加数值稳定,且保证了 KL 项始终非负,从而在数学推理这种对分布漂移极其敏感的任务中提供了更好的正则化效果。


GPRO的缺陷

尽管 GRPO 在工程上取得了巨大成功,但从统计学习理论的角度审视,它并非完美无缺。随着研究的深入,学者们发现 GRPO 在处理长序列和复杂推理时表现出的不稳定性,其根源在于一个深层的数学矛盾:奖励的序列级属性与优化的token颗粒度之间的失配

强化学习的核心在于利用旧策略\pi_{old} 产生的数据来更新新策略\pi_\theta。这需要用到重要性采样权重来修正分布差异。理论上,对于一个完整的轨迹(Trajectory)\tau = (s_1, a_1, s_2, a_2, \dots, s_T, a_T),正确的重要性权重应当是整个轨迹概率的比值:

\rho_{traj} = \frac{\pi_\theta(\tau)}{\pi_{old}(\tau)} = \prod_{t=1}^T \frac{\pi_\theta(a_t|s_t)}{\pi_{old}(a_t|s_t)}

然而,GRPO(以及 PPO 的常见实现)采用的是Token-level的近似。它将每个 Token 视为独立的决策步,并赋予相同的序列级优势\hat{A}

w_{i,t}(\theta)=\frac{\pi_{\theta}(y_{i,t}|x,y_{i,<t})}{\pi_{\theta_{\mathrm{old}}}(y_{i,t}|x,y_{i,<t})},\quad\widehat{A}_{i,t}=\widehat{A}_{i}=\frac{r(x,y_{i})-\mathrm{mean}\left(\{r(x,y_{i})\}_{i=1}^{\mathrm{G}}\right)}{\mathrm{std}\left(\{r(x,y_{i})\}_{i=1}^{\mathrm{G}}\right)},

其中,y_i中的token与\hat{A}_i所有享有相同的优势。这种做法隐含了一个强假设:序列中的每一个 Token 对最终结果\hat{A} 的贡献是均等的且独立的。在语言生成中,这显然是不合理的。例如,在一段代码中,关键的逻辑 Token 对能否运行成功起决定性作用,而注释或变量名的 Token 可能无关紧要。强行将最终的成败归因于每一个 Token,引入了巨大的噪声。

故此在长序列中会导致严重的方差问题。 Qwen 团队在 Qwen2.5-Math 和 Qwen3 的研究中指出,GRPO 的这种 Token 级权重实际上引入了高方差的梯度噪声。随着序列长度L 的增加,这种噪声会非线性累积。

具体而言,当序列很长时,\pi_\theta\pi_{old} 的累积分布差异会迅速扩大。虽然 Token 级比率\rho_t 可能被裁剪在[0.8, 1.2] 之间,但如果将其还原为序列级视角,其对应的序列权重方差可能已经爆炸。这种高方差信号在反向传播时,会破坏模型中脆弱的特征表示,尤其是在混合专家模型(MoE)中,可能导致路由网络(Router)的负载失衡,引发不可逆的“模型崩溃(Model Collapse)”——即模型开始输出乱码或重复单一Token。

这就是为什么 GRPO 在 DeepSeekMath(解题步骤相对有限)中表现出色,但在尝试生成数千字的长篇小说或进行极度复杂的超长推理时,往往比 PPO 更难收敛的原因。