ReCo:回答似然与 Token 方差比重加权#

进阶6 分钟阅读查看源文件 ↗

TL;DR#

本页内容7 个部分

ReCo:回答似然与 token 方差比重加权

1. 为什么调整不同回答的梯度权重#

假设模型用不同的推理过程回答同一道题。有一种正确回答经常被采到,另一种正确回答很少出现。直接对采样结果平均时,常见回答会更频繁地参与更新;即使每次出现只计一次,重复样本仍可能贡献较大比例的累计梯度。

普通 GRPO 以提高平均奖励为出发点。使用正确性奖励时,这对应单次答对的概率,也就是 Pass@1。训练可能更多地强化常见的正确回答,而一些低概率正确回答的生成概率下降。ReCo 希望在提高单次正确率的同时,保留多次采样时找到正确回答的机会,包括低成功率问题上的正确回答。[1]

ReCo(Reweighting GRPO Against Distributional Concentration)改变两处梯度权重:(1)按回答似然,给似然较低的回答更大的相对权重;(2)按 token 方差比,调整每个生成位置的梯度系数。 生成回答、评分和计算组内优势的基本流程仍沿用 GRPO。

Pass@kk 表示多次采样中至少一条答对的概率。它是 ReCo 关注的评测指标,不是直接求导的训练目标;ReCo 主动改变不同回答的梯度权重,而不只是提高原有梯度估计的准确性。

2. 怎样给回答分配权重#

2.1 回答越常见,期望出现次数越多#

固定问题 qq,采样策略 πold\pi_{\mathrm{old}} 独立生成 K>1K>1 条回答。若某条完整回答 yy 的概率为 πold(y∣q)\pi_{\mathrm{old}}(y\mid q),它在组中出现的次数 N(y)N(y) 满足:

E[N(y)]=Kπold(y∣q).\mathbb E[N(y)]=K\pi_{\mathrm{old}}(y\mid q).

因此,高概率回答有更多机会进入训练数据。ReCo 据此考虑降低常见回答的相对权重,但实际采用的权重还需要处理回答长度的影响。

2.2 用 token 概率的几何平均计算回答权重#

第 ii 条回答记为 yiy_i,包含 TiT_i 个有效生成 token。

若要抵消重复出现带来的额外梯度权重,可以先考虑期望出现次数的倒数 1/[Kπold(yi∣q)]1/[K\pi_{\mathrm{old}}(y_i\mid q)]。但完整回答概率由各 token 的条件概率相乘得到,长度也会影响这个乘积。直接取倒数,可能把长度造成的概率差异也转成回答权重差异。因此,ReCo 改用各 token 概率的几何平均,近似衡量回答的常见程度:

πˉold(yi∣q)=exp⁡ ⁣(1Ti∑tlog⁡πold(yi,t∣q,yi,<t)),wi=1Kπˉold(yi∣q).\bar\pi_{\mathrm{old}}(y_i\mid q)=\exp\!\left(\frac1{T_i}\sum_t\log\pi_{\mathrm{old}}(y_{i,t}\mid q,y_{i,<t})\right),\qquad w_i=\frac1{K\bar\pi_{\mathrm{old}}(y_i\mid q)}.

其他因子固定时,该回答任务项的梯度贡献与 wiw_i 成正比。wiw_i 由 old 概率和组大小决定,在本批更新中固定。几何平均不是完整回答概率,所以 KπˉoldK\bar\pi_{\mathrm{old}} 也不再是严格的期望次数;这是减少长度影响的实用近似。[1]

2.3 两条回答的权重计算#

手算取 K=4K=4,从这一组中选出甲、乙两条回答比较。假设它们的 token 概率几何平均分别为 0.50.5 和 0.250.25,则:

回答 token 概率几何平均 回答权重 wiw_i
甲 0.50.5 1/(4×0.5)=0.51/(4\times0.5)=0.5
乙 0.250.25 1/(4×0.25)=11/(4\times0.25)=1

乙的回答权重是甲的两倍。 固定相同的优势、token 方差比、裁剪分支和聚合分母时,乙对应任务项的梯度系数也是甲的两倍。这比较的是按几何平均似然计算的权重,不表示乙在采样中恰好只出现甲的一半次数。

3. 怎样调整一个 token 的梯度系数#

3.1 从概率比改为方差比#

正在更新的策略记为 πθ\pi_\theta。对一个已采样 token,设采样策略给它的概率为 0.80.8,当前策略给它的概率为 0.90.9。普通 GRPO 的概率比为 ri,t=0.9/0.8=1.125r_{i,t}=0.9/0.8=1.125。

ReCo 还计入“采到其他 token”的总概率 1−p1-p,改用 p(1−p)p(1-p) 的比值。p(1−p)p(1-p) 是“采到该 token/采到其他 token”这一二值事件的方差,在 p=0.5p=0.5 时最大,在接近 00 或 11 时变小。这里的方差既不是整个词表分布的熵,也不是梯度方差。

记当前位置的采样概率和当前概率为 pi,toldp_{i,t}^{\mathrm{old}}、pi,tθp_{i,t}^{\theta}。当 0<pi,told<10<p_{i,t}^{\mathrm{old}}<1 时,方差比为:

ri,tvar=pi,tθ(1−pi,tθ)pi,told(1−pi,told).r^{\mathrm{var}}_{i,t}=\frac{p_{i,t}^{\theta}(1-p_{i,t}^{\theta})}{p_{i,t}^{\mathrm{old}}(1-p_{i,t}^{\mathrm{old}})}.

本例的方差比为 ri,tvar=0.9×0.1/(0.8×0.2)=0.5625r^{\mathrm{var}}_{i,t}=0.9\times0.1/(0.8\times0.2)=0.5625,是普通概率比 1.1251.125 的一半。ReCo 通过停止部分梯度,让这个方差比成为 log 概率梯度前的系数。[1]

3.2 回答权重与 token 权重合并计算#

取乙回答中的这个 token,回答权重为 wi=1w_i=1。为单独比较权重,设它的组内优势为 A^i=1\hat A_i=1,裁剪宽度为 ϵ=0.2\epsilon=0.2。这些数值均为手算设定,不是实验结果。

ReCo 使用 ReCo 任务项=min⁡(0.5625,0.8)=0.5625\text{ReCo 任务项}=\min(0.5625,0.8)=0.5625,选择未截断分支。因此,省去共同的回答与 token 平均分母后,log 概率梯度的系数为:

未计平均分母的梯度系数=wiA^iri,tvar=1×1×0.5625=0.5625.\text{未计平均分母的梯度系数}=w_i\hat A_i r^{\mathrm{var}}_{i,t}=1\times1\times0.5625=0.5625.

相同条件下,普通 GRPO 使用 GRPO 任务项=min⁡(1.125,1.2)=1.125\text{GRPO 任务项}=\min(1.125,1.2)=1.125,也未截断,梯度系数为 1.1251.125。若甲也有相同的 token 概率和优势,其 ReCo 系数还要乘以回答权重 0.50.5,得到 0.281250.28125。

这组计算分别展示了两处改动:(1)回答权重区分甲与乙;(2)方差比改变每个 token 相对普通 GRPO 的系数。本例中的系数为正,但它描述的是任务梯度,不能据此保证更新后该 token 的实际概率变化。

3.3 当前策略等于采样策略时会怎样#

当当前策略等于采样策略,且 token 概率严格介于 00 与 11 之间时,方差比为 11。因此,低概率 token 不会仅因概率低,在首次更新时就获得更小的 token 权重。方差比比较的是当前概率与采样概率对应的方差,而非只看当前的 p(1−p)p(1-p)。[1]

4. 停止梯度与完整训练目标#

4.1 为什么不能直接对方差比整体求导#

若把 pθ(1−pθ)p^\theta(1-p^\theta) 整体求导,会得到 (1−2pθ)∇pθ(1-2p^\theta)\nabla p^\theta;当 pθ>0.5p^\theta>0.5,额外因子会变为负值。所得梯度就不再是“正权重乘 log 概率梯度”。

因此,构造训练目标时,对第二个因子使用 stop-gradient(停止梯度,记为 sg⁡\operatorname{sg})。它保留当前数值,但反向传播时把其中的输入视为常数:

r~i,t=pi,tθ[1−sg⁡(pi,tθ)]pi,told(1−pi,told),∇θr~i,t=ri,tvar∇θlog⁡pi,tθ.\tilde r_{i,t}=\frac{p_{i,t}^{\theta}[1-\operatorname{sg}(p_{i,t}^{\theta})]}{p_{i,t}^{\mathrm{old}}(1-p_{i,t}^{\mathrm{old}})},\qquad \nabla_\theta\tilde r_{i,t}=r^{\mathrm{var}}_{i,t}\nabla_\theta\log p_{i,t}^{\theta}.

这个表达式的数值仍是方差比,反向传播则用它给 log 概率梯度加权。只复现前向数值而没有停止相应梯度,会得到不同的更新。[1]

4.2 两层权重怎样进入完整目标#

第 ii 条回答的任务分数为 RiR_i。组内优势沿用 A^i=(Ri−Rˉ)/(σR+δ)\hat A_i=(R_i-\bar R)/(\sigma_R+\delta),其中 Rˉ\bar R 和 σR\sigma_R 是组内分数的均值与总体标准差,δ>0\delta>0 防止除零。令 0<ϵ<10<\epsilon<1 为裁剪宽度。先对回答内的 token 平均,再对回答平均,最大化任务目标:

JReCo(θ)=1K∑i1Ti∑twimin⁡ ⁣(r~i,tA^i,clip⁡(r~i,t,1−ϵ,1+ϵ)A^i).J_{\mathrm{ReCo}}(\theta)=\frac1K\sum_i\frac1{T_i}\sum_t w_i\min\!\left(\tilde r_{i,t}\hat A_i,\operatorname{clip}(\tilde r_{i,t},1-\epsilon,1+\epsilon)\hat A_i\right).

更新时最大化上述目标;采样策略、wiw_i 和优势 A^i\hat A_i 固定。ReCo 仍保留 GRPO 基线的 reference KL;上式只展开任务项。[1]

公式中的 1/Ti1/T_i 对一条回答的有效 token 平均,1/K1/K 再对回答平均;手算系数若用于完整目标,还需除以 KTiKT_i。

GSPO 用回答的平均 log-ratio 共享权重和裁剪条件;ReCo 则逐 token 裁剪,并额外使用回答权重与 token 方差比。二者改变的是不同的更新规则。

4.3 策略更新流程#

  1. 用采样策略生成同题多条回答,评分并计算组内优势。
  2. 用采样策略的 token 概率计算回答权重,在本批更新中固定权重和优势。
  3. 重算当前策略的 token 概率,按指定位置停止梯度,构造裁剪任务项,再加入参考 KL 惩罚更新策略。
  4. 本批更新结束后,使用更新后的策略重新采样。

5. 局限性#

回答似然不能识别推理方法是否重复。 两条不同文本可能使用相同的推理方法,几何平均似然无法识别这种关系。因此,回答重加权不等于语义去重,也不精确抵消完整回答的期望出现次数。

两层权重都可能出现小分母。 回答权重的分母包含 token 概率的几何平均,方差比的分母包含 pold(1−pold)p^{\mathrm{old}}(1-p^{\mathrm{old}})。前者接近零,或采样概率接近 00 或 11 时,相应权重可能被放大;实现中的数值保护需分别核对。

重加权不直接保证 Pass@kk 改善。 两层权重改变梯度分配,但没有直接优化 Pass@kk,也不等同于最大化分布熵。需要分别评估单次正确率与多次采样覆盖率,判断这种权重选择是否达到预期目的。

参考资料#

  1. ReCo(2026). §3、§4:两层重加权、停止梯度及评测范围。