SFT(监督微调,见《训练三阶段总览》)要求人写出标准答案——贵、慢、而且受限于写答案的人的水平。 RLHF(用人类反馈做强化学习)换了个问法:给你两个回答,只说哪个更好。 这件事人做得又快又准,而且能表达出那些"写不出标准答案但一看就知道"的东西。
上一章 《强化学习入门》已经把机制讲完了:没有标准答案时, 拿「比平时好多少」当信号去推策略。这一章补上缺的那半块——那个分数从哪来。 人写不出标准答案,但回答「哪个更好」又快又准。
一图看懂 · 三步不是一条线,是一个圈
SFT 像老师手把手写范文:学生照着模仿,但永远超不过范文的水平。
RLHF 像教练看比赛录像点评:教练不亲自打,只说"这一拍好、那一拍不该这么打"。
运动员能从这种反馈里学到教练本人也做不到的东西。
人类判断"哪个好"的能力,远强于"写出最好答案"的能力。
你可以一眼看出"这个翻译更地道",但让你自己翻,可能翻不出那个地道的版本。
RLHF 把监督信号从"答案"降级成"比较"——门槛低了,但信息量没少多少。
这是它能规模化的根本原因。
奖励模型要解决一个看起来很别扭的问题: 偏好是相对的(A 比 B 好),但强化学习需要绝对的分数。
解法叫 Bradley-Terry 模型。它假设每个回答有一个隐藏的奖励分 r(就是奖励模型要学会给的那个数), 而人类选 A 的概率由两个分数之差决定:
互动 · 真实的 Bradley-Terry 损失
一图看懂 · 分数整体平移,损失纹丝不动
两行的 Δ 一模一样,损失就一模一样。奖励模型的分数只有「相对」意义, 而且它只在见过的那些回答上打分可信;策略跑远了,它看到的回答越来越陌生,给的分就越来越不可信—— KL 惩罚就是把策略拴在这个范围附近。
有了奖励,为什么不能直接用"奖励高的就多生成"?因为强化学习有个致命问题: 一步更新太大,策略会崩掉,而且再也回不来。
PPO 的解法是定义一个"新旧策略的概率比",然后把它裁剪到一个小区间里:
把鼠标移到下面那张公式卡里带下划线的符号上——下面那个滑块会亮起来。
A 是优势:这个动作比平均水平好多少。整条公式的精华在那个 min。 拖动下面的滑块,看它到底在保护什么。
互动 · PPO 裁剪目标(真实公式绘制)
看两张图的区别:
A > 0(这个动作是好的):ρ 涨到 1+ε 以上之后,目标函数变平了——
不再为"做得更好"提供额外奖励。好处被封顶。
A < 0(这个动作是坏的):ρ 涨到 1+ε 以上之后,目标函数继续下降——
惩罚没有上限。
所以 PPO 对"变好"很保守,对"变坏"很严厉。
这个不对称不是 bug,是刻意的——它让策略宁可少进步,也不允许一次大跃进把模型带崩。
只有当 ρ 越过它会被裁掉的那条边界(A > 0 时是 1+ε,A < 0 时是 1−ε),这个动作的梯度才是 0——
这个样本在剩下的训练里几乎不再起作用。
这就是为什么 PPO 通常要跑很多轮、需要大量采样。
也是为什么后来大家不断给它做减法——GRPO 只省掉价值网络、裁剪还在,DPO 才把整个 RL 循环拆掉。
A 是什么,《强化学习入门》第 2 节讲过:这个动作比平时好多少。 这里要补的是 GAE(Generalized Advantage Estimation,广义优势估计)怎么算——真实场景里奖励是一步一步到达的,得看长期后果。 先认识三个量:rt 是第 t 步拿到的即时奖励(和第 2 节那个奖励分是同一类数,只是按步拆开); 价值网络 V 估计「从这一步往后,平均还能拿多少分」;γ 是折扣因子,越远的奖励算得越轻。
那个 (γλ)l 就是关键:每往后看一步,权重乘一次 γλ。 λ 决定了"看多远"——λ 小就多信价值网络 V(偏差大、方差小),λ 大就多信真实回报(偏差小、方差大)。
互动 · λ 如何控制"目光的长度"
| λ | 看到了什么 | 偏差 | 方差 |
|---|---|---|---|
| λ = 0 | 只看一步:δt | 最大——完全依赖价值网络 V 猜得准不准 | 最小——只有一个随机量 |
| λ = 0.95 | 看约 17 步 | 较小 | 中等 |
| λ = 1 | 一直看到回合结束 | 最小——几乎不依赖 V | 最大——要累加所有后续随机奖励 |
奖励模型只是人类偏好的代理,它一定有漏洞。 如果策略只顾着把奖励分刷高,它会找到那些漏洞——生成一堆"看起来像高分回答但实际上胡说"的东西。 这个现象叫 reward hacking(奖励黑客)。
互动 · 拖 β,看最优解落在哪
一图看懂 · KL 惩罚是一根橡皮筋
β 就是这根橡皮筋的粗细:太细拉不住(跑进红区),太粗拽死(等于没训)。 图里那条「真实质量」是演示用的假想真值——真实训练里看不到,只能靠人工评测和留出的测试集去估。
β 太小:模型为了刷分严重偏离参考模型 → 胡言乱语、失去多样性(就是你在图右边看到的那一段)。
β 太大:模型不敢动,几乎等于没训。
它没有通用的好值——取决于奖励模型的可靠程度(经验法则:奖励模型越不可靠,β 就要越大)。
常见做法是动态调整 β:在留出的评测集上用人工或更强的模型打分,看什么时候开始掉,就让它稳在那附近。
参考模型自己也会犯错,拴着它有什么用?——拴的不是「对」,是奖励模型还看得懂的范围。
前面几节的公式看着多,其实只有一件事:把人说不清的那个「好」压成一个数 r,再照着这个数去拉模型。 下面这张图就是这件事本身——把「有用」和「无害」画成两条轴,奖励模型只认其中一条方向。
互动 · 奖励模型只看得见一个方向(拖 β,看策略往哪跑)
「这个回答好不好」本来有好几维:有没有用、有没有编、语气是否得体……
可奖励模型最后只吐一个数。
这就像一场考试只考一门:总分排名看着挺像回事,
但学生一定会往那一门上使劲,没被考的那些维度就一路塌下去。
第 5 节那个 reward hacking 红区,在坐标系里就是这个样子。
互动 · 每个符号管图上的哪一块
互动 · 差一点点,怎么就变成了「七成会选它」
| 方法 | 改了什么 | 解决的问题 | 代价 |
|---|---|---|---|
| RLHF-PPO 2017 / 2022 |
偏好数据 → 奖励模型 → PPO | 第一个真正让大模型"听话"的方法 | 要同时装 4 个模型、超参极难调 |
| RLAIF 2022 |
把人类标注换成AI 标注 | 成本降一个数量级,而且能规模化 | 继承了 AI 标注者的偏见 |
| Constitutional AI 2022 |
给模型一部"宪法",让它自己批评、自己修改 | 不需要标注员看有害内容 | 宪法条文的设计本身很敏感 |
| 拒绝采样微调 RFT / ReST |
不用 PPO——生成一批回答,把高分的那批拿去 SFT(RFT / ReST 是这类做法两个常见的名字) | 实现简单、稳定得多,效果常常不输 PPO | 只是模仿,不探索;需要反复迭代 |
| GRPO 2024 |
去掉价值网络,用同一组回答的组内平均当基线(基线 = 比谁好的参照,见《强化学习入门》第 2 节) | 省掉一个模型,显存大降。专门练推理的模型常选它(见《RLVR 与 GRPO》) | 依赖"一组回答"的对比,需要能采样多个 |
| DPO 2023 |
把整个 RL 循环消掉,直接用偏好数据做分类 | 不用奖励模型、不用采样、稳定 | off-policy:用别人(或旧版本自己)产生的回答来学,不是边生成边学,没有在线探索(原文报告效果相当或更好) |
互动 · 零件的代际账本(选一个方法,看还要装几个模型)
从 PPO 到后来的 DPO / GRPO,方向很清楚:每一代都在做减法——DPO 减掉奖励模型、采样和整个 RL 循环,GRPO 减掉价值网络。原因很实在:PPO 效果确实好,但太难用了;能被稳定复现的方法,哪怕理论上限低一点,实践中也更容易赢。那为什么还学 PPO?因为它是一大家子方法的底子——GRPO 等是在它上面改出来的;DPO 则干脆绕开了 RL 循环。
| 问题 | 具体表现 |
|---|---|
| ① 显存要装四个模型 | 策略模型、参考模型、奖励模型、价值模型。 7B 的模型在这样的配置下要 约 250 GB 显存(策略和价值两个要训练,各带优化器状态和高精度副本;参考、奖励是冻结的。 账本见后面《RLVR》那章)。这是 PPO 最大的工程门槛 |
| ② 奖励模型只是代理 | 它学的是"人类会选哪个",不是"哪个真的更好"。 人类标注本身有噪声、有偏见、有一致性问题——标注员之间也常不一致,InstructGPT(OpenAI 2022 年把 RLHF 用到 GPT-3 上的那篇)报告里两两一致率约 73%。 策略会找到并利用这些噪声。 |
| ③ 超参数地狱 | 学习率、KL 系数 β、裁剪 ε、GAE 的 λ、batch 大小…… 任何一个调错都可能导致训练震荡或崩塌,而且症状很晚才显现 |
| ④ 对齐税 | 为了"讨人喜欢",模型会变得更啰嗦、更保守、更爱加免责声明。 在问答、阅读理解这类公开任务上,分数常常反而下降(InstructGPT 原文报过 DROP、SQuAD 两个阅读理解测试集的退步)。 听话买回来了,通用能力却搭进去一部分——这就是「对齐税」。 |
互动 · 对齐税:讨好度和客观能力不在同一条路上
奖励模型的分数涨了,不代表模型变好了。
很多团队都遇到过:训练曲线一路上升,但人工评测发现输出越来越空洞、越来越套路。
这就是 reward hacking 在真实工作中最典型的样子。
所以任何时候都不能只看奖励曲线——必须有人工评测。
这一节把前面七节的所有零件归到一个动作上: 把人说不清的那个「好」,压缩成一个标量分数。 而压缩一定是有损的——被压掉的那些维度,就是后面所有麻烦的来源。
一图看懂 · 进门一大片,出门一个数
回到第 5 节,把 β 从 0.2 拖到 0.005:黄线(代理奖励)还在涨,绿线(真实质量)已经掉头向下——这个分叉就是「压缩有损」。 再回第 2 节,把 r胜、r负 两个滑块一起往上拖:分数一起涨,Bradley-Terry 损失一点不变,它只认差。 被压掉的那几维没人保护,策略就往空子里钻。
六条暗线不占任何一章,但每一章都要回答它们。
| 暗线 | 这一章的回答 |
|---|---|
| A 信息流动 | 一路在变小:提示 + 两个回答 + 人类的选择 → 一个分数 r → 一个优势 A → 一次更新。 而且 r 只有相对意义(Bradley-Terry 只认差),信息掉得比看上去更多 |
| B 什么被牺牲了 | 换来不用写标准答案也能训;牺牲三样:偏好的多维性(压成一个标量)、 直接监督(PPO 样本效率远低于监督学习)、工程简单性(四个模型) |
| C 参数账本 | 最贵的账不在参数量,在模型个数:策略、价值两个要训练(各 ≈ 112 GB), 参考、奖励两个冻结(各约 14 GB),7B 合计 ≈ 252 GB—— 同一个模型只做推理约 14 GB,训练一次对齐是它的十几倍 |
| D 跑在什么上 | 两个瓶颈都在:生成要反复把权重从显存搬一遍,卡在搬数据;PPO 更新是矩阵乘,卡在算力。 RLHF 里生成量远大于更新量,最贵的是完整生成一轮回答。 完整账见 《硬件与算力账本》 |
| E 它假设了什么 | 四条假设都被现实打破过:偏好自洽、奖励模型在参考分布内可靠、「高分 = 更好」、KL 能拴住偏离——
这四条就是这一章的 |
| F 违背了哪个直觉 | 奖励涨了不等于变好:奖励是代理,不是目标,某个点之后就分道扬镳。 第二个:PPO 对「变好」封顶、对「变坏」不封顶,跟「多劳多得」的直觉反着来 |
RLHF = 让人只回答"哪个更好",把这件事变成模型能学的信号。
奖励模型用 Bradley-Terry 把相对偏好转成绝对分数(所以分数只有相对意义);
PPO 用一个悲观的裁剪把每次更新限制住——
对"变好"封顶,对"变坏"不封顶,宁可学得慢也不允许崩;
KL 惩罚是阻止策略钻奖励模型空子的主要手段。
它的问题:要装四个模型、超参极难调、奖励只是代理。
下一章 《DPO 家族》接着拆:把 PPO 的零件一个一个拆掉;更后面的 《RLVR 与 GRPO》也一样。
上面讲的都是「够用」的版本。想往下挖,这里有三个入口—— 它们不是必修内容,是给想再往前走一步的读者准备的。