GRPO(Grouped Rollout Policy Optimization)作为当前开源推理模型的主流训练方法,其核心思想简单而有效:通过采样多个生成结果,根据最终答案的正确性给予统一的奖励或惩罚。这种方法摆脱了对额外奖励模型或评论家网络的依赖,仅需模型自身的生成结果和二元判断信号即可完成训练。DeepSeek-R1等知名开源推理模型都采用了这一方法作为技术基础。
但GRPO存在一个根本性问题:它对生成文本中的所有token给予完全相同的奖励权重。举例来说,当一个模型用500个token解决数学问题并最终答对时,GRPO会平等地奖励每一个token——无论是第三行那个关键的解题洞见,还是第一行"让我逐步思考"这样的模板化表达。同样地,当一个生成结果最终答案错误时,所有token都会受到相同程度的惩罚,即使前四步的推理完全正确,只是在第五步出现了计算错误。
这种"一刀切"的奖励分配方式造成了严重的信用分配问题。让我们通过一个具体案例来说明:
code复制问题:解方程2x + 3 = 7
生成结果1(正确):
"两边减去3:2x = 4。除以2:x = 2"
生成结果2(正确但方法不同):
"将3移到右边:2x = 7-3=4,所以x=4/2=2"
生成结果3(错误):
"两边减去3:2x = 10。除以2:x = 5"
生成结果4(完全错误的方法):
"所有项除以2:x + 3 = 3.5,所以x=0.5"
在GRPO框架下:
这种处理方式忽略了几个关键信息:
DenseR的核心洞见在于:模型在生成每个token时产生的内部表示(hidden states)包含了丰富的"思考过程"信息。当两个生成结果的推理过程相似时,它们的hidden states也会相似;当推理路径出现分歧时,hidden states会突然变得不同。这种变化点正是我们需要关注的"决策点"。
DenseR的创新性体现在:
DenseR通过以下公式计算每个token的权重:
code复制w_i,t = β·ĉ_i,t + (1-β)
其中:
code复制c_i,t = α_cross·d_cross_i,t + α_within·d_within_i,t
跨类别差异(d_cross):
衡量当前token的hidden state与相反类别(正确/错误)生成结果的差异。以前面的例子来说,比较生成结果1(正确)和生成结果3(错误)的hidden states:
这种差异模式能准确定位错误发生的关键位置。
类内独特性(d_within):
衡量当前token的hidden state与同类其他生成结果的差异。例如:
在实际实现中,有几个关键考虑:
长度对齐问题:
由于生成结果长度可能不同,我们采用窗口对齐策略。具体来说,当比较两个生成结果的第t个token时,会在另一个生成结果的±5个token范围内寻找最佳匹配。例如,对于100token的生成结果中的第50个token,当与80token的生成结果比较时,会搜索第40±5个token的范围(按比例对齐)。
层选择:
实验表明,不同层的hidden states具有不同特性:
因此DenseR默认使用最后一层的hidden states进行计算。
我们在Qwen3-0.6B和4B基础模型上进行了对比实验:
评估基准:
0.6B模型表现:
4B模型表现:
虽然pass@1基本持平,但在更高k值时优势明显:
小模型受益更大:
DenseR对0.6B模型的提升幅度显著大于4B模型,表明它能更有效地从有限模型容量中提取推理能力。
难题优势明显:
在简单任务(如MATH500)上提升适中,但在AIME系列高难度题目上提升显著,说明DenseR特别适合复杂推理任务。
多样性增加:
pass@k的提升幅度大于majority vote,说明DenseR能产生更多样化的正确解法,而不仅仅是提高单一解法的质量。
为了验证DenseR的核心假设(hidden states差异反映推理差异),我们设计了系统性测试:
错误定位能力:
在A↔B比较中(共享前缀直到错误点),hidden states差异能准确定位错误位置:
差异类型区分:
不同比较对的平均差异程度(1-cosine相似度):
| 比较对 | 类型 | 平均差异 | 解释 |
|---|---|---|---|
| A ↔ B | 跨类别 | 0.23 | 差异集中在错误点 |
| A ↔ A_paraphrase | 类内 | 0.55 | 相同推理,不同表达 |
| A ↔ C | 类内 | 0.56 | 不同正确策略 |
| A ↔ D | 跨类别 | 0.57 | 完全错误方法 |
| B ↔ D | 类内 | 0.57 | 不同错误类型 |
关键发现:
窗口大小(比较时考虑的邻近token范围)是一个关键参数:
小窗口(0-2):
大窗口(3-5):
实验表明窗口大小=5在多数情况下取得最佳平衡。
| 方法 | 需要教师模型? | 信号来源 | 信号密度 | 策略类型 |
|---|---|---|---|---|
| 离线蒸馏 | 是 | 大模型token概率 | 密集 | 离线 |
| 在线蒸馏 | 是 | 大模型token概率 | 密集 | 在线 |
| 自蒸馏 | 自引用 | 答案条件下的自身生成 | 密集 | 在线 |
| GRPO | 否 | 答案正确性 | 稀疏 | 在线 |
| DenseR(本文) | 否 | 答案正确性+生成差异 | 密集 | 在线 |
无教师依赖:
不同于蒸馏方法需要更大的教师模型,DenseR完全自给自足,适合前沿模型开发。
真实推理信号:
自蒸馏方法虽然提供密集信号,但本质是"已知答案后解释",而非真实推理过程。
计算高效:
仅增加少量相似度计算开销(hidden states已在正向传播中计算)。
合成数据偏差:
诊断实验使用人工构造的生成结果,与模型实际生成分布可能存在差异。
表面噪声干扰:
当token表面形式差异较大时,hidden states变化可能掩盖真正的推理差异。
层选择敏感:
不同层表现差异大,需要谨慎选择。
在线验证:
在实际训练过程中监控hidden states的信号质量。
噪声抑制:
开发更好的方法来区分表面变化和实质推理差异。
多层融合:
结合不同层的hidden states信息,获得更稳健的信号。
扩展到多模态:
探索在视觉-语言等多模态推理任务中的应用。
基于实际使用经验,提供以下建议:
在实际项目中,我们发现DenseR特别适合那些中间步骤对最终结果有明确影响的任务。对于那些"全对或全错"的任务(如简单分类),传统GRPO可能已经足够。但对于数学证明、程序生成等复杂推理任务,DenseR能带来显著提升。