3.5 ReMax:用 Greedy 作为基线的 REINFORCE(ReMax = REINFORCE + Max)
这一节先快速回顾:**策略梯度(Policy Gradient)**的核心是用"奖励相关的权重"去放大或缩小每一步动作的梯度,从而让高奖励轨迹更可能被复现、低奖励轨迹被抑制。随后再看 PPO 如何在策略梯度的框架上加入稳定训练的约束。最后进入 ReMax :它的目标和 GRPO 类似------不想训练 Critic/Value 网络 ,但又希望把训练稳定性做起来,于是它回到 REINFORCE,并把 baseline 设计成"同一个 prompt 下的 greedy 输出的奖励"。
1. 策略梯度回顾:ψt\psi_tψt 是"更新幅度与方向"的载体
在最一般的策略梯度形式里,我们写成:
g=Eπθ[∑t=0Tψt∇θlogπθ(at∣st)] g=\mathbb{E}{\pi\theta}\left[ \sum_{t=0}^T\psi_t \nabla_\theta \log \pi_\theta(a_t|s_t )\right] g=Eπθ[t=0∑Tψt∇θlogπθ(at∣st)]
- πθ(at∣st)\pi_\theta(a_t|s_t)πθ(at∣st):当前策略在状态 sts_tst 选择动作 ata_tat 的概率。
- ∇θlogπθ(at∣st)\nabla_\theta \log \pi_\theta(a_t|s_t)∇θlogπθ(at∣st):告诉我们"如果要让这个动作更可能发生,参数该往哪个方向更新"。
- ψt\psi_tψt:把奖励信息灌入梯度 的权重项,决定每一步更新的 大小 (幅度)和 正负(方向)。
用 NNN 条采样轨迹来估计期望时:
g=1N∑i=1N∑t=0Tψti∇θlogπθ(ati∣sti) g= \frac{1}{N}\sum_{i=1}^N\sum_{t=0}^T\psi_t^i\nabla_\theta \log \pi_\theta(a_t^i|s_t^i ) g=N1i=1∑Nt=0∑Tψti∇θlogπθ(ati∣sti)
因此关键问题变成:怎么定义/估计 ψt\psi_tψt 才既有效又稳定。
2. Actor-Critic 类方法对 ψt\psi_tψt 的常见选择(从高方差到低方差)
在强化学习里,ψt\psi_tψt 通常与"回报(return)"和"优势(advantage)"相关。常见几种从直观到工程化依次是:
2.1 轨迹总回报(从开头累积到结尾)
∑t′=0Tγt′rt′ \sum_{t' = 0}^{T} \gamma^{t'} r_{t'} t′=0∑Tγt′rt′
这在一些定义里更像从 t=0t=0t=0 统一度量整条轨迹的好坏。
2.2 从时间步 ttt 往后的回报(蒙特卡洛估计)
∑t′=tTγt′−trt′ \sum_{t' = t}^{T} \gamma^{t' - t} r_{t'} t′=t∑Tγt′−trt′
这就是经典 REINFORCE 使用的蒙特卡洛回报。优点是无偏(在采样足够多时),缺点是 方差很大。
2.3 加入基线 b(st)b(s_t)b(st) 的改进:降低方差但不改变期望
∑t′=tTγt′−trt′−b(st) \sum_{t' = t}^{T} \gamma^{t' - t} r_{t'} - b(s_t) t′=t∑Tγt′−trt′−b(st)
当 b(st)b(s_t)b(st) 与 ata_tat 无关时,减去它不会改变期望梯度的方向,但可以显著降低方差。一个常用基线是价值函数 V(st)V(s_t)V(st)。
2.4 用动作价值函数 Qπθ(st,at)Q^{\pi_{\theta}}(s_t, a_t)Qπθ(st,at)
Qπθ(st,at) Q^{\pi_{\theta}}(s_t, a_t) Qπθ(st,at)
它直接衡量"在状态 sts_tst 做动作 ata_tat 之后的期望回报"。但训练/估计 QQQ 往往需要额外网络或复杂技巧。
2.5 用优势函数 Aπθ(st,at)A^{\pi_{\theta}}(s_t, a_t)Aπθ(st,at)
Aπθ(st,at)=Qπθ(st,at)−Vπθ(st) A^{\pi_{\theta}}(s_t, a_t)=Q^{\pi_{\theta}}(s_t, a_t)-V^{\pi_{\theta}}(s_t) Aπθ(st,at)=Qπθ(st,at)−Vπθ(st)
优势函数把"某动作比平均水平好多少"表达得更清晰,很多策略优化方法(包括 PPO)都以它为核心信号。
2.6 一步时序差分(TD)对优势的近似
rt+γVπθ(st+1)−Vπθ(st) r_t + \gamma V^{\pi_{\theta}}(s_{t + 1}) - V^{\pi_{\theta}}(s_t) rt+γVπθ(st+1)−Vπθ(st)
这是对优势的一步估计形式。TD/GAE 等把蒙特卡洛的高方差和模型化估计的偏差做折中。
3. PPO 回顾:本质仍是"用优势指导的策略梯度",但加了稳定约束
PPO 的经典目标(带 clip)是:
argmaxθEs∼νβ,a∼πθk(⋅∣s)[min(πθ(a∣s)πθk(a∣s)Aπθk(s,a),clip(πθ(a∣s)πθk(a∣s),1−ϵ,1+ϵ)Aπθk(s,a))] \arg \max_{\theta} \mathbb{E}{s \sim \nu^{\beta}, a \sim \pi{\theta_k}(\cdot \mid s)} \left[ \min \left( \frac{\pi_{\theta}(a \mid s)}{\pi_{\theta_k}(a \mid s)} A^{\pi_{\theta_k}}(s, a), \text{clip} \left( \frac{\pi_{\theta}(a \mid s)}{\pi_{\theta_k}(a \mid s)}, 1 - \epsilon, 1 + \epsilon \right) A^{\pi_{\theta_k}}(s, a) \right) \right] argθmaxEs∼νβ,a∼πθk(⋅∣s)[min(πθk(a∣s)πθ(a∣s)Aπθk(s,a),clip(πθk(a∣s)πθ(a∣s),1−ϵ,1+ϵ)Aπθk(s,a))]
其中:
- θk\theta_kθk 是旧策略参数,θ\thetaθ 是要更新到的新策略参数。
- 比率项 πθ(a∣s)πθk(a∣s)\frac{\pi_{\theta}(a \mid s)}{\pi_{\theta_k}(a \mid s)}πθk(a∣s)πθ(a∣s) 衡量新旧策略对同一动作的相对偏好。
- clip(⋅)\text{clip}(\cdot)clip(⋅) 限制更新幅度,避免策略一步走太远导致训练崩溃。
- Aπθk(s,a)A^{\pi_{\theta_k}}(s,a)Aπθk(s,a) 是优势,决定动作要被鼓励还是抑制。
如果抽掉实现细节,只看"驱动更新的核心",PPO 仍然是在做"优势加权的策略更新"。可以把它理解为:
argmaxθEs,a∼πθ[πθ(a∣s) Advπθ(s,a)] \arg \max_{\theta} \mathbb{E}{s , a \sim \pi{\theta}} \left[ {\pi_{\theta}(a \mid s)} \, Adv^{\pi_{\theta}}(s, a) \right] argθmaxEs,a∼πθ[πθ(a∣s)Advπθ(s,a)]
这里写成 π\piπ 还是 logπ\log \pilogπ 只是不同的推导与实现视角,本质都在用 优势/回报信号调制梯度,把策略往"更高回报"的方向推。
4. ReMax:回到 REINFORCE,但把 baseline 设为 Greedy 输出的奖励
4.1 为什么要 ReMax:去掉 Critic,但又不想训练炸掉
在大模型对齐/强化学习里,训练 Critic(价值网络)会带来额外的模型、算力、工程成本,且 Critic 本身也可能不稳定。ReMax 的目标很明确:
- 不训练 Critic
- 仍然用策略梯度优化
- 通过一个简单但强力的 baseline 设计,显著降低方差、提升稳定性
它的口号是:
ReMax = REINFORCE + Max \text{ReMax = REINFORCE + Max} ReMax = REINFORCE + Max
其中 "Max" 指的是用 greedy(argmax)解码得到的输出作为 baseline 的构造方式。
4.2 从 REINFORCE 到 LLM 场景:只有终止时刻有奖励
经典 REINFORCE 的梯度估计是用蒙特卡洛回报:
g=1N∑i=1N∑t=0T(∑t′=tTγt′−trt′i)∇θlogπθ(ati∣sti) g= \frac{1}{N}\sum_{i=1}^N\sum_{t=0}^T \left(\sum_{t' = t}^{T} \gamma^{t' - t} r_{t'}^i\right)\nabla_\theta \log \pi_\theta(a_t^i|s_t^i ) g=N1i=1∑Nt=0∑T(t′=t∑Tγt′−trt′i)∇θlogπθ(ati∣sti)
但在大模型生成任务中,一个常见设定是:
- 对一个 prompt xxx,模型生成一个完整 response y=[a1,...,aT]y=[a_1,\dots,a_T]y=[a1,...,aT]
- 只有生成结束后 (例如遇到 EOS)才给整体奖励 r(x,y)r(x,y)r(x,y)
- 中间 token 的即时奖励视为 000
因此对任意 ttt,从 ttt 往后的回报就等于同一个 r(x,y)r(x,y)r(x,y)(因为中间奖励为 0,最终奖励代表整句质量)。于是 REINFORCE 在 LLM 场景可以写成:
g=1N∑i=1N∑t=0Tr(xi,yi)∇θlogπθ(ati∣[xi,a1:t−1i])=1N∑i=1N∑t=0Tr(xi,a1:Ti)∇θlogπθ(ati∣[xi,a1:t−1i]) \begin{aligned} g= \frac{1}{N}\sum_{i=1}^N\sum_{t=0}^T r(x^i,y^i)\nabla_\theta \log \pi_\theta(a_t^i|[x^i, a^i_{1:t-1}] )\\ =\frac{1}{N}\sum_{i=1}^N\sum_{t=0}^T r(x^i,a^i_{1:T})\nabla_\theta \log \pi_\theta(a_t^i|[x^i, a^i_{1:t-1}] ) \end{aligned} g=N1i=1∑Nt=0∑Tr(xi,yi)∇θlogπθ(ati∣[xi,a1:t−1i])=N1i=1∑Nt=0∑Tr(xi,a1:Ti)∇θlogπθ(ati∣[xi,a1:t−1i])
符号解释:
- xix^ixi:第 iii 个 prompt。
- yi=[a1i,...,aTi]y^i=[a^i_1,\dots,a^i_T]yi=[a1i,...,aTi]:第 iii 条采样 response。
- atia_t^iati:第 iii 条 response 的第 ttt 个 token(动作)。
- 状态 sts_tst 就是 [xi,a1:t−1i][x^i, a^i_{1:t-1}][xi,a1:t−1i](prompt 拼上历史 token)。
关键问题 :r(x,y)r(x,y)r(x,y) 的随机性非常大,尤其当采样策略为了探索采用 top-p 等随机解码时,不同 yyy 的质量差异会拉得很开,从而导致梯度估计方差巨大。
4.3 ReMax 的核心:用 Greedy 输出的奖励作为 baseline
REINFORCE 的经典降方差方式是减去 baseline:
g=1N∑i=1N∑t=0T(r(xi,a1:Ti)−bθ(xi))∇θlogπθ(ati∣[xi,a1:t−1i]) g=\frac{1}{N}\sum_{i=1}^N\sum_{t=0}^T\left(r(x^i,a^i_{1:T})-b_\theta(x^i)\right) \nabla_\theta \log \pi_\theta(a_t^i|[x^i, a^i_{1:t-1}] ) g=N1i=1∑Nt=0∑T(r(xi,a1:Ti)−bθ(xi))∇θlogπθ(ati∣[xi,a1:t−1i])
ReMax 选择的 baseline 是:
bθ(xi)=r(xi,aˉ1:Ti),aˉti∈argmaxπθ(⋅∣xi,aˉ1:t−1i) b_{\theta}(x^{i}) = r(x^{i},\bar{a}{1:T}^{i}), \quad \bar{a}{t}^{i} \in \operatorname{argmax} \pi_{\theta}(\cdot|x^{i},\bar{a}_{1:t - 1}^{i}) bθ(xi)=r(xi,aˉ1:Ti),aˉti∈argmaxπθ(⋅∣xi,aˉ1:t−1i)
也就是说:
- 对同一个 prompt xix^ixi,用当前策略 πθ\pi_\thetaπθ 做 greedy 解码 (每步取概率最大 token),得到确定性的序列 aˉ1:Ti\bar{a}_{1:T}^iaˉ1:Ti
- 用它的奖励 r(xi,aˉ1:Ti)r(x^i,\bar{a}_{1:T}^i)r(xi,aˉ1:Ti) 作为 baseline
- 对采样得到的 yiy^iyi,计算"相对 greedy 的优势":
r(xi,yi)−r(xi,yˉi) r(x^i,y^i) - r(x^i,\bar{y}^i) r(xi,yi)−r(xi,yˉi)
这一步把更新信号从"绝对奖励"变成"相对 greedy 的改进幅度"。
4.4 为什么 greedy baseline 能降方差:把"大波动"对齐到一个稳定参照
直觉上,在 on-policy 训练里常用随机采样(例如 top-p)来增强探索。此时同一 prompt 的多个 response 可能质量差异很大:
- 有的采样碰巧非常好
- 有的采样偏离很远,质量很差
如果直接用 r(x,y)r(x,y)r(x,y) 作为权重,梯度会出现强烈的随机波动。
ReMax 的做法是给每个 prompt 配一个 确定的参照输出(greedy),并用它的奖励作为 baseline。这样每条采样输出只需要回答一个问题:
"我比 greedy 更好吗?好多少?还是更差?"
这会把更新信号集中到"局部改进"上,显著降低梯度的方差。
4.5 一个具体案例:用数字化奖励看 ReMax 的更新方向
假设 prompt 是:
"用一句话总结这篇文章的贡献,并保持中立口吻。"
对同一个 prompt:
- greedy 输出 yˉ\bar{y}yˉ 的奖励(由 RM 或规则/评测器给出)为 r(x,yˉ)=0.62r(x,\bar{y})=0.62r(x,yˉ)=0.62
- 随机采样得到三条 response:
- y1y_1y1:写得更清晰,奖励 r(x,y1)=0.78r(x,y_1)=0.78r(x,y1)=0.78
- y2y_2y2:略偏题,奖励 r(x,y2)=0.55r(x,y_2)=0.55r(x,y2)=0.55
- y3y_3y3:胡乱扩写,奖励 r(x,y3)=0.20r(x,y_3)=0.20r(x,y3)=0.20
那么 ReMax 的"相对优势"是:
- y1y_1y1:0.78−0.62=+0.160.78-0.62=+0.160.78−0.62=+0.16(正向强化 y1y_1y1 轨迹上的每个 token)
- y2y_2y2:0.55−0.62=−0.070.55-0.62=-0.070.55−0.62=−0.07(抑制 y2y_2y2 轨迹)
- y3y_3y3:0.20−0.62=−0.420.20-0.62=-0.420.20−0.62=−0.42(强烈抑制 y3y_3y3)
这比直接用绝对奖励更稳定:因为同一个 prompt 下,greedy 作为参照把尺度"钉住"了,训练信号更像"围绕当前策略的局部微调"。
4.6 ReMax 的关键假设与适用条件
ReMax 能有效的隐含前提是:
-
greedy 输出的质量具有一定稳定性
如果模型已经经过一定 SFT 或基础对齐,greedy 输出往往不会离谱,奖励波动较小,适合作为 baseline。
-
采样输出与 greedy 输出差异不是完全随机
采样带来的探索能偶尔超过 greedy,形成正优势样本,从而驱动策略提升。
-
奖励函数对 greedy 与采样差异敏感且可比较
如果奖励太噪或不可比较,baseline 也难以稳定训练。
当模型尚未具备基本能力、greedy 本身极不可靠时,用它当 baseline 可能会让"参照点"本身漂移很大,从而降低收益。
RLOO:REINFORCE + Leave-One-Out baseline(用同 prompt 的其他采样均值做基线)
理解了 ReMax 后,RLOO 会更直观:它同样不训练 Critic,也不需要额外价值网络,但 baseline 的构造方式不同。
1. RLOO 的 baseline:同 prompt 下"除了自己以外"的均值
对同一个 prompt xix^ixi,采样 MMM 条 response:y1i,...,yMiy_1^i,\dots,y_M^iy1i,...,yMi。对其中第 jjj 条,RLOO 定义 baseline 为:
bθ(xi,yji)=1M−1∑k≠jr(xi,yki) b_{\theta}(x^{i},y^i_j) = \frac{1}{M-1}\sum_{k\neq j}r(x^i,y^i_k) bθ(xi,yji)=M−11k=j∑r(xi,yki)
也就是"留一法":用同组里其它样本的平均奖励作为基线。
于是对第 jjj 条样本的优势是:
r(xi,yji)−1M−1∑k≠jr(xi,yki) r(x^i,y^i_j)-\frac{1}{M-1}\sum_{k\neq j}r(x^i,y^i_k) r(xi,yji)−M−11k=j∑r(xi,yki)
这会把每条样本的更新信号转成"相对同组均值的偏离"。
2. RLOO 的整体策略梯度形式
对 NNN 个 prompt,每个 prompt 采样 MMM 条 response,RLOO 的梯度估计写为:
g=1N∑i=1N1M∑j=1M[(r(xi,yji)−1M−1∑k≠jr(xi,yki))∇θlogπθ(yji∣xi)] g=\frac{1}{N}\sum_{i=1}^N\frac{1}{M}\sum_{j=1}^M \left[ \left(r(x^i,y^i_j)-\frac{1}{M-1}\sum_{k\neq j}r(x^i,y^i_k)\right) \nabla_\theta \log \pi_\theta(y^i_j|x^i) \right] g=N1i=1∑NM1j=1∑M r(xi,yji)−M−11k=j∑r(xi,yki) ∇θlogπθ(yji∣xi)
其中 logπθ(y∣x)\log \pi_\theta(y|x)logπθ(y∣x) 表示整段序列概率的对数(等价于对每个 token 的 log-prob 求和),它对应把"整句奖励信号"分配到生成过程中的每一步更新上。
3. 一个具体案例:RLOO 如何构造优势(对比 ReMax)
仍然是同一个 prompt,假设一次采样 M=4M=4M=4,四条 response 的奖励为:
- r1=0.78r_1=0.78r1=0.78
- r2=0.55r_2=0.55r2=0.55
- r3=0.20r_3=0.20r3=0.20
- r4=0.62r_4=0.62r4=0.62
那么对每条样本的 baseline 是"其它三条的均值":
- 对 y1y_1y1:
b1=0.55+0.20+0.623=0.4567,A1=0.78−0.4567=+0.3233 b_1=\frac{0.55+0.20+0.62}{3}=0.4567,\quad A_1=0.78-0.4567=+0.3233 b1=30.55+0.20+0.62=0.4567,A1=0.78−0.4567=+0.3233 - 对 y2y_2y2:
b2=0.78+0.20+0.623=0.5333,A2=0.55−0.5333=+0.0167 b_2=\frac{0.78+0.20+0.62}{3}=0.5333,\quad A_2=0.55-0.5333=+0.0167 b2=30.78+0.20+0.62=0.5333,A2=0.55−0.5333=+0.0167 - 对 y3y_3y3:
b3=0.78+0.55+0.623=0.6500,A3=0.20−0.6500=−0.4500 b_3=\frac{0.78+0.55+0.62}{3}=0.6500,\quad A_3=0.20-0.6500=-0.4500 b3=30.78+0.55+0.62=0.6500,A3=0.20−0.6500=−0.4500 - 对 y4y_4y4:
b4=0.78+0.55+0.203=0.5100,A4=0.62−0.5100=+0.1100 b_4=\frac{0.78+0.55+0.20}{3}=0.5100,\quad A_4=0.62-0.5100=+0.1100 b4=30.78+0.55+0.20=0.5100,A4=0.62−0.5100=+0.1100
可以看到:
- RLOO 把"同组里明显更好"的样本 y1y_1y1 强烈推高(大正优势)
- 把明显更差的 y3y_3y3 强烈压低(大负优势)
- 对接近均值的样本(如 y2y_2y2)只给很小的更新(优势接近 0)
这是一种组内相对化的方差控制方式:不依赖 greedy 参照点,而是依赖"同一 prompt 下的采样群体"。
ReMax vs RLOO:两种 baseline 的差异与直觉总结
1. baseline 来源不同
- ReMax :baseline 来自 greedy 解码 的确定性输出
b(x)=r(x,yˉgreedy) b(x)=r(x,\bar{y}_{\text{greedy}}) b(x)=r(x,yˉgreedy) - RLOO :baseline 来自 同组其它采样输出的均值
b(x,yj)=1M−1∑k≠jr(x,yk) b(x,y_j)=\frac{1}{M-1}\sum_{k\neq j}r(x,y_k) b(x,yj)=M−11k=j∑r(x,yk)
2. 训练信号"参照点"的性质不同
- ReMax 的参照点更稳定(greedy 通常确定),但依赖 greedy 输出质量
- RLOO 的参照点是群体统计量,不依赖 greedy,但需要同 prompt 下采样足够多,且奖励可比较
3. 更新信号的解释方式
- ReMax:"我比 greedy 好多少"
- RLOO:"我比同组平均好多少"
小结:为什么这些方法都在"折腾 baseline"
在 LLM 的 REINFORCE 风格优化中,核心难点不是写出梯度公式,而是让它在工程上稳定:
- LLM 的 action 是 token,序列很长,随机性累积导致方差巨大
- 奖励往往只在结尾给一个标量 r(x,y)r(x,y)r(x,y),把它传播到每一步会放大波动
- baseline 的设计决定了训练信号是"绝对好坏"还是"相对改进",直接影响稳定性与收敛速度
ReMax 和 RLOO 都遵循同一个原则:
不改变期望梯度的方向,但通过更好的 baseline 设计显著降低方差,从而在不训练 Critic 的情况下依然能做有效的策略优化。