【RL】REINFORCE Leave-One-Out (RLOO)
REINFORCE Leave-One-Out (RLOO) 基于经典的 REINFORCE 策略梯度方法,通过留一法(Leave-One-Out)构造无偏的优势函数基线。我们基于 GRPO(Group Relative Policy Optimization)算法进行对比说明。GRPO vs RLOO 的主要区别GRPO 和 RLOO 都采用组内对比的方式来估计优势函数,避免了全局基线估计带来的
note
REINFORCE Leave-One-Out (RLOO)

REINFORCE Leave-One-Out (RLOO) 基于经典的 REINFORCE 策略梯度方法,通过留一法(Leave-One-Out)构造无偏的优势函数基线。
我们基于 GRPO(Group Relative Policy Optimization)算法进行对比说明。
GRPO vs RLOO 的主要区别
GRPO 和 RLOO 都采用组内对比的方式来估计优势函数,避免了全局基线估计带来的高方差问题。两者的核心区别主要体现在以下两个方面:
区别1:优势函数基线的构造方法
1. GRPO (Group Relative Policy Optimization)
GRPO 对每个 prompt 生成 G G G 个响应样本,使用组内所有样本的均值和标准差进行标准化:
A ^ i = R i − mean ( { R j } j = 1 G ) std ( { R j } j = 1 G ) \hat{A}_{i} = \frac{R_i - \text{mean}(\{R_j\}_{j=1}^G)}{\text{std}(\{R_j\}_{j=1}^G)} A^i=std({Rj}j=1G)Ri−mean({Rj}j=1G)
其中:
- R i R_i Ri 是第 i i i 个样本的奖励值
- mean ( { R j } j = 1 G ) = 1 G ∑ j = 1 G R j \text{mean}(\{R_j\}_{j=1}^G) = \frac{1}{G}\sum_{j=1}^G R_j mean({Rj}j=1G)=G1∑j=1GRj 是组内均值
- std ( { R j } j = 1 G ) \text{std}(\{R_j\}_{j=1}^G) std({Rj}j=1G) 是组内标准差
2. RLOO (REINFORCE Leave-One-Out)
RLOO 对每个 prompt 生成 K K K 个响应样本,使用 留一法(Leave-One-Out) 构造基线,即第 i i i 个样本的基线为除自己外的其他 K − 1 K-1 K−1 个样本的均值:
A ^ i = R i − 1 K − 1 ∑ j ≠ i R j \hat{A}_{i} = R_i - \frac{1}{K-1}\sum_{j \neq i} R_j A^i=Ri−K−11j=i∑Rj
这个公式可以等价地改写为:
A ^ i = K K − 1 ( R i − R ˉ ) \hat{A}_{i} = \frac{K}{K-1} \left(R_i - \bar{R}\right) A^i=K−1K(Ri−Rˉ)
其中 R ˉ = 1 K ∑ j = 1 K R j \bar{R} = \frac{1}{K}\sum_{j=1}^K R_j Rˉ=K1∑j=1KRj 是组内所有样本的均值。
说明:这里使用 K K K 对齐论文符号,与 GRPO 中的 G G G 含义一致,均对应配置参数
num_generations
为什么使用留一法?
留一法的关键优势在于无偏性。对于第 i i i 个样本,其奖励 R i R_i Ri 和基线 1 K − 1 ∑ j ≠ i R j \frac{1}{K-1}\sum_{j \neq i} R_j K−11∑j=iRj 是独立的,因此优势估计是无偏的。相比之下,如果使用包含自身的均值作为基线,会引入偏差。
区别2:KL 散度正则化项的处理方式
为防止策略偏离参考策略过远,两种算法都引入了 KL 散度正则化,但处理方式不同:
GRPO:将 KL 散度作为独立的正则化项添加到[损失函数]中:
L ( θ ) = − E [ A ^ i log π θ ( a i ∣ s i ) ] + β ⋅ KL ( π θ ∣ ∣ π ref ) \mathcal{L}(\theta) = -\mathbb{E}\left[\hat{A}_i \log \pi_\theta(a_i|s_i)\right] + \beta \cdot \text{KL}(\pi_\theta || \pi_{\text{ref}}) L(θ)=−E[A^ilogπθ(ai∣si)]+β⋅KL(πθ∣∣πref)
RLOO:将 KL 散度直接整合到奖励项中,构造修正后的奖励:
R i ′ = R i − β ⋅ KL ( π θ ∣ ∣ π ref ) R'_i = R_i - \beta \cdot \text{KL}(\pi_\theta || \pi_{\text{ref}}) Ri′=Ri−β⋅KL(πθ∣∣πref)
其中 β \beta β 是 KL 散度的权重系数(对应参数 beta), π ref \pi_{\text{ref}} πref 是参考策略(通常是 SFT 模型或初始策略)。
火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐
所有评论(0)