免强化学习的对齐,与幻觉的病理解剖
这一章讲三件事: DPO 怎么用一条推导链把 RLHF 里的强化学习整个省掉(只剩两个模型 的概率比); SFT 与 RLHF 到底谁治什么病(表 8.1 的对照,它们是先后的两站不是二选一); 以及对齐的头号敌人——幻觉:它长哪六种样子、病根在哪三层、怎么查、怎么治。 主走查: 拿第 08 章那对「农村地价」的正负例,手算一遍 DPO 损失与它的自适应梯度。
1. DPO:五步把强化学习推导没
第 08 章末尾说过,PPO 是可以整个换掉的零件。换它的主流方案叫 DPO(直接偏好优化): 不用训奖励模型、不用跑强化学习,直接拿偏好数据微调模型,复杂度与普通指令微调相当1。 它省掉 RL 不是另起炉灶,而是从 RLHF 的目标函数里推导出来的。原书给了完整的推导链, 我们把五步各自在干什么讲清2:
第 ① 步 写出 RLHF 的目标:最大化「奖励 − β·KL 散度(与参考模型的距离)」
—— 就是第 08 章那套「往高分走、但别跑偏」。
第 ② 步 求它的最优解:这个目标不用迭代试,数学上有闭式解——
最优策略 ∝ 参考模型 × e^(奖励/β)。含义:最优模型就是
「在参考模型基础上,按奖励指数级加权」的那个分布。
第 ③ 步 反解奖励:把上式调个头,奖励 = β·log(最优策略/参考模型) + β·log Z(x)。
Z(x) 是配分函数(把所有候选答案的概率归一化的那个常数,只与问题有关)。
—— 奖励第一次被「两个模型的概率比」表示出来,奖励模型可以下岗了。
第 ④ 步 代入偏好公式:人标注的是「y+ 比 y− 好」,偏好概率 = σ(r₊ − r₋)。
把第 ③ 步的奖励代进去——Z(x) 在分子分母各出现一次,正好相消!
第 ⑤ 步 得到 DPO 损失:只剩
−log σ( β·log[πθ(y+)/π_old(y+)] − β·log[πθ(y−)/π_old(y−)] )
图说:整个式子里只有正在训 练的模型 πθ 和它的初始快照 π_old,
没有奖励模型,没有价值模型,没有采样循环。
读一遍这个损失就懂它在干什么:让正例的概率比(相对原样)尽量变大,负例的概率比尽量变小。 和 RLHF 的对比法裁判(第 08 章式 8.2)形状几乎一样,只是「打分的人」从奖励模型 换成了模型自己与原样的比值3。训练时只需加载策略模型与参考模型两个, 可以从同一个 checkpoint 初始化——比 PPO 的四个模型省了一半4。
2. 主走查:一对正负例,手算 DPO
拿第 08 章那对例子:y+ =「指出『地价便宜就适合污染产业』这个前提有误的回答」, y− =「顺着前提答是的回答」。下面的小数都是为演示编的,不是真实数值, 算法严格按上节第 ⑤ 步的式子:
设 β = 0.1。当前模型与原样对这两个回答的生成概率(演示值):
log[πθ(y+)/π_old(y+)] = log(0.30/0.25) ≈ +0.18 ← 模型比原样更偏爱正例了
log[πθ(y−)/π_old(y−)] = log(0.40/0.20) ≈ +0.69 ← 但它更爱负例!麻烦
代入损失:-log σ( 0.1×0.18 − 0.1×0.69 ) = -log σ(-0.051) ≈ 0.513
更新方向:压低 y− 的概率、抬高 y+ 的概率。
梯度大小:式子里藏着一个自动刹车——梯度系数 = σ(r̂₋ − r̂₊)。
此刻模型错爱 y−(r̂₋ > r̂₊),系数接近 1 → 大步更新,猛修;
设想训练后期模型已经偏爱 y+(比如 r̂₊ − r̂₋ = 5),系数 ≈ σ(-5) ≈ 0.007
→ 几乎不再动 —— 已经学会的东西不再被过调。
图说:错得越离谱,更新越猛;学得越到位,更新越轻。
这个系数就是 DPO 不用 PPO 那套裁剪/KL 也能稳的原因。
3. SFT vs RLHF:先后的两站,各有对方治不了的病
有了 DPO,还要不要 SFT?原书 8.4 节把两条路线摆开对照(表 8.1),结论是它们不是二选一, 而是先后两站5。先看本质区别:SFT 是行为克隆——逐 token 模仿人写的范例, 训练时每个位置都拿标准答案当输入(这叫 teacher forcing);RLHF 是结果反馈—— 不教你怎么写,只告诉你写得好不好,优化的是整段文本层面的对齐损失6。
各自的病,正好被对方治:
| SFT(行为克隆) | RLHF(结果反馈) | |
|---|---|---|
| 长处 | 简单高效、提升泛化、能专业化(定角色) | 进一步提升能力与有用性;能纠正坏行为;标注偏好比写范例简单且一致 |
| 病 | 模仿无探索;teacher forcing 造成暴露偏差(训练时从没见过自己生成的错,生成时一错就连锁);数据超出模型知识范围会加重幻觉 | 样本效率低;训练不稳、超参敏感;必须从强 checkpoint 热启动 |
两个要害判断值得单独记。其一,SFT 是解锁不是注入:拿超出模型知识范围的指令数据硬训, 模型学不会「知道」,只会学会「不懂也敢答」——幻觉就是这么喂出来的; OpenAI 联合创始人 John Schulman(PPO 论文一作)还警告过: 用大模型蒸馏小模型(让小模型模仿大模型的输出)同样可能增加幻觉7。 其二,RLHF 的标注员可以评判自己写不出来的内容——打分比创作容易, 所以模型能探索到范例之外的好答法;GPT-4 正是用 RLHF 来压幻觉的8。 原书末尾还提到 OpenAI 的「超级对齐」研究计划:当模型强过标注员, 「人来指认哪个好」这套机制本身也会失效,那是下一层问题9。
4. 幻觉:六种长相,三层病因
幻觉是模型一本正经地生成不实信息——第 04 章见过这个词,这里是它的病理解剖。 原书把开放域的事实性幻觉分成六类,每类都带真实例子10:
| 类型 | 书里的例子 |
|---|---|
| 实体错误 | 南京长江大桥建成答成 1970 年(实际 1968) |
| 关系错误 | 「海水里氮含量高于氯」;「比尔·盖茨比扎克伯格出生晚」 |
| 不完整 | 四大发明只答出三个,漏了火药 |
| 过时 | 问微软 CEO 答比尔·盖茨(训练数据停在旧年代) |
| 过度断言 | 「维生素 C 能治所有感冒」 |
| 不可验证 | 编造一个听起来像真的一样的书名 |
病因分三层,对应流水线上下游11: