后厨里,主厨们正在学一道新菜。传统方法 PPO 的做法,是请一位“品鉴管家”——价值网络——守在灶台边。这位管家每尝一口菜,都要预估这道菜将来能卖多少钱,主厨再根据这个预测决定下一勺该加盐还是减糖。管家很专业,但也极其昂贵,因为要多供起一个和主厨一样大的脑子,还要一天到晚跟着转。 DeepSeek 的 GRPO 换了一种思路:同一道菜,让六位厨师各做一份,做完端上同一张桌。大家不比绝对分,只看相对高下——谁高出平均水平,谁的菜谱就被推广强化;谁低于平均水平,谁的做法就被弱化修正。全场不再需要那位额外的品鉴管家,厨房省出了大量炉灶和冷藏空间。 这套“同题多答、组内比较”的打法,正在成为 DeepSeek 训练大模型推理能力的关键武器。今天我们就从零拆解,看看 GRPO 是如何把一只大模型训练成数学高手的。
学懂 GRPO,你就掌握了“以最小显存开销完成 LLM 推理对齐”的核心设计思路,能在训练成本受限时复用 DeepSeek 的实战经验,这是大模型落地中极具性价比的一课。
可视化演示
展示GRPO算法移除Critic网络的核心创新、组内相对优势计算机制、与PPO的显存对比及KL散度约束,解析DeepSeek低成本RL对齐原理。
本节配有交互动效(进入视口后自动加载,约 3KB)。
组内相对优势计算 对同一prompt采样G个回答,用组内均值和标准差计算相对优势 A_i = (r_i - mean) / std GRPO用统计基线替代Critic网络,大幅降低显存开销。
PPO基线问题
想象这样一间厨房:主厨正在学做新菜,每一步动作之后,都需要一位“品鉴管家”站在旁边尝一口,然后报出这道菜最终能卖多少钱的预测。主厨听到预测后,才敢决定下一步是加盐还是改火。这位管家,就是 PPO 中的价值网络。
在 PPO 中,价值网络被用来计算优势函数。它的思路很直白:主厨当前做菜的价值,不仅看眼前这口锅的状态,还要看将来潜在的收益。管家给出的预测是“从当前状态出发,未来总收益的期望”,因此策略网络可以借助它判断:我现在这一步到底比预期好还是比预期差。
问题在于,这位管家的脑子里装着与主厨几乎一样多的参数。要训练它,厨房必须多准备一份完整食材和冷藏空间——对于 7B 级别的大模型,这意味着显存开销近乎翻倍。更麻烦的是,管家预测可能不稳定,一旦估错方向,会把整个训练带偏。
正因如此,GRPO 的第一步就是反问:如果没有人做菜时真的还需要一位管家来预估价格,那是否有更便宜的办法判断菜的好坏?答案,是把几盘菜放在同一张桌上直接比。
- 即时奖励 $r_t$环境在当前步骤直接给出的反馈,好比客人尝了一口菜后的即时表情。
- 未来价值 $V(s_{t+1})$品鉴管家对“接下来状态”能带来多少总回报的预测。
- 折现系数 $\gamma$把未来的钱折算成今天的价值,越远的收益越打折扣。
- 当前基线 $V(s_t)$管家在当前状态给出的估值,代表“什么都不做也能得到的期望”。
GRPO核心思想
GRPO 的灵感来自于一个很朴素的厨房经验:与其花钱请人预估每道菜的绝对价值,不如让同一位顾客点六份相同的菜,主厨一次性做出六份,然后直接比较这六份的水平高低。
具体到算法上,GRPO 不再训练价值网络,而是对同一个提示(prompt)采样一组回答,把这组回答视作“同一道菜的六份作品”。每份作品都会得到一个奖励分数,分数来自规则、人工偏好或结果校验器。随后,算法计算这组分数的均值和标准差,用它们作为内部的相对基线。
这和 PPO 最大的不同是:基线不再是外部网络预测出来的,而是从组内数据直接统计出来的。它不需要梯度、不需要额外参数、不会报错,唯一需要的就是“多采样几份”。采样在生成式大模型上非常便宜——同一个提示可以并行生成多条回答,成本远低于再养一个价值网络。
至此,GRPO 的核心已经浮出水面:用“组内比较”代替“网络估值”。接下来我们要解决的是,这六份菜到底是怎么被精心采样出来的。
- 组内均值 $\mu_G$六份作品的分数平均线,就是这一桌菜的集体水平线。
- 组内标准差 $\sigma_G$衡量这组分数彼此之间的离散程度,反映组内竞争有多激烈。
- 差值 $r_i - \mu_G$当前这份菜与平均线的差距,正负号决定了强化还是弱化的方向。
- 归一化与防除零除以标准差让优势无量纲化,$\epsilon$ 是一小量防止除以零。
分组采样机制
回到厨房。一次订单进来了,不是只让一位厨师做,而是同一时间让六位厨师分别操作。每个厨师从同一个起点出发,但做出的菜细节各不相同——有的多翻两下锅,有的加了一点调料,有的火候更猛。这一组菜就是一组回答。
在 GRPO 中,采样是“固定提示、多次生成”。给定问题 $q$,模型根据当前的旧策略 $\pi_{\theta_{\mathrm{old}}}$ 独立采样生成 $G$ 条完整回答。每条回答都是一段 token 序列,长度可以不同。因为生成是并行的,多采样 $G$ 条的成本只是单条生成的 $G$ 倍耗时,但显存不会增加 $G$ 倍。
这一步的意义在于:有了 G 条回答,我们才可能计算组内均值、组内标准差,并把“谁高谁低”这件事限定在同一道菜的范围内。如果只采样一条回答,所有相对信息都会消失,优势就退化为原始奖励减常数,方差会非常大。
采样完成后,六份菜已经上桌。下一步就是真正“比一比”,把每份菜在这个小团体中的位置算出来。
- 固定提示 $q$所有采样的出发点,相当于同一位顾客的同一张订单。
- 旧策略 $\pi_{\theta_{\mathrm{old}}}$更新前被冻结的行为准则,采样用它来保证数据分布稳定。
- G 条独立轨迹 $\{o_i\}$同一提示下生成的多个完整回答,每条都是独立的 token 序列。
相对优势计算
六份菜齐刷刷摆在转盘上。现在不需要外人来打分,只需要先算出这一桌的平均水准,再看每份菜比平均线高出或低出多少。这就是相对优势的计算逻辑。
在 GRPO 中,每条回答 $o_i$ 都有一个奖励 $r_i$。我们先把这组奖励的均值算出来作为中心点,再把每组奖励的标准差算出来作为标尺。每条回答的组内优势就是“它离中心点有多远、有多远”——用标准差做单位衡量。
这样做有几个好处。第一,它天然适应不同任务,因为无论奖励的绝对范围是 0 到 1 还是 0 到 100,组内比较都会自动归一化。第二,它让梯度方差大幅降低,因为组内比较抵消了不同提示之间的难度差异。第三,它不需要额外的网络参数,纯粹是统计量,训练时不会引入新的误差源。
有了优势值,接下来主厨就要开始真正调整自己的动作了:是保留优秀菜谱,还是压一压糟糕做法。
- 中心化 $r_i - \mu_G$把组内均值当作零点,消去这道题本身的绝对难度影响。
- 归一化分母 $\sigma_G + \epsilon$用组内离散程度作为标尺,让优势在不同题目间可比。
- 共享优势 $\hat{A}_i$同一回答内所有 token 共用这一优势值,告诉模型“这段输出整体是偏好的还是偏劣的”。
策略更新机制
现在六份菜已经分出高下,厨房开始制定新的菜谱标准。对于高于均值的菜(正优势),主厨需要强化促成这份菜的那些动作;对于低于均值的菜(负优势),主厨要弱化这些动作。
直接的做法是梯度上升:增大正优势 token 的概率,减小负优势 token 的概率。但一味猛冲会把策略改得面目全非,甚至做出完全不像样的菜。于是 GRPO 借用 PPO 中的重要性采样比率和裁剪机制,让更新幅度可控。
具体来说,对于每个 token,算法计算新旧策略在这个 token 上的概率比 $\rho_{i,t}(\theta)$,然后把它与裁剪后的版本取最小值。这个 $\min$ 操作保证:当优势为正时,最多从概率提升中获益到一个裁剪边界;当优势为负时,也最多承受边界内的惩罚。这种“守规矩的更新”让我们可以保持训练稳定,不会一个批次就把模型推崩。
看到 KL 惩罚,不禁要问:为什么训练新菜谱的同时,还要回头看老菜谱?
- 概率比 $\rho_{i,t}(\theta)$当前策略生成该 token 的概率除以旧策略的概率,衡量这次更新在“改变多大”。
- 裁剪区间 $[1-\varepsilon,1+\varepsilon]$概率比超出这个区间就被截断,防止单步更新过猛。
- min 保护在未裁剪目标与裁剪目标之间取小值,保证优化方向永远不踩过红线。
- KL 惩罚 $-\beta D_{KL}$提醒模型不要离参考行为太远,这是下一节的主角。
KL约束技巧
新菜谱之所以不能完全抛弃老菜谱,是因为老菜谱积累了模型预训练以来的大量语言能力和世界知识。如果只盯着当前批次奖励猛改,模型可能很快开始说胡话、重复短句、甚至遗忘基本语法。
因此,GRPO 引入了一个参考模型 $\pi_{\mathrm{ref}}$,通常是训练开始时的初始策略。在每一步更新中,算法不仅优化奖励相关目标,还惩罚当前策略与参考策略之间的 KL 散度。这个惩罚项就像一根橡皮筋,把策略拉向奖励最大的方向,但又不允许它离参考点太远。
DeepSeek 的实现还采用了一种逐 token 的无偏 KL 估计,避免了对整句联合分布的高方差估计。这个估计量在数学上保证期望值等于真实的 KL 散度,但方差更小、实现更简单,训练中只需对比当前策略与参考策略在每个 token 上的概率即可,非常适合大模型场景。
有了这套约束,模型既能在奖励方向上大步前进,又不会因为走太远而丢失原有的语言能力。最后,我们来看看省掉价值网络到底省了多少“厨房预算”。
- 对数概率比当前策略与参考策略对该 token 的偏爱程度的对数值,正数表示当前策略更偏爱。
- 反向比修正项 $-1 + \frac{\pi_{\mathrm{ref}}}{\pi_\theta}$这个看似奇怪的结构正是为了保证估计无偏——它补偿了概率比波动带来的偏差。
- 逐 token 求和取平均对回答内所有 token 的 KL 贡献求平均,形成整个回答与参考模型的偏离程度。
显存效率优势
让六位厨师做菜,看起来好像更费食材:毕竟要同时做六份。但仔细算一下会发现,最贵的其实不是食材,而是养一位品鉴管家的固定成本。在 PPO 中,价值网络和策略网络几乎一样大,训练时两者的参数、优化器状态和激活都要同时驻留显存,等于直接翻倍。
GRPO 把价值网络一整个移除后,显存占用大体只有原来的“策略网络 + 采样多条回答”的开销。由于生成回答时并不需要为每条回答保存完整梯度(只有被选中的轨迹才参与反向传播),多采样的额外显存远小于养一个价值网络。
更重要的是,显存节省直接转化成了训练能力的提升:同一块 GPU 上可以跑更长的序列、更大的批次、更小的设备集群。对长思维链推理任务尤其关键,因为回答长度动辄上千 token,激活显存随序列长度线性增长,省下的每一 MB 都很有价值。
省下来的显存,最终变成了 DeepSeek 数学模型的惊艳成绩。这就是 GRPO 从理论走向实战的故事。
- 批评家参数量 $|\theta_{\mathrm{critic}}|$价值网络中的全部可学习参数,是显存的大头。
- 批评家激活量 $|\text{act}_{\mathrm{critic}}|$前向传播过程中需要保存的中间结果,也是反向传播必需的开销。
- GRPO 近似显存策略网络自身的参数和激活依然保留,但批评家部分的双重开销被直接消除。
应用与成效
DeepSeek 的厨房用这套“同题多答、组内比较”的方法训练出了 DeepSeekMath 系列模型。在数学推理基准上,7B 规模的模型取得了令人惊讶的成绩:GSM8K 达到 82.9%,MATH 达到 46.8%。这个成绩不仅碾压了同规模的 SFT 模型,甚至超越了许多数十倍参数的模型。
GRPO 之所以在推理任务上特别有效,是因为数学题天然有“标准答案”:同一题生成多条解答过程,用规则验证器判断对错,就能得到明确的奖励信号。模型学到的不仅是零散的解题技巧,而是一种内部一致的推理策略——先试哪条路、遇到死胡同如何回溯、哪些中间步骤更容易得分。
更重要的是,这套方法完全开源可复现。社区不需要大规模奖励模型和昂贵价值网络,就能在单节点甚至单卡上完成小模型的强化对齐。这大大降低了强化学习在大模型上的使用门槛,也为后续的长思维链模型(如 DeepSeek-R1 系列)铺平了道路。
从品鉴管家到六人同厨,GRPO 用一次“结构减法”实现了效率和性能的双重提升。理解了这条主线,你就能明白 DeepSeek 为什么能如此高效地训练出强大的推理模型。
- GSM8K 82.9%小学到初中水平的数学应用题数据集,82.9% 意味着大多数带多步推理的问题模型都能解对。
- MATH 46.8%高中数学竞赛级别的难题集,能接近一半的正确率,说明模型具备相当强的推理能力。
- 能力对比这两项成绩显著高于同样 7B 规模、只用监督微调训练的基线。
AI 应用场景
数学推理模型强化对齐
阶段:强化学习对齐(RLVR,基于规则验证的强化学习)
解决的问题:传统 PPO 训练数学推理模型时,价值网络与策略网络规模相当,显存占用巨大,且价值预测不稳定会误导策略更新。GRPO 通过对同一题目采样多份解答,用组内相对优势替代价值网络,在显存受限环境下也能稳定训练长思维链。
具体案例:DeepSeekMath 7B 使用 GRPO 在 GSM8K 上达到 82.9%、在 MATH 上达到 46.8%,超过同规模 SFT 模型并接近部分百亿级模型。训练过程中,每个数学问题并行生成多条解题过程,规则校验器自动判分,组内优势指导策略更新。
对话偏好对齐的低成本复现
阶段:RLHF(基于人类反馈的强化学习)
解决的问题:很多团队没有预算训练一个高质量奖励模型,也难以忍受 PPO 价值网络带来的显存翻倍。GRPO 只需对同一提示生成多个回答,再对这些回答进行偏好排序或打分即可完成对齐,省去价值网络和大部分显存开销。
具体案例:开源社区在 7B 以下模型的对话对齐中应用 GRPO,通过构造“同一提示多个回答”的偏好对比,用统一奖励模型或人工标注给每组回答打分,再归一化为组内优势进行策略更新,在单卡或双卡环境下即可复现不错的中文对话效果。
长思维链推理能力的提升
阶段:强化学习后训练(Reasoning RL)
解决的问题:大模型在长思维链推理中经常出现“想一半就放弃”或“答非所问”的问题。GRPO 的组内采样天然产生多条不同长度的推理轨迹,让模型在对比中学会“多坚持几步”和“避免无意义绕路”。
具体案例:DeepSeek-R1 系列模型继承了 GRPO 式训练思路,通过同题采样多条长推理链、用结果正确性作为奖励信号,模型逐步学会了自我反思和错误纠正,推理链明显延长且质量提升。这一思路也被业界广泛借鉴。
Python 演示
import torchimport torch.nn as nn class SoftPolicy(nn.Module): def __init__(self, vocab=8): super().__init__() self.logits = nn.Parameter(torch.randn(vocab) * 0.3) def probs(self): return torch.softmax(self.logits, dim=-1) def grpo_update(policy, ref_policy, good_id, G=6, lr=0.1, eps=0.2, beta=0.2, steps=20): opt = torch.optim.SGD(policy.parameters(), lr=lr) # 采样前冻结概率,记录为旧策略 old_probs = policy.probs().detach() # 同一提示采样 G 条回答 tokens = torch.multinomial(old_probs, G, replacement=True) # 简单规则奖励:抽中目标 token 得 1.2,否则 0.2 rewards = (tokens == good_id).float() + 0.2 # 组内相对优势 adv = (rewards - rewards.mean()) / (rewards.std() + 1e-8) for _ in range(steps): p = policy.probs() ratio = p[tokens] / old_probs[tokens] surr = torch.min(ratio * adv, torch.clamp(ratio, 1 - eps, 1 + eps) * adv) kl = (p * (p.log() - ref_policy.probs().detach().log())).sum() loss = -surr.mean() + beta * kl opt.zero_grad() loss.backward() opt.step() return adv.numpy() if __name__ == "__main__": torch.manual_seed(42) policy = SoftPolicy(vocab=8) ref_policy = SoftPolicy(vocab=8) advs = grpo_update(policy, ref_policy, good_id=5) print("组内相对优势:", advs) print("目标token概率:", policy.probs()[5].item())
old_probs = policy.probs().detach()采样前冻结一份概率分布,当作“旧菜谱”来用tokens = torch.multinomial(old_probs, G, replacement=True)按旧策略对同一提示采样 G 个回答,模拟一组厨师同时做菜adv = (rewards - rewards.mean()) / (rewards.std() + 1e-8)组内均值做基线、组内标准差做归一化,算出相对优势ratio = p[tokens] / old_probs[tokens]新策略与旧策略在各 token 上的概率比,衡量更新幅度surr = torch.min(ratio * adv, torch.clamp(ratio, 1 - eps, 1 + eps) * adv)裁剪概率比并取 min,防止单步更新过猛kl = (p * (p.log() - ref_policy.probs().detach().log())).sum()当前策略与参考策略的 KL 散度,把模型拴在安全范围里loss = -surr.mean() + beta * klGRPO 的核心损失:最大化裁剪后的优势目标,同时压制 KL 漂移
常见误区
误区我一直以为 GRPO 去掉了价值网络,就等于扔掉所有基线,直接用原始奖励做策略梯度,所以方差会特别大。
正解GRPO 并没有扔掉基线,而是把基线换成了“组内均值”。每个提示采样出 G 条回答后,用这 G 条奖励的平均值作为基线。这个基线不学参数、不用前向传播,但依然能起到降低策略梯度方差的作用。
为何常见:因为 GRPO 最出名的 slogan 就是“去价值网络”,初学者很容易把“去价值网络”误解成“去基线”。
误区GRPO 去掉了价值网络又不用奖励模型,应该是一种完全无监督的算法吧?
正解GRPO 依然需要奖励信号。奖励可以来自规则验证器(数学对错)、人工偏好打分或已训练的奖励模型。它去掉的是“价值网络”——即对每个状态预估期望回报的网络——而不是奖励本身。采样出的每条回答仍然要打分,才能算组内均值。
为何常见:大家把“价值网络”和“奖励模型”混为一谈,误以为去掉前者就意味着去掉所有外部反馈。
误区GRPO = PPO − critic,就这么简单,原理上没有任何其他区别。
正解除了删掉价值网络,GRPO 在细节上还有多处重要变化:基线从组内统计量得来而不是网络预测;优势对同一回答的所有 token 共享同一个值;KL 惩罚采用逐 token 的无偏估计;更新目标按“回答级”分组组织。这些变化共同构成了一个新的、更轻量的算法,而非简单的删减。
为何常见:GRPO 的体量恰好和 PPO 是“少一个网络”,所以容易被人简化成减法。
误区既然 GRPO 已经用裁剪控制更新幅度,那 KL 惩罚是不是冗余的?我去掉它试试。
正解裁剪控制的是“单步更新幅度”,KL 控制的是“策略整体漂移”。即使每步都裁剪,经过多轮更新后策略仍可能离参考模型越来越远,最终丢掉语言能力。KL 惩罚在 GRPO 目标函数中与策略目标同时优化,是稳定长程训练的关键组件。
为何常见:裁剪机制给人“已经够安全了”的错觉,让人低估了累积漂移的风险。
误区GRPO 是 DeepSeek 做数学题发明的,应该只适用于答案有对错之分的任务。
正解GRPO 是通用的策略优化方法,只要任务能定义奖励信号,就能用组内采样比较来更新策略。数学推理只是它最容易验证的场景,对话偏好对齐、代码生成、工具调用等任务同样适用。关键在于“同一提示能采样出多条可比较的轨迹”。
为何常见:GRPO 因为 DeepSeekMath 走红,大家就把它的适用范围窄化为数学题。
面试题
Q1. GRPO 相比 PPO 在结构上最大的变化是什么?
- A.增加一个价值网络
- B.去掉整个价值网络← 正确答案
- C.引入生成对抗机制
- D.把奖励函数改为损失
答案:B。GRPO 最核心的结构变化就是移除价值网络,改为组内统计基线。A 恰好说反了;C 是 GAN 的做法,与 GRPO 无关;D 说的不是结构变化,奖励函数依然存在。就像请人做菜不用再养一名品鉴管家。
Q2. GRPO 组内优势的归一化统计基础是什么?
- A.组内均值与标准差← 正确答案
- B.全批量最优奖励
- C.价值网络的预测
- D.蒙特卡洛回报和
答案:A。GRPO 用同一提示采样的一组回答的均值作为基线、标准差作为归一化标尺。B 没利用组内信息,C 是 PPO 的做法,D 是经典策略梯度的做法。好比一桌菜看的是与平均线的差距,而不是跟外面所有菜比。
Q3. GRPO 在哪个基准任务上被 DeepSeek 成功验证?
- A.数学推理数据集← 正确答案
- B.图像语义分割
- C.语音情感识别
- D.视频目标追踪
答案:A。DeepSeekMath 在 GSM8K 和 MATH 两个数学推理数据集上验证了 GRPO 的效果。B、C、D 都是多模态或非生成式任务,不是 GRPO 的典型验证场景。数学题答案可自动判定,恰好适合组内奖励比较。
Q4. GRPO 目标中的 clip 操作直接限制什么?
- A.奖励信号的上界
- B.新老策略的概率比← 正确答案
- C.学习率大小的值
- D.批大小参数值
答案:B。clip 直接裁剪的是重要性采样比率,即新策略概率与旧策略概率之比,将其限制在 [1-ε, 1+ε] 内。它不作用于奖励、学习率或批大小。这就像限制每位厨师一次改动菜谱的比例,不允许一次推翻所有做法。
Q5. GRPO 相对 PPO 显存节省主要来源于哪里?
- A.冻结底层编码器
- B.移除价值网络← 正确答案
- C.改用低精度混合
- D.引入 LoRA 结构
答案:B。GRPO 不训练价值网络,因此省去了价值网络的参数、优化器状态和激活缓存,这是显存下降的最大来源。A、C、D 属于其他优化技巧,不是 GRPO 本身的机制。好比移除了品鉴管家的工位,整个后厨顿时宽敞了许多。
Q6. 下列哪些属于 GRPO 相对 PPO 的真实差异?
- A.用组内均值代替价值基线← 正确答案
- B.完全删除所有奖励信号
- C.用裁剪概率比限制更新幅度← 正确答案
- D.用参考模型 KL 抑制策略漂移← 正确答案
答案:ACD。A 正确,组内均值是 GRPO 的核心基线;C 正确,裁剪重要性采样比率的机制被 GRPO 保留;D 正确,KL 惩罚约束策略不脱离参考模型。B 错误,GRPO 依然需要奖励信号,删除的是价值网络而非奖励。
Q7. 对同一提示采样 G 条回答的直接目的是什么?
- A.扩大训练批次大小
- B.构成组内比较的基线← 正确答案
- C.延长生成序列长度
- D.简化奖励函数设计
答案:B。G 条回答构成了一个比较组,可以计算组内均值和标准差,从而为每条回答赋予相对优势。批次大小扩大是附带效果但不是目的;C、D 与采样目的无关。就像同一道菜做六份,才能看出哪份明显更好。
Q8. GRPO 中只对 token 序列做重要性采样裁剪、不做状态价值回归,原因是什么?
- A.状态价值回归梯度为零
- B.组内统计量可充当基线← 正确答案
- C.生成任务没有任何状态
- D.裁剪会取消奖励信号
答案:B。GRPO 用组内均值和标准差充当基线,已经能够降低梯度方差,因此不再需要价值网络做状态价值回归。A 没有依据;C 不对,生成过程有隐状态;D 与裁剪机制不符。这是对基线的替代设计,而不是取消基线。
Q9. GRPO 目标函数中包含下列哪些组成部分?
- A.裁剪后的策略损失← 正确答案
- B.参考模型 KL 惩罚← 正确答案
- C.价值网络回归损失
- D.重要性采样概率比← 正确答案
答案:ABD。GRPO 目标包含裁剪后的策略目标(A)、KL 惩罚(B)和重要性采样比率(D)。C 错误,价值网络回归损失属于 PPO 的组成部分,GRPO 已将其移除。三者协同,既保证优化方向又约束策略漂移。
Q10. 若 GRPO 完全撤掉 KL 约束并持续极端更新,最可能发生的结果是什么?
- A.回复多样性明显提升
- B.策略逐步偏离参考模型← 正确答案
- C.价值网络重新开始训练
- D.奖励坍缩为恒定常数
答案:B。没有 KL 约束,即使每一步都有裁剪,策略也会在多次更新中逐渐漂移,最终远离参考模型、丢失原有语言能力。A 表面看可能发生但并非核心风险;C 与 GRPO 结构无关;D 是奖励设计问题而非 KL 缺失的必然结果。KL 是安全绳,能防止厨师在改良菜谱的路上把基本功全丢了。