LLM 中 RL 对应的内容
-
LLM 的 Policy:LLM 本身。给定上下文 Prompt,决定生成序列 y 的概率。
-
LLM 的 Action:at,即 t 时刻 LLM 生成的 token(也可以将一个 sequence 或 segment 看作 action)。
-
LLM 的 State:st,即原始 Prompt 与迄今生成的所有 token 的组合:
st=(x,a1:t−1).
-
LLM 的 Transition Dynamics:确定性的,
st+1=concat(st,at).
-
LLM 的 Reward:可以是 token-level、sequence-level 或 segment-level。在 RLHF 中,生成完整序列后,通常由 Reward Model 给出一个标量奖励。
广义优势估计 GAE(Generalized Advantage Estimation)
传统的优势函数估计通常采用单步 TD Error(时序差分误差)或者蒙特卡洛方法来计算回报。GAE 用于减少策略梯度算法中的方差,同时保持较低偏差,从而提高算法的样本效率和收敛速度。
优势函数的定义为
Aπ(st,at)=Qπ(st,at)−Vπ(st).
单步 TD Error 为
δt=rt+γV(st+1)−V(st),
它可以作为优势函数的单步估计。需要注意,δt 并不恒等于真实的 Aπ(st,at);当 V 能准确估计 Vπ 时,它才是较准确的优势估计。
根据多步时序差分的思想:
A^t(1)A^t(2)A^t(3)A^t(k)=δt=−V(st)+rt+γV(st+1),=δt+γδt+1=−V(st)+rt+γrt+1+γ2V(st+2),=δt+γδt+1+γ2δt+2=−V(st)+rt+γrt+1+γ2rt+2+γ3V(st+3), …=i=0∑k−1γiδt+i=−V(st)+rt+γrt+1+⋯+γk−1rt+k−1+γkV(st+k).
上述 A^t(1) 就是在 Actor-Critic 中常用的单步优势函数估计。单步估计通常方差较小,但估计准确度可能不如多步时序差分估计。
GAE 将这些不同步数的优势估计进行指数加权平均:
A^tGAE=(1−λ)(A^t(1)+λA^t(2)+λ2A^t(3)+…)=(1−λ)(δt+λ(δt+γδt+1)+λ2(δt+γδt+1+γ2δt+2)+…)=(1−λ)(δt(1+λ+λ2+…)+γδt+1(λ+λ2+λ3+…)+…)=l=0∑∞(γλ)lδt+l.
其中,λ∈[0,1] 是 GAE 中额外引入的超参数。
当 λ=0 时,只看一步 TD Error:
A^tGAE=δt=rt+γV(st+1)−V(st).
此时通常方差较小,但更加依赖 Critic 对 V(st) 的估计是否准确。
当 λ=1 时:
A^tGAE=l=0∑∞γlδt+l=(l=0∑∞γlrt+l)−V(st).
这等价于 Monte Carlo Return 减去 V(st),通常偏差较小,但方差较大。
在实际的有限长度 response 中,上面的无穷求和会在终止 token 处截断。
Bradley–Terry 模型
通常采用人类偏好数据(Preference Data)训练 Reward Model。
对于两个个体 i,j,假设它们各自有一个正的能力值 Pi,Pj,那么 i 战胜 j 的概率是
P(i>j)=Pi+PjPi.
令模型输出的 reward 分数分别为 ri,rj,并令
Pi=eri,Pj=erj,
则
P(i>j)=eri+erjeri=1+e−(ri−rj)1=σ(ri−rj).
当判断回答 A 优于回答 B 时,通过最大化对数似然,使模型逐渐拉开两个回答的 reward 分差。
对于普通的 pairwise preference data,Reward Model 的 loss 为
LRM(θ)=−E(x,yw,yl)∼D[logσ(rθ(x,yw)−rθ(x,yl))],
其中 yw 是优秀回答,yl 是相对较差的回答。
如果同一个 prompt 有 k 个 response,并使用全部两两比较,那么共有 (2k) 个 response pair。此时可以在同一个 prompt 内对所有 pair 的 loss 取平均:
LRM(θ)=−(2k)1(yw,yl)∑logσ(rθ(x,yw)−rθ(x,yl)).
RLHF + PPO
Actor Model
Actor Model 通常由经过 SFT 的 Base Model 初始化,参数在之后的 PPO 训练中更新。
输入一批 prompts,Actor 输出对应的 responses。随后使用 prompt 和 response 重新计算每个 response token 的 log probability,并计算 PPO loss。
定义 PPO 的概率比率:
ρt(θ)=πold(at∣st)πθ(at∣st).
Actor loss 为
LActor=−Et[min(ρt(θ)A^t,clip(ρt(θ),1−ϵ,1+ϵ)A^t)].
其中:
- πθ 是正在更新的 Actor;
- πold 是生成当前这批 response 时的旧策略;
- A^t 是 token-level 优势估计;
- ϵ 是 PPO 的 clip range,通常取一个较小的值,比如0.2
计算的是 token-level 优势函数,因此每一个有效输出 token 处都会计算 loss。Prompt token 和 padding token 通常会通过 mask 排除。
Reward Model
Reward Model 使用人类偏好数据训练,并在 PPO 阶段保持冻结。它通常对完整的 prompt-response 输出一个标量奖励 r(x,y)。
在 PPO 的 token-level reward 中,一般把这个 sequence-level 分数加到最后一个有效 response token 对应的 reward 上。这里并不是说 Reward Model 只评价最后一个 token,而是把整句回答的分数放在终止位置,后续再通过 GAE 将奖励向前传播。
Reward Model 常在预训练模型或 SFT Model 的基础上添加一个标量 Value Head(或 Reward Head)进行训练。
Reward Model 的训练 loss 为
LReward=−E(x,yw,yl)∼D[log(σ(r(x,yw)−r(x,yl)))].
其中 x,yw,yl 分别表示 prompt、chosen response 和 rejected response。Sigmoid 函数为
σ(z)=1+exp(−z)1.
因此
σ(r(x,yw)−r(x,yl))=exp(r(x,yw))+exp(r(x,yl))exp(r(x,yw)),
最终可以写为
LReward=−E(x,yw,yl)∼D[logexp(r(x,yw))+exp(r(x,yl))exp(r(x,yw))].
Reference Model
Reference Model 通常是参数冻结的 SFT Model,用来产生 token-level 的 KL 约束项,防止训练后的策略偏离 SFT 模型太远。
对应的优化目标为
πmaxEx∼DEy∼π(y∣x)[r(x,y)−βlogπref(y∣x)π(y∣x)].
可以将新的 sequence-level reward 写成
r(x,y)−βKLreward.
因为
logπref(y∣x)π(y∣x)=t=1∑Tlogπref(at∣st)π(at∣st),
所以新的 token-level reward 可以表示成
rt=⎩⎨⎧−βlogπref(at∣st)π(at∣st),r(x,y)−βlogπref(at∣st)π(at∣st),t=T,t=T.
其中 T 表示终止位置,也就是 response 的最后一个有效 token。也可以简写为
r(st,at)=1[t=T]r(x,y)−βlogπref(at∣st)π(at∣st).
更严格地说,单个 token 上的 log-ratio 是对 KL 的采样估计;对策略采样的 action 取期望后才得到 KL divergence。
Critic Model
Critic Model 用于预测状态 st 的期望未来总收益:
Vt=Vϕ(st).
Critic 的初始化方式有很多种,例如与 Actor 共享部分参数,或者从 Reward Model 初始化。Value Head 通常是一个简单的线性层,用于将模型的 hidden state 映射成单一的 value。
如果使用单步 TD target,可以写成
ytTD=rt+γV(st+1),
对应的单步 TD loss 为
LCriticTD=(ytTD−V(st))2.
在 PPO 中,实际更常使用 GAE 计算 advantage,再用
returnst=A^t+Vold(st)
构造 Critic 的训练目标。因此 Critic loss 为
LCritic=Et[(returnst−Vϕ(st))2].
GAE 与 Critic 输出之间的关系可以概括为:
δtA^treturnst=rt+γVold(st+1)−Vold(st),=δt+γλA^t+1,=A^t+Vold(st).
其中:
- Critic 的旧输出 Vold 参与计算 GAE;
- GAE 得到的 A^t 用来训练 Actor;
- A^t+Vold(st) 得到的 returns 用来训练 Critic。
在 RLHF 中,Actor 负责提升模型生成符合人类偏好内容的能力;Reward Model 负责量化完整回答的人类偏好;Critic 则负责预测当前策略下的未来期望回报,为 Actor 的更新提供低方差的优势估计。