English interface selected · this article is currently written in Chinese.
GRPO 怎样比较同题回答:组内优势、零差异与长度权重
English overview →具备清晰骨架、初步数学推导或工程验证,持续补充论据与实测。
数字花园
🌿 什么是数字花园与思想演进?
遵循 Maggie Appleton 与 Andy Matuschak 的常青笔记理念:这里不是按时间沉底的流水账,而是持续修剪打磨的知识生态。文章按成熟度经历:
- 🌱 萌芽 (Seedling): 发散灵感、读书摘录、开放猜想
- 🌿 演进 (Budding): 结构渐明、初步代码推导、积极修正
- 🌳 常青 (Evergreen): 逻辑闭环、持久经得起检验的基石
- 🔬 实验待证 (Speculative): 结合沙盒与仿真探针的理论探索
PPO 篇用价值模型估计前缀之后还能获得多少回报。如果我们不单独训练这个价值模型,而是对同一道题多生成几份回答,能不能直接用它们的得分作比较?
GRPO 的一个核心思路正是这样:同题采样一组回答,用组内奖励构造相对信号。 但“省去价值模型”并不等于“没有额外成本”,也不意味着只要算个平均数,剩下的都是普通监督训练。
本篇先讨论 DeepSeekMath 中使用终局奖励的原始形式,再说明实现选项。所有数值都是教学算例,不是模型训练结果。
一道题,四个回答
沿用求最小整数 n 的任务。同一道题生成四份回答,检查器给出奖励:
组均值是 0.25。第一份回答比平均好 0.75,其余三份各比平均差 0.25。
原始 GRPO 的终局监督形式,还用组内标准差缩放差值。为了把计算说清楚,本节明确使用分母为 G 的总体标准差:
本例 s=√(3/16),约为 0.433013。优势为:
这里的负数不表示检查器给出了负奖励,而是表示相对本组均值偏低。对于终局监督,原始形式把同一回答的这个优势用于其各个生成位置,并非为每个 token 单独验证正确性。DeepSeekMath,第 4.1 节
标准差的约定会改变数字
如果分母采用 G−1,本例标准差是 0.5,优势就变成 (1.5,−0.5,−0.5,−0.5)。符号与排序相同,幅度不同。
所以复现时不能只写“std”三个字。要保存具体实现的自由度约定、极小值稳定项及其位置。上面的数字只对应已声明的总体标准差,没有声称所有库都会生成同一组数。
当 G=1 时,组内没有相对比较;某些样本标准差实现还会产生未定义值。用一个极小常数防止除零,只解决数值问题,不会凭空制造优劣信息。
全对和全错,都可能给出零相对信号
若奖励是 (1,1,1,1),每个奖励减去均值都是零;若奖励是 (0,0,0,0),也一样。直接除以零不可行,工程上可以明确处理零标准差,或在分母加入稳定项。此时这组的任务优势通常仍为零。
但两种组的含义完全不同:全对可能说明当前题目已经容易,全错可能说明题目太难、输出格式失败,或检查器出错。只看到“零标准差比例很高”,无法判断应该加难题还是先修数据。
零任务优势也不保证所有参数完全不更新。如果目标中还有 KL 或其他损失,它们仍可能产生梯度;共享参数也会受到其他组的影响。更不能为了让指标好看,把全错组删掉后只报告保留下来的平均奖励。
需要至少分别记录全对、全错、混合结果和评分失败,并按题型与输出长度切片。
组大小怎样影响出现差异的机会
设某道题每次独立采样通过检查器的概率固定为 p。G 个回答中,同时出现成功和失败的概率是:
当 p=0.2、G=4 时,这个概率为 0.5888。增加到 G=8,约为 0.832225。
这是“组内出现比较差异”的概率,不是单次准确率,也不是多样本最终选择的成功率。模型参数没变,单次成功概率仍是 0.2。
公式还依赖独立同分布假设。重复同一段贪心输出不满足这个条件;采样温度、候选相关性与题目差异也会影响实际结果。
增大 G 通常增加生成与评分成本。在固定总回答数下,它还会减少每批不同题目的数量。因此比较组大小时,不能一边多生成一倍答案,一边把收益全部归因于更好的算法。至少同时报告不同题目数、生成 token 数和评分成本。
除以标准差不只是减少噪声
比较两组奖励:(1,0,0,0) 与 (0.51,0.50,0.50,0.50)。在本节的总体标准差定义下,两组归一化后的优势完全相同;但原始奖励差别相差一百倍。
如果那 0.01 的差异来自评分噪声,归一化可能把它放大到与明显胜负相同的相对幅度。反过来,若奖励单位本来就不同,去除尺度也可能是你想要的行为。关键是明白它改变了组与组之间的权重。
对二元奖励,设一组中成功比例为 q,且 0<q<1。采用总体标准差时:
成功越少,每个成功样本的相对正权重越大;失败越少,每个失败样本的负权重越大。这里 q 是有限组内比例,不是我们已知了题目的真实成功概率。
策略梯度篇已经说明,包含自身的均值与随机标准差不能直接照搬“动作无关 baseline 不改期望”的证明。GRPO 是一个具体代理目标,不应被简化成原始期望奖励梯度的天然无偏版本。
怎样接到 PPO 式更新上
每份回答的每个有效生成位置,仍然可以计算当前策略与旧采样策略的概率比 ρ。把组内优势放进上一篇的裁剪项:
DeepSeekMath 的原始目标还加入参考模型 KL 项,并先对每份回答的 token 求平均,再对回答求平均。它省去单独价值模型,但仍需策略、采样、奖励计算及约束的安排。奖励可以来自学习到的模型,不是只要叫 GRPO 就必须使用规则奖励。
若使用参考项,旧策略与参考模型的区别仍与 PPO 篇相同。原论文还讨论迭代设置,不能假定所有实现的参考模型永远冻结,或每轮都刷新。需要读具体配置和代码。
两种长度平均不是同一个目标
设某组只有两份回答,长度分别为 2、8。为了看清分母,暂不考虑 KL 和裁剪分支变化,把每个 token 的代理贡献当作给定值。
第一种方式,先除以各自长度,再对两份回答平均。短回答每个 token 的权重为 1/4,长回答每个 token 为 1/16。
第二种方式,把所有有效 token 加起来,再除以总数 10。每个 token 的权重都为 1/10。
如果短回答每个 token 贡献为 +1,长回答每个 token 贡献为 −1,则两种聚合分别得到 0 和 −0.6。
这只是聚合算例,不是说目标值为零就意味着梯度为零,也不是从此断言模型必然更长或更短。它证明的是:改分母会改变相对权重,不能当成一个不影响训练意义的代码整理。
使用固定全局常数作分母又是另一种选择。分析时要包括梯度累积、跨设备归约和有效 token mask,不能只看一张卡上的局部批次。
固定版本训练器也未必默认原始形式
TRL 0.23.1 的 GRPOTrainer 文档提供不同的 loss_type,并列出 grpo、dapo、dr_grpo 等聚合方式;该版本文档将默认值列为 dapo。奖励缩放也可以按组、按批次,或关闭标准差缩放。
因此,写实验记录时应保存实际选项,而不是只说“使用 GRPOTrainer”。这些选项名称不等于它们在本任务上已经胜出,本文也没有运行其性能对照。TRL 0.23.1 GRPOTrainer
需要特别区分两种“clipped”:概率比进入裁剪分支,以及回答因为最大长度而被截断。一个属于优化目标,另一个属于生成和任务边界;日志中如果都叫 clipping,应写清单位。
怎样识别没有学到想要的东西
平均奖励上升时,检查是不是更容易的题目占比增加了,评分失败样本被丢弃了,或者模型只学会了格式而没有改善最小值计算。
优势数值看起来稳定时,检查有多少组全对、全错;均值约零本来就是中心化带来的结果,不能当作训练健康的独立证据。还要看有效动作数量、截断比例、熵与独立测试成功率。
多采样也不能掩盖单次表现。训练后如果同预算单次成功率没提升,只是测试时从一次改成了八次,需要分别解释两种变化。
一个能解释差异的实验设计
先固定奖励检查器与题目划分,在小批量上保存完整组结构。不要在排序、分布式收集或过滤后把不同题目的答案混成一组。奖励函数返回顺序必须与回答顺序一致。
第一轮只比较是否按组标准差缩放,其他设置保持不变。报告混合组比例、全对/全错比例、优势幅度、生成成本和独立完整成功率。第二轮再比较长度聚合,避免同时更换分母、组大小和采样温度,以致无法解释收益。
本文的数学检查可以用标准库完成:复算两种标准差、尺度变化、混合组概率和长度权重。正式模型训练对照尚未执行;算例通过只说明这些计算一致。
第一道自检题:为什么全对和全错都可能产生零任务优势,却不能采用相同的数据处理决策?
第二道自检题:把每份回答平均改成全部 token 平均,为什么会改变长短回答的相对权重?请用长度 2 和 8 的例子计算。
下一篇把本卷收束到实验判断:怎样区分采样收益、参数收益、奖励漏洞和独立泛化,避免用一条上升曲线概括“推理能力变强”。
文章概念网络
从章节进入正文概念。实线表示所属层级,虚线连接跨章节重复出现的概念,不代表因果关系。
56 / 56 个节点 · 正文标记术语与关键词概念
GRPO 怎样比较同题回答:组内优势、零差异与长度权重
回到原文 ↗最后更新于 2026-10-23
引用本文
@article{2026-10-23-llm-training-rl-05-grpo,
author = {枫语},
title = {GRPO 怎样比较同题回答:组内优势、零差异与长度权重},
journal = {枫语},
year = {2026},
month = {oct},
url = {https://meiluosi.github.io/posts/2026-10-23-llm-training-rl-05-grpo/}
}