上一章 · 返回首页 · 内容清单 · 下一章

范围依据:主板书右下角和MId.md明确写到RLHF、RLVR、GRPO。当前详细训练课件未提供,本章是系统预习。原始GRPO参照 DeepSeekMath §4.1,后续实现可能更换归一化、KL和token聚合,考试需以老师指定版本为准。

11.1 为什么还要 RL

SFT要求示范“应该怎么答”;复杂推理中收集完整最优轨迹昂贵,而且示范学习并不直接针对自由生成的最终成功率。RL让模型生成候选、得到评价,再增加高奖励行为的概率。奖励可能是人类偏好模型,也可能是数学答案/代码测试的验证器。

重要区别:next-token CE是局部可微监督,最终执行代码的通过/失败通常无法对token ID直接求普通梯度。策略梯度通过“采到这个行为的概率”获得训练信号,不要求验证器可微。

把LLM当策略:状态s_t=(prompt,y_<t);动作a_t=y_t;策略πθ(a_t|s_t)是词表分布;追加token得到下一状态;EOS/长度上限结束episode。奖励可逐步给,也可只在最终答案给。

11.2 REINFORCE 从期望推出来

先对完整回答y写目标:J(θ)=E_(y~πθ)[R(y)],假设奖励函数本身不直接依赖θ。离散求和并用∇π=π∇logπ:

∇J=∑yR(y)∇πθ(y)=E[R(y)∇log⁡πθ(y)].\nabla J=\sum_y R(y)\nabla\pi_\theta(y) =\mathbb E[R(y)\nabla\log\pi_\theta(y)].

自回归logπ(y|x)=Σ_t logπ(y_t|x,y_<t),所以一条成功轨迹可给多个token训练信号。实际用有限rollout Monte Carlo估计,有方差、信用分配和探索困难。

若写成最小化loss:L=-stopgrad(R) Σlogπ,梯度下降对应增大奖励高的轨迹概率。不能把R直接当成一个可对离散生成全链路backprop的标量loss。

若减一个不依赖当前动作的baseline b(s),E[b(s)∇logπ(a|s)]=b(s)∇Σ_aπ(a|s)=0,可降方差而不改变该条件下的期望梯度。组内样本均值/标准差参与的GRPO估计有自己的偏差/缩放性质,不能不加条件套用这个理想baseline证明。

11.3 Return、value、Q 与 advantage

G_t=Σ_(k≥t) γ^(k-t) r_k是未来折扣回报;Vπ(s)=E[G_t|s];Qπ(s,a)=E[G_t|s,a];Aπ(s,a)=Qπ(s,a)-Vπ(s),表示这个动作比同状态平均行为好多少。

critic估V,用回报或bootstrapped target回归;它不负责直接生成token。LLM上下文中γ常取1或其他配置,但并非定义上必须1。

GAE(用于理解PPO的常见优势估计)先构造TD误差:

δt=rt+γV(st+1)−V(st),A^t=∑l=0T−t−1(γλ)lδt+l.\delta_t=r_t+\gamma V(s_{t+1})-V(s_t),\quad \hat A_t=\sum_{l=0}^{T-t-1}(\gamma\lambda)^l\delta_{t+l}.

λ调偏差/方差折中;episode结束处V终值与长度截断处理要明确。只最终给奖励时,如何传到各token就更依赖估计方法。

11.4 RLHF 三阶段与模型角色

经典流程:①SFT,用人工示范初始化actor;②同prompt采多个回答,收集人类排序/偏好,训练reward model;③用reward加KL约束优化actor(常见PPO)。参考 InstructGPT论文。

二元偏好模型常设:

P(yw≻yl∣x)=σ(rϕ(x,yw)−rϕ(x,yl)),LRM=−log⁡σ(rw−rl).P(y_w\succ y_l|x)=\sigma(r_\phi(x,y_w)-r_\phi(x,y_l)),\quad L_{RM}=-\log\sigma(r_w-r_l).

只依赖分差,给所有同prompt候选同时加常数不改变偏好概率。RM学到标注者偏好近似,不是客观真理;数据偏差、分布外过度自信和reward hacking都会影响actor。

常见四个逻辑角色:

角色是否训练用途
actor/current policy πθ是生成与概率更新
old policy πoldrollout批内固定采样行为分布、importance ratio分母
reference πref通常冻结锚定初始行为,计算KL
critic VψPPO中通常训练估值/优势
reward model rφ或verifier策略阶段通常固定给奖励

这是逻辑角色,不代表每个角色永远物理上独占一套完整GPU权重;实现可共享、缓存logprobs或切换。old常是某次更新前actor快照,ref常是初始SFT快照,两者一般不是同一概念。

11.5 KL 约束为什么存在

仅最大化RM可能学会投机:输出某种高分格式、重复奉承、利用验证漏洞。常用KL正则:

max⁡πEx,y∼π[r(x,y)]−βExDKL(π(⋅∣x)∥πref(⋅∣x)).\max_\pi\mathbb E_{x,y\sim\pi}[r(x,y)]-\beta\mathbb E_xD_{KL}(\pi(\cdot|x)\Vert\pi_{ref}(\cdot|x)).

序列KL可按自回归链式分解为在当前策略前缀分布上的token条件KL期望。β大更保守;β小更允许偏离,但不保证总质量更高。正则是抑制偏离,不是保证绝无reward hacking。

这和蒸馏常用KL(teacher||student)方向不同:这里常见KL(current||reference);必须按各自公式判断。

单个采样token的logπθ(a)-logπref(a)可以为负,只有按正确分布取期望才对应非负KL。另一个常见估计形式,令u=πref(a|s)/πθ(a|s),

k3=u−log⁡u−1≥0.k_3=u-\log u-1\ge0.

若a按当前πθ采样,E[u]=1,其期望等于KL(πθ||πref)。但实际数据常来自πold,多轮更新后πθ不同,要区分“非负单样本表达式”“对哪个采样分布的无偏估计”“实现的梯度估计”三件事。不要把任何旧轨迹上求平均的这个式子都无条件称为精确KL。

11.6 PPO 为什么引入 old policy 与 clipping

on-policy样本昂贵,希望一批rollout能做若干更新,又避免策略漂移过大。token级ratio:

ρt(θ)=πθ(at∣st)πold(at∣st)=exp⁡(log⁡πθ−log⁡πold).\rho_t(\theta)={\pi_\theta(a_t|s_t)\over\pi_{old}(a_t|s_t)} =\exp(\log\pi_\theta-\log\pi_{old}).

常见clipped surrogate最大化:

Jclip=E[min⁡(ρtA^t,clip⁡(ρt,1−ϵ,1+ϵ)A^t)].J_{clip}=\mathbb E[\min(\rho_t\hat A_t, \operatorname{clip}(\rho_t,1-\epsilon,1+\epsilon)\hat A_t)].

old_logp与优势在策略更新中通常detach;当前logp保留梯度。不能detach ratio的分子,也不能每次算分母时把old同步成current,否则ρ始终1失去意义。

两种符号都要会:

  • A>0,增加动作概率有利;ρ超过1+ε后,额外增大不再获该项收益。
  • A<0,降低动作概率有利;ρ低于1-ε后,额外降低不再获该项收益。

另一侧若朝坏方向变化,min会保留惩罚,而不是所有超区间都梯度0。clipping不是强制概率比值永远落在区间内,也不保证理论KL硬上界。PPO原论文。

11.7 RLVR 是奖励来源,不是某一个优化器

可验证奖励常来自数学最终答案匹配、代码单元测试、形式证明检查、结构约束等。比逐条人类偏好更易扩展,能给可重复的反馈。但测试集不完备、答案抽取规则有漏洞、只验结论不验过程,都可能被利用。

最终答案正确不保证过程每步正确;格式正确不等于任务成功。用公开测试做训练奖励后,应保留独立评测,不把训练通过率直接报泛化性能。

RLVR可配PPO、GRPO等;GRPO也可配学到的RM,不天然等于RLVR。RLHF/RLVR讲信号来源,PPO/GRPO讲更新机制。PRM/ORM讲评分粒度,属于又一维度。

11.8 GRPO 为什么不要 critic

同一问题采G个回答,直接比较组内奖励,用组统计代替可学习value baseline。减少独立critic的训练/存储成本,但仍要承担多条rollout、奖励计算、actor更新,可能还有ref推理等成本,绝不是“无额外成本的RL”。

outcome监督的经典形式:

rˉ=1G∑iri,σr=1G∑i(ri−rˉ)2,A^i=ri−rˉσr+ϵstd.\bar r={1\over G}\sum_i r_i,\quad \sigma_r=\sqrt{{1\over G}\sum_i(r_i-\bar r)^2},\quad \hat A_i={r_i-\bar r\over\sigma_r+\epsilon_{std}}.

这里明确采用population std;若题目/库用sample std,则数值会不同。ε_std是除零保护,别与PPO的clip ε混用。一个回答的相同outcome advantage通常用于其全部有效response token;prompt/padding不进入该response目标。

忽略过程奖励变体、写成单问题目标:

J=1G∑i=1G1Ti∑t=1Ti[min⁡(ρi,tA^i,clip⁡(ρi,t,1−ϵc,1+ϵc)A^i)−β ki,t].J={1\over G}\sum_{i=1}^G {1\over T_i}\sum_{t=1}^{T_i} \left[\min(\rho_{i,t}\hat A_i, \operatorname{clip}(\rho_{i,t},1-\epsilon_c,1+\epsilon_c)\hat A_i) -\beta\,k_{i,t}\right].

其中ρ分母是old,k锚定ref。**old、ref、group mean三种“参照物”分别承担不同作用。**真实KL项实现、归一化和是否使用β要按版本核对。这里给的是经典教学目标,不把后来的所有GRPO变体统一成一条式子。

11.9 手算一组奖励和clipping

G=4,r=[1,1,0,0],均值.5、population std .5,A=[1,1,-1,-1]。忽略ε_std,对正确回答提高概率、错误回答降低概率。

若r=[1,1,1,1]或[0,0,0,0],中心化后都为0;该组没有相对奖励学习信号,仍可能有KL等其他项。全错组并不自动指出哪个错误更值得学,全对组也不是绝对停止一切更新。G=1时组内标准化退化,需换估计方式。

clip ε=.2:

AρρAclip(ρ)Amin结果含义
+11.31.31.21.2过度提高的收益被截平
+1.7.7.8.7变差方向仍惩罚
-1.7-.7-.8-.8过度降低的收益被截平
-11.3-1.3-1.2-1.3变差方向仍惩罚

如果要最小化loss,则取策略目标的负号,再加正的KL惩罚;混淆符号会变成奖励错误轨迹。

11.10 一轮 GRPO 的实现顺序

  1. 从题库取prompt batch,并固定rollout policy版本。
  2. 每个prompt采G条回答,保存response tokens、有效长度、old logprobs及必要终止信息。
  3. verifier/RM打分,保留reward各分项;防止答案抽取失败被误记成通过。
  4. 按prompt组计算baseline/std与advantage,detach这些目标统计。
  5. ref对同一组prompt+response求有效token logprobs(若使用ref KL)。
  6. current actor对已采序列做teacher-forced forward,一次得到每个有效response token的logprob。
  7. 使用正确的next-token对齐,形成ρ、clipped policy项、KL和response mask,按指定聚合方式求loss。
  8. backward、clip梯度、optimizer step;允许的更新轮数结束后丢弃或按算法管理旧数据,下一轮重新采样。
  9. 监控reward分布、通过率、组内std为0比例、长度、entropy、KL、clip fraction,以及独立验证题集表现。

训练forward能对给定回答的所有token并行评分,不表示rollout生成未来token也可以无限并行。RL训练常同时需要高吞吐生成服务与反向训练系统,这也是课程vLLM与训练主线的连接。

11.11 长度、难度和标准差是容易被漏掉的细节

经典每回答先除T_i再平均让每条回答总权重相近;所有token相加除总token数则长回答贡献更多。二者目标不同。改归一化会影响长度偏好,不能只说“都是平均”。

二元奖励下,组内std随通过比例变化;除std会改变不同难度组的梯度尺度。组内比较避免只用绝对奖励,但可能抑制全对/全错组的信号。后续方法有不同修正;没有老师材料前不把某一种改法认定为必考标准答案。

reward hacking、过长推理、entropy下降和训练/测试分布差异都需要监控。更长chain-of-thought不等于更好的奖励归因;仅末端奖励无法逐步说明哪一处推理错误。

11.12 DPO 作为关联预习

教学大纲提到DPO,但范围板书未明确点名,故列为关联理解。由带KL奖励优化的最优策略关系,可把奖励差换成policy/ref的log概率比:

LDPO=−log⁡σ(β[log⁡πθ(yw∣x)πref(yw∣x)−log⁡πθ(yl∣x)πref(yl∣x)]).L_{DPO}=-\log\sigma\left(\beta\left[ \log{\pi_\theta(y_w|x)\over\pi_{ref}(y_w|x)}- \log{\pi_\theta(y_l|x)\over\pi_{ref}(y_l|x)}\right]\right).

这里通常是完整回答的logprob和,不要未经说明改为长度平均。经典DPO用已有偏好对直接优化,不需要在训练环内学习独立RM和跑PPO;它仍是偏好优化目标,不是普通“只监督chosen回答”的SFT。DPO原论文。

闭卷终检:不用看本章,画出SFT→RM→PPO的角色关系,再画SFT→verifier→GRPO的关系;用一句话分别解释actor、old、ref、critic、reward、advantage。若还用“旧模型”混指old/ref,继续重学11.4–11.8。


上一章 · 返回首页 · 内容清单 · 下一章

Built with LogoFlowershow