RLHF 与 RLAIF:每个阶段实际修的是什么。
RLHF 不是单一技术;它是一条管线——用 SFT 设定一个能干的底座、从人类偏好训练一个奖励模型,再加一个把策略沿奖励往上推、同时把它拴在底座附近的策略优化步骤(PPO、GRPO 或 DPO)。RLAIF 把人类标注者换成模型评判者,常由一部成文的宪法引导。本文逐阶段走完这条管线,并精确指出每个阶段解决哪个问题——以及不解决哪个。
为何用偏好,而非示范
SFT 能教模型遵循指令,却教不了两个看似合理的答案哪个更好——人类在比较输出上远比在写出理想答案上擅长。RLHF 正是利用这一不对称。你收集成对的 (a, b) 和一个人类标注"a ≻ b";这个信号是相对的、造起来便宜,且覆盖了任何示范语料都难以干净捕捉的行为(有用性、无害性、语气)。RLHF 的任务就是把这种比较信号转化为一个策略。
奖励模型:一个习得的、可被博弈的代理
奖励模型 r_phi 在偏好对上训练,通常用 Bradley–Terry 目标,输出一个标量,使被偏好的补全得分更高。
# Bradley-Terry preference loss loss = -log(sigmoid(r_phi(x, y_win) - r_phi(x, y_lose)))
奖励模型是 RLHF 的心脏,也是它最弱的接缝。它是人类判断的一个习得近似,在有限数据上训练,而策略步骤会无情地针对它优化。凡奖励模型出错之处——分布外、长度偏置、奖励谄媚——策略都会找到并利用那个误差。阶段清晰:奖励模型修的是"我们没有可优化的标量";它不修"这个标量是我们所要之物的忠实代理"。
策略步骤,以及那根 KL 牵绳
有了奖励模型,策略被优化以提升奖励,同时一项 KL 惩罚阻止它偏离 SFT 参考太远。没有这根牵绳,策略会坍缩到奖励模型的伪影上,不再是一个连贯的语言模型。
# RLHF policy objective (PPO-style) objective = E[ r_phi(x, y) ] - beta * KL(pi_theta || pi_ref)
PPO 用一个习得的价值函数和裁剪更新;GRPO 丢掉价值模型,从每个提示采样的一组补全里估计优势——更便宜,如今在智能体 RL 中常见。DPO 是最锋利的捷径:它直接在偏好对上推出一个闭式损失,完全消除了显式奖励模型和采样循环。
# DPO: implicit reward, no separate RM, no rollout loop loss = -log(sigmoid( beta * logratio(y_win) - beta * logratio(y_lose)))
DPO 更简单也更稳定,但把奖励折进了损失——你失去了显式、可检视的奖励模型,以及做在线探索的能力。PPO/GRPO 保留一个你能审计、能红队的独立奖励。这个取舍才是真正的抉择,而非"DPO 更新"。
RLAIF:替换人类标注者,而非管线
人类偏好标注慢、贵、不一致,且是一个隐私面。RLAIF 把标注者换成一个评判哪个补全更好的模型,通常由一部显式成文的宪法引导——一组评判者要应用的原则("偏好对不确定性更诚实的回答")。Constitutional AI 是其典范实例:模型对照宪法批评并修订自己的输出以生成偏好数据,然后在其上跑标准 RLHF。
RLAIF 实际修的是:偏好信号的吞吐与一致性,并把价值判断变成显式、可编辑的文本,而非隐含在一群标注员中。它不修的是:模型评判者与策略有相同的盲点,能被同样地博弈,并继承宪法作者的遗漏。
每个阶段修什么——诚实的账本
- SFT——修"模型根本做不出任务的格式"。设定先验。不修好答案之间的偏好。
- 奖励模型——修"没有可优化的标量"。引入一个新风险:一个可被博弈的代理。
- 策略步骤 + KL——修"在不毁掉模型的前提下把标量变成行为"。不能把一个坏奖励变好。
- RLAIF / 宪法——修"人类标注不可规模化且其价值观是隐含的"。不修评判者与策略之间共享的盲点。
反复出现的失效:把奖励模型分数当作真值。它是个模型。过了某个点,奖励模型分数更高意味着策略在利用奖励模型,而非变得更好。留出策略从不针对其训练的人类(或独立)评测。
何时不要跑完整管线
若你还没把 SFT 和提示用尽,RLHF 就为时过早——它是移动一个指标在运维上最重的方式。若你的偏好数据稀薄或带噪,在一个小而干净的集上做 DPO 胜过在一个坏奖励模型上跑脆弱的 PPO 循环。若你的判断稳定且可写,配一部紧凑宪法的 RLAIF 能以一小部分成本替换大部分人类标注。RLHF 把比较转化为策略;每个阶段都是代理,而管线只能与其中最弱的代理一样诚实。