想象你开了一家餐厅,想弄清楚顾客到底爱吃哪道菜。传统做法是请一位昂贵的“美食评论家”(Critic)坐在后厨,对每一道菜从头到尾品尝并给出绝对分数——“这道菜 7.8 分,那道菜 6.5 分”。可这位评论家不仅收费高昂(占用了大量显存和算力),而且口味飘忽不定,今天觉得咸,明天觉得淡,分数忽高忽低,导致你迟迟不敢改菜单。 这时候,一位叫 GRPO 的“品鉴团主理人”提出了新思路:与其迷信一个人的绝对评分,不如每轮端出同一道菜的 4 个候选版本,请一组普通食客当场试吃、互相比较、直接投票——“这版比那版好”,“这版最差”。不需要评论家,也不需要绝对分数,只需要“相对比较”。这就是群体相对策略优化(Group Relative Policy Optimization)的核心智慧:用组内相对排序替代个体绝对打分,省掉 Critic 模型,大幅降低显存与训练复杂度。DeepSeek 正是靠这一招,让大模型在数学推理、代码生成等任务上对齐人类偏好,同时训练成本大幅下降。

岗位关联

掌握 GRPO,你就能在实战中用更低显存、更简流程完成大模型 RLHF 对齐,这正是大模型微调与对齐方向工程师的核心竞争力。

目录
  1. 可视化演示
  2. PPO 两大消耗
  3. 品鉴团采样
  4. 组内相对分
  5. 优势计算
  6. KL 防漂移
  7. 策略更新
  8. 超参调优
  9. 前沿视野
  10. AI 应用场景
  11. Python 演示
  12. 常见误区
  13. 面试题

可视化演示

动态演示GRPO群体相对策略的核心机制,通过基础/核心/应用/扩展四种模式展示关键概念与交互流程。

本节配有交互动效(进入视口后自动加载,约 3KB)。

GRPO群体相对策略:GRPO GRPO核心思想与PPO的架构 群体采样与组内相对排序机制 核心机制可视化 GRPO群体相对策略整体架构与关键组件

PPO 两大消耗

在 GRPO 登场之前,业界主流是 PPO(近端策略优化)。可以把 PPO 想象成一家“米其林评审制”餐厅:每做一道新菜,都要专门聘请一位美食评论家(Critic 价值模型)全程坐在厨房里,对每一道菜的未来表现做绝对预测——“这道菜最终能得 8 分”。这套流程有两个致命消耗:第一,这位评论家本身是一个非常庞大的神经网络,和厨师(策略模型)一样吃显存;第二,评论家的口味极不稳定,今天觉得咸,明天觉得淡,给出的绝对分数波动巨大,让训练过程摇摇晃晃。

为什么 PPO 非要请评论家?因为它想知道“这道菜到底比平均水平好多少”,必须先估计一个“平均线”。可问题是,这个大模型的“平均线”极难预测,评论家要不停猜、不停修,浪费大量算力。GRPO 的洞察是:要判断好坏,何必预测绝对分数?直接看同一桌食客的相对反应就够了。 于是 GRPO 干脆辞退了这位昂贵且善变的评论家,把它的活交给了“群体比较”。这一刀砍下去,显存占用大幅下降,训练流程也精简了一大截——这正是 DeepSeek 能在有限算力下完成大规模对齐的秘密武器。

要理解 GRPO,必须先理解它替掉了什么。PPO 的完整损失由四个部分组成:策略梯度项、价值函数损失、熵奖励项和 KL 惩罚项。其中价值函数损失正是为了训练那位“评论家”。GRPO 将这一项整体删除,公式中对价值的依赖全部消失,只凭策略自身采样和奖励模型的组内比较完成优化。

借用品鉴团隐喻:GRPO 就是“去掉评论家、直接让食客互相比”的极简主义。省下的显存可以塞下更大的厨师团队(模型参数),动荡的绝对分数换成了稳定的相对比较——这就是它成为新范式的第一块基石。

LGRPO(θ)=−1G∑i=1Gmin⁡(πθ(oi∣q)πθold(oi∣q)Ai,  clip(πθ(oi∣q)πθold(oi∣q),1−ε,1+ε)Ai)+β⋅KL\displaystyle \mathcal{L}^{GRPO}(\theta) = -\frac{1}{G} \sum_{i=1}^{G} \min \left( \frac{\pi_\theta(o_i \mid q)}{\pi_{\theta_{old}}(o_i \mid q)} A_i, \; clip\left( \frac{\pi_\theta(o_i \mid q)}{\pi_{\theta_{old}}(o_i \mid q)}, 1-\varepsilon, 1+\varepsilon \right) A_i \right) + \beta \cdot KL
这个公式是 GRPO 的灵魂:它用“组内优势 A_i”替代“评论家估计的绝对优势”,再用裁剪限幅和 KL 惩罚保证更新不脱轨。下面我们逐字拆解。
  1. G 个采样样本对同一个问题 q,旧策略采样出 G 条不同回答 o_i,构成一个“品鉴组”。
    G=4 或 8\displaystyle G = 4 \text{ 或 } 8
  2. 概率比率新旧策略在每条回答上的概率之比,表示“这次更新的步子迈了多大”。
    ri(θ)=πθ(oi∣q)πθold(oi∣q)\displaystyle r_i(\theta) = \frac{\pi_\theta(o_i \mid q)}{\pi_{\theta_{old}}(o_i \mid q)}
  3. 裁剪函数将比率限制在 [1-ε, 1+ε] 内,防止单条样本让策略一步迈太大。
    clip(ri,1−ε,1+ε)\displaystyle clip(r_i, 1-\varepsilon, 1+\varepsilon)
  4. KL 惩罚项β 控制惩罚强度,约束新策略别离旧策略太远。

品鉴团采样

假设现在要为一道招牌菜研发新配方。旧方法是一次只做一个版本,端给评论家打分;GRPO 则是一次性做出 4 个版本(A/B/C/D),请来一组食客同时试吃、当场投票。这批“同时被端上桌”的菜品,就是“品鉴团”——在强化学习里,它叫组内采样(Group Sampling)。

具体做法是:对同一个提示(Prompt),从当前策略模型中采样出 G 条不同的回答,例如 G=4 或 G=8。这 G 条回答构成一个组。组里的每个成员都面对同一个问题,因此它们的生成难度、任务背景完全一致,只有策略本身的概率分布和采样随机性带来差异。这就像同一锅汤分装成 4 个小碗,只是每碗加的配菜分量稍有不同,食客们有了可比较的基准。

为什么强调“同组同任务”?因为不同任务间的分数分布差异极大——有的问题大家都能答对,有的问题谁都答不好。如果拿一个问题的高分去和另一个问题的低分做绝对比较,就像拿红烧肉的咸度和冰淇淋的甜度比“谁更优秀”,毫无意义。只有在同一组内比较,分数才有参照系。这也解释了为什么组大小(group size)是关键超参:组太小,比较样本不足;组太大,训练吞吐量下降。

组内相对分

食客们吃完 4 个版本后,谁来给出分数?GRPO 用奖励模型(Reward Model)扮演“大众点评”。奖励模型为组内每一条回答打一个绝对分,但请注意——这些绝对分本身不重要,重要的是它们之间的相对次序。在训练时,GRPO 完全不看“这条回答得了 7.2 分”这种绝对信息,而是看它在组内排在什么位置。

这就是“组内相对分”的精髓:用排序代替打分。好比品鉴会上,食客们不说“这道菜 8 分”,只说“这道比那道好吃”或者“这版最差”。训练目标也因此从“逼近一个绝对分数”变成“让得分高的回答概率更大,得分低的回答概率更小”。

这种相对化处理带来了一个巨大的隐性收益:奖励模型的绝对分通常有偏差(有的模型偏爱长答案,有的偏爱短答案),但这些偏差在组内比较时会被自动抵消。因为同一组内的回答都承袭了同样的奖励模型偏差,互相一减,偏差就消失了。这就像用同一个秤称不同的菜,秤本身准不准无所谓,只要每次都偏得一样,比较结果依然可靠。

优势计算

有了组内相对分之后,接下来要回答的问题是:“这一条回答到底比组内平均水平好多少?” 这个差值就是优势函数(Advantage Function)。GRPO 计算优势的公式非常简洁——调用组内均值与标准差做归一化。

这个公式可以这样理解:把组内所有奖励分数的平均值当作“基准线”,每条回答的奖励减去这条基准线,得到的差值再除以组内标准差,相当于把这个差值换算成“几个身位”的优势。若 A_i 为正,说明该回答胜过组内平均水准,是“好评菜”,训练时要加大它的出现概率;若 A_i 为负,说明它是“差评菜”,要降低概率。

标准化后的优势值天然具有“方差控制”能力:哪怕某一组整体分数偏高或偏低,经过均值相减、标准差归一后,数值都在一个相对稳定的区间内。这正是 GRPO 不需要 Critic 模型却依然保持训练稳定的核心机制。

Ai=ri−mean(r1,r2,⋯ ,rG)std(r1,r2,⋯ ,rG)\displaystyle A_i = \frac{r_i - \text{mean}(r_1, r_2, \cdots, r_G)}{\text{std}(r_1, r_2, \cdots, r_G)}
  1. 组内均值同一组 G 条回答奖励分数的平均,即“品鉴团平均口味线”。
    mean=1G∑j=1Grj\displaystyle \text{mean} = \frac{1}{G}\sum_{j=1}^{G} r_j
  2. 分子差值某条回答的奖励与均值的差,代表“超出平均多少”。
    ri−mean\displaystyle r_i - \text{mean}
  3. 分母标准差组内分数的离散程度,用于消除不同组之间的尺度差异。
    std=1G∑j=1G(rj−mean)2\displaystyle \text{std} = \sqrt{\frac{1}{G}\sum_{j=1}^{G} (r_j - \text{mean})^2}
  4. 归一化优势差值除以标准差,得到无量纲的相对优势值。

KL 防漂移

策略更新最怕什么?最怕“步子太大,扯着蛋”。如果厨师一听食客说“B 版好吃”,立刻把整个配方全部推翻重来,很可能下一轮所有食客又都觉得 B 版难吃了——这就是策略漂移(Policy Drift)。为了防止新策略偏离旧策略太远,GRPO 引入了 KL 正则化(KL Divergence Penalty)。

KL 散度衡量的是两个概率分布之间的“距离”。如果新策略和旧策略在每条回答上的概率几乎一致,KL 值接近 0,惩罚很小;如果新策略大幅改变了各回答的概率分布,KL 值变大,惩罚随之加重。这就好比给厨师设定了一条规则:每一轮只能微调配方——“可以多放半克盐,但别把整道菜换成甜品”。

在实际训练中,β 通常取 0.01 到 0.1 之间的值。值得注意的是,KL 惩罚与裁剪机制是一对“双保险”:裁剪限制单步更新幅度,KL 惩罚抑制累积漂移。有了这双重保护,策略模型才能像一位稳健的厨师长那样,每轮只根据食客反馈微调一点,既持续进步,又不至于反复“翻车”。

β⋅KL(πθ  ∥  πθold)=β⋅Eo∼πθ[log⁡πθ(o∣q)πθold(o∣q)]\displaystyle \beta \cdot KL\left( \pi_\theta \;\|\; \pi_{\theta_{old}} \right) = \beta \cdot \mathbb{E}_{o \sim \pi_\theta}\left[ \log \frac{\pi_\theta(o \mid q)}{\pi_{\theta_{old}}(o \mid q)} \right]
  1. 对数概率比计算新策略相对旧策略在每条回答上的对数变化量。
    log⁡πθ(o∣q)πθold(o∣q)\displaystyle \log \frac{\pi_\theta(o \mid q)}{\pi_{\theta_{old}}(o \mid q)}
  2. 期望运算按新策略的采样分布求平均,得到整体偏离程度的度量。
    Eo∼πθ[⋅]\displaystyle \mathbb{E}_{o \sim \pi_\theta}\left[ \cdot \right]
  3. 惩罚系数 β控制“允许偏离多远”,β 越大,策略更新越保守。

策略更新

品鉴团投票完成、优势值计算完毕、KL 散度也在约束着漂移——现在到了最后一步:真正更新策略模型的参数。GRPO 的策略更新目标函数借鉴了 PPO 的裁剪技术,但完全去掉了价值网络:

这里的 min 操作像一个“保守的财务主管”:当比率 r_i 落在裁剪区间内时,正常取该比率乘优势;当比率超出裁剪范围时(说明这一步想走太远),就用裁剪后的边界值兜底。这样一来,任何单条回答都没有能力把策略权重推向极端。

更新完成后,新一轮品鉴会再次开始:旧策略变成上一轮的新策略,重新采样、重新投票、重新计算优势。这个循环稳定而简洁,每一步都只沿着“食客相对偏好”的方向小幅前进。

L(θ)=−1G∑i=1G[min⁡(ri(θ)Ai,  clip(ri(θ),1−ε,1+ε)Ai)]+β⋅KL\displaystyle \mathcal{L}(\theta) = - \frac{1}{G} \sum_{i=1}^{G} \left[ \min\left( r_i(\theta) A_i, \; clip\left( r_i(\theta), 1-\varepsilon, 1+\varepsilon \right) A_i \right) \right] + \beta \cdot KL
  1. 概率比率 r_i(θ)新旧策略在回答 o_i 上的概率之比。
    ri(θ)=πθ(oi∣q)πθold(oi∣q)\displaystyle r_i(\theta) = \frac{\pi_\theta(o_i \mid q)}{\pi_{\theta_{old}}(o_i \mid q)}
  2. 裁剪操作若 r_i 超出 [1-ε, 1+ε],则压缩到边界,防止单样本主导。
    clip(ri,1−ε,1+ε)\displaystyle clip(r_i, 1-\varepsilon, 1+\varepsilon)
  3. min 取小在原比率和裁剪比率之间取较小者,保证更新方向保守。
    min⁡(riAi,  clip(ri)Ai)\displaystyle \min\left( r_i A_i, \; clip(r_i) A_i \right)
  4. 负号与平均目标函数取负平均,使梯度上升时能提高优势为正的回答的概率。

超参调优

GRPO 的超参调优如同调试一座精密天平:学习率、裁剪阈值 ε、组大小 G、KL 惩罚系数 β,每一个都要互相配合,才能保持训练的稳定与高效。

学习率是最敏感的旋钮。学习率过大,策略更新一步跨太远,KL 惩罚来不及拉住,训练直接发散;学习率过小,训练进度缓慢,浪费算力。实践中通常采用 warmup + 余弦退火策略:初期以小学习率“预热”让模型稳定起步,中后期逐步衰减。裁剪阈值 ε 控制着单步更新允许的最大偏差,常用范围在 0.01 到 0.2 之间,ε 越小训练越稳但收敛越慢。组大小 G 则关乎比较的统计质量:G=4 是性价比极高的默认值(DeepSeekMath 的成功实践证明),G 更大时优势估计更准,但采样成本随之上升。KL 系数 β 负责平衡“服从反馈”与“保持记忆”,β 过大模型学不进新偏好,β 过小则容易灾难性遗忘。

调参的最终目标是找到一组“稳中求进”的参数组合。就像品鉴会的主理人需要根据食客的耐心、菜品的复杂度、厨师的熟练度,灵活调整试吃轮次、投票方式和菜品数量。没有放之四海皆准的最佳值,只有不断实验、观察 KL 曲线和奖励曲线的变化,才能找到适合自己任务的配置。

前沿视野

GRPO 的出现,不只是对 PPO 的一次小修小补,而是整个 RLHF 范式的转向。它证明了“去掉 Critic、纯靠组内相对比较”也能学习到高质量的人类偏好对齐,甚至在数学推理、代码生成上超越了 PPO。这项技术还带来连锁效应:由于省去了价值模型的显存开销,训练时可以装载更大的策略模型或更长的上下文,这让“长思维链”(Long Chain-of-Thought)的强化学习成为可能——DeepSeek 正是借助 GRPO 训练出了能够在超长推理路径中自我反思和纠错的模型。

从更广的视角看,GRPO 呼应了强化学习中一个古老的智慧:相对排序比绝对估计更稳健。绝对估计需要建立一个完美的“价值度量衡”,而相对排序只需要一个“两两比较器”。无论是推荐系统、机器人控制还是大模型对齐,只要存在“多候选比较”的场景,群体相对优化思想就有一席之地。未来,GRPO 还可能与课堂学习(Curriculum Learning)、多任务迁移等策略结合,演化出更强大的对齐引擎。

AI 应用场景

大模型 RLHF 对齐训练

阶段:模型对齐与偏好优化

解决的问题:传统 PPO 需要同时加载策略模型、价值模型(Critic)和奖励模型,显存开销极大,单卡很难训练 7B 级别以上的模型。GRPO 去掉 Critic 后,显存占用显著下降,训练流程也大幅简化,让中小团队也能在自己的 GPU 服务器上完成强化对齐。

具体案例:某开源团队要对一个 7B 模型做“有用性对齐”。原先用 PPO 需要 4 张 A100 才跑得动,改用 GRPO 后仅需 2 张 A100,训练速度提升约 40%。他们设置组大小 G=4,KL 系数 β=0.05,对同一指令采样 4 条回答做组内比较,一周内就让模型响应质量逼近商业 API 的水平。

数学与代码推理优化

阶段:推理能力强化

解决的问题:数学题和代码题天然拥有“标准答案”,但解题路径多样。GRPO 对同一道题采样多个候选答案,通过与真实答案比对获得奖励,并在组内计算相对优势,从而引导模型学习更优的推理路径。

具体案例:DeepSeekMath 论文中的经典实践:对同一数学问题采样 4 种解题过程,用最终答案正确性作为奖励信号,通过 GRPO 更新策略。经过两轮训练,模型在竞赛数学基准上的准确率从 30% 提升到 50% 以上,而同样的采算资源下 PPO 只能提升不到一半。

Python 演示

python54 行
import numpy as np class SimpleGRPO:    def __init__(self, num_params=8, lr=0.01, beta=0.05, groups=4):        self.theta = np.zeros(num_params)        self.lr = lr        self.beta = beta        self.groups = groups        self.old_theta = self.theta.copy()     def sample_logits(self):        return self.theta + np.random.randn(self.groups, len(self.theta)) * 0.1     def old_logits(self):        return self.old_theta + np.zeros((self.groups, len(self.theta)))     def compute_advantages(self, rewards):        mean_r = rewards.mean()        std_r = rewards.std() + 1e-6        return (rewards - mean_r) / std_r     def compute_kl(self):        diff = self.theta - self.old_theta        return 0.5 * float(diff @ diff)     def update_step(self, rewards):        logits = self.sample_logits()        old_logits = self.old_logits()        adv = self.compute_advantages(rewards)        ratio = np.exp((logits - old_logits).sum(axis=1))        clipped = np.clip(ratio, 0.8, 1.2)        loss = -np.mean(np.minimum(ratio * adv, clipped * adv))        kl = self.beta * self.compute_kl()        grad = np.zeros(len(self.theta))        for i in range(self.groups):            if ratio[i] * adv[i] <= clipped[i] * adv[i]:                grad += adv[i] * logits[i]            else:                grad += adv[i] * (0.8 if adv[i] > 0 else 1.2)        grad = grad / self.groups - self.beta * (self.theta - self.old_theta)        self.theta -= self.lr * (grad + np.random.randn(len(self.theta)) * 1e-3)        self.lr = max(0.001, self.lr * 0.995) if __name__ == "__main__":    np.random.seed(42)    model = SimpleGRPO()    true_best = np.array([1.0, 0.5, -0.3, 0.8, 0.2, -0.6, 0.4, 0.1])    for step in range(200):        rewards = np.array([np.dot(model.theta, true_best) + np.random.randn() * 0.1                            for _ in range(model.groups)])        model.update_step(rewards)        if step % 40 == 0:            kl_val = model.compute_kl()            print("step", step, "mean_reward", round(rewards.mean(), 3), "kl", round(kl_val, 4))
目的:该代码用 numpy 完整模拟 GRPO 的组内采样、组内归一化优势、裁剪损失和 KL 惩罚,帮助理解论文中的核心公式。
  1. model.sample_logits()从当前策略 θ 的邻域采样出 G 组 logits,对应“一桌端出 4 个菜品版本”。
  2. compute_advantages(rewards)对组内奖励做均值方差归一化,输出每条回答的相对优势,对应“组内相对比较”。
  3. ratio = np.exp((logits - old_logits).sum(axis=1))计算新旧策略概率比 r_i,它是裁剪机制的基础。
  4. clipped = np.clip(ratio, 0.8, 1.2)将比率限制在 [0.8, 1.2],模拟 ε=0.2 的裁剪操作,防止一步更新过猛。
  5. loss = -np.mean(np.minimum(ratio * adv, clipped * adv))这正是 GRPO 目标函数的核心项。
  6. grad = grad / self.groups - self.beta * (self.theta - self.old_theta)在策略梯度基础上叠加 KL 惩罚梯度,抑制策略漂移。

常见误区

误区“GRPO 既然是相对比较,肯定不需要奖励模型了,直接让人类投票就行。” 不少学习者误以为 GRPO 是纯人类反馈,不需要任何自动评分机制。

正解GRPO 并没有取消奖励模型。它依然依赖一个训练好的 Reward Model 为每条回答打一个初始分数,只是这些分数只在组内进行比较,不再与一个全局价值基准做绝对比较。奖励模型是该拿的“大众点评分”,GRPO 砍掉的是那位“昂贵的评论家”(Critic 价值模型),二者不是一回事。

为何常见:因为“群体相对”这个词容易让人联想到纯比较、无打分,再加上许多博客标题强调“去掉 Critic”,读者便误以为奖励模型也被去掉了。

误区“组内优势做过均值归一化,所以每组一定有一半正优势、一半负优势。” 有人把均值归一化与排序混为一谈,误认为每个组内的正负分布是严格均等的。

正解均值归一化只是让组内奖励减去均值,因此所有优势之和为 0,但不代表必然有正有负——当组内所有奖励完全相同时,所有优势都是 0;当大部分奖励都高于均值时,也可能出现多个正值和少量负值,分布的稀疏程度取决于奖励的离散度。

为何常见:人们拿“正态分布中间有正有负”的直觉套用到任意样本上,忽略了均值归一化只保证中心化,不保证排序的均匀性。

误区“KL 惩罚越强,策略越稳定,模型训练越安全,所以 β 越大越好。” 许多初学者把稳定性当成唯一追求,恨不得把 β 调得很大。

正解KL 惩罚强度若过大,模型会被“焊死”在旧策略附近,几乎学不到新的偏好信息。理想状态是“既能吸收反馈,又不至于忘本”——实践中 β 需要配合学习率一起调,观察奖励曲线和 KL 曲线折中平衡。这就像是教育学生:纪律太严会扼杀创造力,纪律太松会走偏方向,合适才是关键。

为何常见:稳定性是训练中最容易感知的指标(loss 不炸),而“学得不够多”是隐蔽的,导致人们偏好安全的极端。

误区“组越大,相对比较越精准,那我直接设 G=64 不是更好吗?” 有些人认为组大小只影响统计质量,没有上限。

正解组大小增大确实让优势估计更准,但同时也意味着每步采样成本线性增长,训练吞吐量显著下降。实践中 G=4 是一个性价比极高的默认值(DeepSeekMath 使用 G=4 已超越 PPO),再增大收益逐渐递减。组大小还和奖励模型质量、KL 惩罚系数存在交互,并非独立变量。

为何常见:人们容易陷入“更多样本 = 更好”的直觉,忽略了强化学习中采样成本与步数效率的权衡。

面试题

Q1. GRPO 相比 PPO 最核心的改动是什么?

单选题 · easy

  • A.删除了价值模型 Critic← 正确答案
  • B.增加了奖励模型
  • C.用决策树代替神经网络
  • D.取消了策略梯度

答案:A。GRPO 的核心就是“辞退评论家”——不再训练 Critique 价值模型,改用组内相对比较计算优势。奖励模型依然保留,决策树和取消策略梯度都毫无根据。

Q2. GRPO 中的“组”指的是什么?

单选题 · easy

  • A.同一个提示采样多条回答← 正确答案
  • B.多个不同提示的集合
  • C.多个训练数据批次
  • D.多个策略参数分组

答案:A。GRPO 的品鉴组是对同一问题 q 采样出的 G 条回答,这样组内成员的生成难度和任务背景一致,相对比较才有意义。不同提示、不同批次都不是“组”的定义。

Q3. 优势函数 A_i 的正负表示什么?

单选题 · easy

  • A.优于还是劣于组内均值← 正确答案
  • B.奖励是否大于零
  • C.模型是否收敛
  • D.采样概率是否均匀

答案:A。A_i = (r_i - mean) / std,分子是与组内均值之差,所以正负代表第 i 条回答在组内的相对位置。它和绝对零值无关,也谈不上收敛。

Q4. 某组四条回答的奖励为 [2, 1, 3, 2],对这条组内奖励做均值归一化后,它们的均值是多少?

单选题 · mid

  • A.0← 正确答案
  • B.1
  • C.2
  • D.0.75

答案:A。四个数之和为 8,均值为 2。每条奖励减去 2 后变为 [0, -1, 1, 0],新数组总和为 0,因此归一化后均值为 0。标准差只改变量纲,不改变均值位置。

Q5. GRPO 中 KL 惩罚的主要作用是什么?

单选题 · mid

  • A.防止新策略偏离旧策略太远← 正确答案
  • B.提升奖励模型的泛化能力
  • C.增大采样多样性
  • D.代替裁剪机制

答案:A。KL 散度度量新旧策略分布的距离,惩罚它本质上是给策略更新套缰绳。它不作用于奖励模型,多样性是采样函数的职责,KL 也不能替代裁剪——二者是双保险,不是替代关系。

Q6. GRPO 中裁剪阈值 ε 设置的过大会导致什么?

单选题 · mid

  • A.单步更新幅度太大← 正确答案
  • B.训练速度一定变快
  • C.KL 损失必然减少
  • D.采样数量自动增加

答案:A。ε 控制概率比率裁剪范围,ε 越大允许更新幅度越大,策略漂移风险越高。它不直接控制 KL,也不会自动改变采样量。

Q7. GRPO 的优势值为什么要在组内除以标准差?

单选题 · mid

  • A.消除不同组之间的尺度差异← 正确答案
  • B.让优势值一定为正数
  • C.让奖励模型更快收敛
  • D.减少采样时的随机噪声

答案:A。除以标准差等价于 Z-score 标准化,能消除不同组的奖励分布尺度差异,让优势值在组间可比。它不保证正负,也与奖励模型收敛无关。

Q8. 关于组内相对比较,下列说法正确的是?

单选题 · hard

  • A.顺带抵消了奖励模型的系统性偏差← 正确答案
  • B.必须要保证各组奖励均值相同
  • C.一定产生一个正优势值成员
  • D.替代了奖励模型的全部功能

答案:A。同一组共享同一奖励模型,若奖励模型有系统性偏差(如偏爱长答案),所有组内成员都受到影响,相对比较时这些偏差互相抵消。组内分数不必一致,也不一定必有正值。

Q9. 下列关于 GRPO 与 PPO 训练成本的比较,正确的是?

单选题 · hard

  • A.GRPO 降低了显存占用← 正确答案
  • B.GRPO 训练速度必定更慢
  • C.PPO 不需要价值模型
  • D.两者显存占用完全相同

答案:A。GRPO 砍掉 Critic 价值模型,省下大量显存,还能提升吞吐。相同批次下 GRPO 通常更快,PPO 必须依赖价值模型,“完全相同”显然错误。

Q10. GRPO 使用哪些机制共同保证策略更新的稳定性?

多选题 · mid

  • A.概率比率裁剪← 正确答案
  • B.组内均值方差归一化← 正确答案
  • C.扩大学习率加速收敛
  • D.KL 散度惩罚← 正确答案

答案:ABD。裁剪(A)限制单步比率幅度,组内归一化(B)稳定优势量纲,KL 惩罚(D)约束累积漂移,三者是 GRPO 的稳定性三支柱。扩大学习率(C)恰恰是破坏稳定性的操作。