RLOO:用其他回答构造 Baseline#

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

TL;DR#

本页内容7 个部分

RLOO:留一平均与采样梯度

1. 自包含均值的问题#

同题四条回答得分为 [1,1,0,0][1,1,0,0],组均值为 0.50.5。若第一条回答用这个均值作参照,其中就包含了它自己的得分 11。这种参照是否仍满足 baseline 与当前回答独立的条件?

不用 Critic 时,可以用同题回答的平均分作 baseline。但若均值包含当前回答自己的得分,参照就与当前样本相关,不能直接沿用动作无关 baseline 的无偏证明。RLOO 要去掉这层依赖。

2. 每条回答的留一参照#

RLOO(REINFORCE Leave-One-Out)为每条回答单独计算一个参照:只平均其他回答的得分。它不增加一个价值模型,也不改变任务评分;留出当前回答,是为了让参照在给定题目后与当前回答独立。[1]

2.1 逐回答定义留一参照#

固定问题 qq,策略 πθ\pi_\theta 独立采样 K>1K>1 条完整回答 y1,…,yKy_1,\ldots,y_K,评分得到 R1,…,RKR_1,\ldots,R_K。这里先把 R(q,y)R(q,y) 当作不依赖参数的任务奖励。

对第 ii 条回答,只平均其余 K−1K-1 条回答的得分,定义留一参照与更新权重:

b−i=1K−1∑j≠iRj,A^i=Ri−b−i.b_{-i}=\frac{1}{K-1}\sum_{j\ne i}R_j,\qquad \hat A_i=R_i-b_{-i}.

A^i\hat A_i 是本次采样的相对权重,不是精确的价值函数之差。该权重表示当前回答得分与其他独立回答平均分的差。

2.2 四条回答各自的参照与权重#

设任务分数为 [1,1,0,0][1,1,0,0]。这是手算示例。

回答 当前回答分数 其他三条的均值 RLOO 权重
y1y_1 1 1/31/3 2/32/3
y2y_2 1 1/31/3 2/32/3
y3y_3 0 2/32/3 −2/3-2/3
y4y_4 0 2/32/3 −2/3-2/3

第一条的参照是另外三条的平均分 b−1=(1+0+0)/3=1/3b_{-1}=(1+0+0)/3=1/3,所以相对权重为 A^1=1−1/3=2/3\hat A_1=1-1/3=2/3。当前回答的分数未参与其参照值计算。计算所有留一均值时无需反复求和:先求总分 S=∑jRjS=\sum_jR_j,再用 b−i=(S−Ri)/(K−1)b_{-i}=(S-R_i)/(K-1)。这与逐条平均其他回答完全相同,没有改变参照的独立性条件。

3. 独立参照与序列梯度#

3.1 留一权重与梯度估计#

记完整回答的 score 向量为 zi=∇θlog⁡πθ(yi∣q)z_i=\nabla_\theta\log\pi_\theta(y_i\mid q)。四条回答的留一权重为 [2/3,2/3,−2/3,−2/3][2/3,2/3,-2/3,-2/3]。分别乘对应的 score 向量,再对 K=4K=4 条回答取平均,得到 g^=(z1+z2−z3−z4)/6\hat g=(z_1+z_2-z_3-z_4)/6。四个权重相加为零,梯度仍可非零,因为它们乘的是不同的 score 向量。

3.2 序列梯度的逐 token 分解#

令 TiT_i 为回答的有效生成长度,包含终止 token,排除 prompt 和 padding。自回归概率满足 log⁡πθ(yi∣q)=∑t=1Tilog⁡πθ(yi,t∣q,yi,<t)\log\pi_\theta(y_i\mid q)=\sum_{t=1}^{T_i}\log\pi_\theta(y_{i,t}\mid q,y_{i,<t})。因此同一个 A^i\hat A_i 乘在这条回答的所有 token score 上:

g^RLOO=1K∑iA^i∑t=1Ti∇θlog⁡πθ(yi,t∣q,yi,<t).\hat g_{\mathrm{RLOO}}=\frac1K\sum_i\hat A_i\sum_{t=1}^{T_i}\nabla_\theta\log\pi_\theta(y_{i,t}\mid q,y_{i,<t}).

这里对 token 求和,没有自动出现 1/Ti1/T_i。若在每条回答内再除以其有效 token 数 TiT_i,就改变了不等长回答的相对权重;Loss 平均 汇总这些选择。

3.3 留一参照下的梯度无偏性#

因为同题回答独立采样,给定 qq 后 b−ib_{-i} 与 yiy_i 独立;又有 E[zi∣q]=0\mathbb E[z_i\mid q]=0,所以 E[b−izi∣q]=E[b−i∣q]E[zi∣q]=0\mathbb E[b_{-i}z_i\mid q]=\mathbb E[b_{-i}\mid q]\mathbb E[z_i\mid q]=0。

因此,RLOO 的采样梯度为:

g^RLOO=1K∑i=1K(Ri−b−i)zi,E[g^RLOO∣q]=∇θEy∼πθ(⋅∣q)[R(q,y)].\hat g_{\mathrm{RLOO}}=\frac1K\sum_{i=1}^{K}(R_i-b_{-i})z_i,\qquad \mathbb E[\hat g_{\mathrm{RLOO}}\mid q]=\nabla_\theta\mathbb E_{y\sim\pi_\theta(\cdot\mid q)}[R(q,y)].

这个证明依赖同策略独立采样、固定评分和停止 baseline 的梯度。它不保证 RLOO 在所有任务上方差最小;用于计算参照的回答数量较少时,baseline 仍存在采样噪声。[1]

用于 RLHF 时,还可以把完整回答的 reference log-ratio 加入奖励。此时奖励与策略参数有关,必须重新检查求导路径,见 KL Regularization。

基础 RLOO 把完整回答看作一次动作,使用 REINFORCE 式更新。若加入 PPO ratio 和 clipping,可构造复用旧数据的替代目标;这是更新方式的扩展,leave-one-out baseline 的定义不变。[1]

4. 采样与策略更新流程#

每轮固定采样策略,为每题独立生成 KK 条回答并评分。对每条回答,先计算其他回答的平均分作为留一参照,再从自身得分中减去该参照,得到任务权重。更新期间固定这些权重;本批更新结束后重新采样。

5. 留一参照的比较与局限性#

5.1 与自包含组均值比较#

全部分数的均值为 Rˉ=0.5\bar R=0.5。若直接减去组均值,权重为 [0.5,0.5,−0.5,−0.5][0.5,0.5,-0.5,-0.5]。两者满足:

Ri−Rˉ=K−1K(Ri−b−i).R_i-\bar R=\frac{K-1}{K}(R_i-b_{-i}).

所以,只减自包含组均值的估计器,在上述条件下把期望梯度缩小为 (K−1)/K(K-1)/K。RLOO 消除了自包含均值导致的缩放;加入标准差、长度权重或 clipping 后,还要分别分析,不能继续只乘一个常数。

5.2 同题多次采样的成本与信号限制#

与 REINFORCE++ 的全批统计相比,RLOO 的参照来自同一个问题。它能适应题目之间的平均分差异,但需要同题多次生成。若组内全同分,当前组的任务权重仍全为零;留一均值不能为同分组提供额外的得分差异。

参考资料#

  1. Back to Basics(2024,v2). §2.3、§3:RLOO、序列级 REINFORCE 与 RLHF 消融。