阶段 5 · 大模型怎么炼成

RLHF:人类不写标准答案
只回答"哪个更好"

SFT(监督微调,见《训练三阶段总览》)要求人写出标准答案——贵、慢、而且受限于写答案的人的水平。 RLHF(用人类反馈做强化学习)换了个问法:给你两个回答,只说哪个更好。 这件事人做得又快又准,而且能表达出那些"写不出标准答案但一看就知道"的东西。

1

三步:偏好→奖励模型→强化学习

上一章 《强化学习入门》已经把机制讲完了:没有标准答案时, 拿「比平时好多少」当信号去推策略。这一章补上缺的那半块——那个分数从哪来。 人写不出标准答案,但回答「哪个更好」又快又准。

① 收集人类偏好数据 给标注员(花钱请来打标签的人)同一个问题下的两个回答,让他选「哪个更好」。 不需要写任何答案——只需要判断。
② 训练奖励模型 RM 用一个模型学会"预测人类会选哪个"。训完之后,它就能给任意回答打一个分。
③ 用 PPO(近端策略优化)优化策略模型 让模型自己生成回答,奖励模型给它打分,用这个分数当信号去做强化学习。 同时加一个 KL 惩罚(KL 是量两个模型的回答习惯差多远的数,0 = 一模一样),防止它跑太远。

一图看懂 · 三步不是一条线,是一个圈

离线 · 训练开始前一次做好 ① 收集人类偏好 同一个问题,人选出更好的那条 ② 训奖励模型 学会预测人类会选谁 在线 · 训练时边生成边学,反复循环 ③-1 策略生成两个回答 同一个问题,采样两条 ③-2 奖励模型打分 给两条回答各一个分数 ③-3 PPO 更新 拿分数当信号,加 KL 惩罚 上半只做一次;③ 这个圈每转一圈,策略就更贴近人类的选择
🎯 类比

SFT 像老师手把手写范文:学生照着模仿,但永远超不过范文的水平。
RLHF 像教练看比赛录像点评:教练不亲自打,只说"这一拍好、那一拍不该这么打"。 运动员能从这种反馈里学到教练本人也做不到的东西。

💡 这个设计的精妙之处

人类判断"哪个好"的能力,远强于"写出最好答案"的能力。
你可以一眼看出"这个翻译更地道",但让你自己翻,可能翻不出那个地道的版本。
RLHF 把监督信号从"答案"降级成"比较"——门槛低了,但信息量没少多少。 这是它能规模化的根本原因。

2

奖励模型:把偏好变成分数

奖励模型要解决一个看起来很别扭的问题: 偏好是相对的(A 比 B 好),但强化学习需要绝对的分数。

解法叫 Bradley-Terry 模型。它假设每个回答有一个隐藏的奖励分 r(就是奖励模型要学会给的那个数), 而人类选 A 的概率由两个分数之差决定:

P(人类选 A) = σ( rA − rB )  σ 是 sigmoid
损失 = −log σ( r胜 − r负 )

互动 · 真实的 Bradley-Terry 损失

一图看懂 · 分数整体平移,损失纹丝不动

r负 r胜 差 Δ r负 + 100 r胜 + 100 差 Δ 一样

两行的 Δ 一模一样,损失就一模一样。奖励模型的分数只有「相对」意义, 而且它只在见过的那些回答上打分可信;策略跑远了,它看到的回答越来越陌生,给的分就越来越不可信—— KL 惩罚就是把策略拴在这个范围附近。

3

PPO:把更新幅度裁剪住

有了奖励,为什么不能直接用"奖励高的就多生成"?因为强化学习有个致命问题: 一步更新太大,策略会崩掉,而且再也回不来。

PPO 的解法是定义一个"新旧策略的概率比",然后把它裁剪到一个小区间里:

比值 ρ = π新(a|s) / π旧(a|s)  (这一步比上一步更可能这么做吗?)

LCLIP = min( ρ · A , clip(ρ, 1−ε, 1+ε) · A )

把鼠标移到下面那张公式卡里带下划线的符号上——下面那个滑块会亮起来。

A 是优势:这个动作比平均水平好多少。整条公式的精华在那个 min。 拖动下面的滑块,看它到底在保护什么。

互动 · PPO 裁剪目标(真实公式绘制)

💡 这个设计是"悲观"的

看两张图的区别:
A > 0(这个动作是好的):ρ 涨到 1+ε 以上之后,目标函数变平了—— 不再为"做得更好"提供额外奖励。好处被封顶。
A < 0(这个动作是坏的):ρ 涨到 1+ε 以上之后,目标函数继续下降—— 惩罚没有上限。
所以 PPO 对"变好"很保守,对"变坏"很严厉。 这个不对称不是 bug,是刻意的——它让策略宁可少进步,也不允许一次大跃进把模型带崩。

⚠️ 但也正因如此,PPO 学得慢

只有当 ρ 越过它会被裁掉的那条边界(A > 0 时是 1+ε,A < 0 时是 1−ε),这个动作的梯度才是 0—— 这个样本在剩下的训练里几乎不再起作用。
这就是为什么 PPO 通常要跑很多轮、需要大量采样。 也是为什么后来大家不断给它做减法——GRPO 只省掉价值网络、裁剪还在,DPO 才把整个 RL 循环拆掉。

4

GAE:优势 A 怎么算出来

A 是什么,《强化学习入门》第 2 节讲过:这个动作比平时好多少。 这里要补的是 GAE(Generalized Advantage Estimation,广义优势估计)怎么算——真实场景里奖励是一步一步到达的,得看长期后果。 先认识三个量:rt 是第 t 步拿到的即时奖励(和第 2 节那个奖励分是同一类数,只是按步拆开); 价值网络 V 估计「从这一步往后,平均还能拿多少分」;γ 是折扣因子,越远的奖励算得越轻。

δt = rt + γV(st+1) − V(st)  (一步的优势估计)

AGAEt = Σl≥0 (γλ)l δt+l

那个 (γλ)l 就是关键:每往后看一步,权重乘一次 γλ。 λ 决定了"看多远"——λ 小就多信价值网络 V(偏差大、方差小),λ 大就多信真实回报(偏差小、方差大)。

互动 · λ 如何控制"目光的长度"

λ看到了什么偏差方差
λ = 0只看一步:δt 最大——完全依赖价值网络 V 猜得准不准 最小——只有一个随机量
λ = 0.95看约 17 步 较小中等
λ = 1一直看到回合结束 最小——几乎不依赖 V 最大——要累加所有后续随机奖励
5

KL 惩罚:不让它钻空子

奖励模型只是人类偏好的代理,它一定有漏洞。 如果策略只顾着把奖励分刷高,它会找到那些漏洞——生成一堆"看起来像高分回答但实际上胡说"的东西。 这个现象叫 reward hacking(奖励黑客)。

目标 = E[ r(x, y) ] − β · KL( π ‖ πref )
左边是"拿高分",右边是"别偏离原来那个模型太远"; E[·] = 对很多回答取平均,‖ 读作「相对于」,KL 就是第 1 节那个「回答习惯差多远」的数

互动 · 拖 β,看最优解落在哪

一图看懂 · KL 惩罚是一根橡皮筋

参考模型 π_ref 钉在原地 策略 π 想往分数高的地方跑 橡皮筋的劲 = β · KL 拉得越远,拽回来的力越大

β 就是这根橡皮筋的粗细:太细拉不住(跑进红区),太粗拽死(等于没训)。 图里那条「真实质量」是演示用的假想真值——真实训练里看不到,只能靠人工评测和留出的测试集去估。

⚠️ β 是最难调的超参数之一

β 太小:模型为了刷分严重偏离参考模型 → 胡言乱语、失去多样性(就是你在图右边看到的那一段)。
β 太大:模型不敢动,几乎等于没训。
它没有通用的好值——取决于奖励模型的可靠程度(经验法则:奖励模型越不可靠,β 就要越大)。
常见做法是动态调整 β:在留出的评测集上用人工或更强的模型打分,看什么时候开始掉,就让它稳在那附近。
参考模型自己也会犯错,拴着它有什么用?——拴的不是「对」,是奖励模型还看得懂的范围。

M

数学 · 一片偏好压成一个数

前面几节的公式看着多,其实只有一件事:把人说不清的那个「好」压成一个数 r,再照着这个数去拉模型。 下面这张图就是这件事本身——把「有用」和「无害」画成两条轴,奖励模型只认其中一条方向。

互动 · 奖励模型只看得见一个方向(拖 β,看策略往哪跑)

🎯 用「只考一门课」理解压缩

「这个回答好不好」本来有好几维:有没有用、有没有编、语气是否得体…… 可奖励模型最后只吐一个数。
这就像一场考试只考一门:总分排名看着挺像回事, 但学生一定会往那一门上使劲,没被考的那些维度就一路塌下去。 第 5 节那个 reward hacking 红区,在坐标系里就是这个样子。

互动 · 每个符号管图上的哪一块

互动 · 差一点点,怎么就变成了「七成会选它」

6

后来的人怎么拆掉 PPO

方法改了什么解决的问题代价
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 循环。

7

RLHF 的四个真实问题

问题具体表现
① 显存要装四个模型 策略模型、参考模型、奖励模型、价值模型。 7B 的模型在这样的配置下要 约 250 GB 显存(策略和价值两个要训练,各带优化器状态和高精度副本;参考、奖励是冻结的。 账本见后面《RLVR》那章)。这是 PPO 最大的工程门槛
② 奖励模型只是代理 它学的是"人类会选哪个",不是"哪个真的更好"。 人类标注本身有噪声、有偏见、有一致性问题——标注员之间也常不一致,InstructGPT(OpenAI 2022 年把 RLHF 用到 GPT-3 上的那篇)报告里两两一致率约 73%。 策略会找到并利用这些噪声。
③ 超参数地狱 学习率、KL 系数 β、裁剪 ε、GAE 的 λ、batch 大小…… 任何一个调错都可能导致训练震荡或崩塌,而且症状很晚才显现
④ 对齐税 为了"讨人喜欢",模型会变得更啰嗦、更保守、更爱加免责声明。 在问答、阅读理解这类公开任务上,分数常常反而下降(InstructGPT 原文报过 DROP、SQuAD 两个阅读理解测试集的退步)。 听话买回来了,通用能力却搭进去一部分——这就是「对齐税」。

互动 · 对齐税:讨好度和客观能力不在同一条路上

⚠️ 一条被反复验证的经验

奖励模型的分数涨了,不代表模型变好了。
很多团队都遇到过:训练曲线一路上升,但人工评测发现输出越来越空洞、越来越套路。 这就是 reward hacking 在真实工作中最典型的样子。
所以任何时候都不能只看奖励曲线——必须有人工评测。

8

小结

这一节把前面七节的所有零件归到一个动作上: 把人说不清的那个「好」,压缩成一个标量分数。 而压缩一定是有损的——被压掉的那些维度,就是后面所有麻烦的来源。

它对应哪条线 ④ 学习即压缩——RLHF 把人类的多维偏好(有用、诚实、无害、简洁……) 压成一个数字 r,再用这个数字去指导万亿参数的更新。压缩是它能训得动的唯一办法
一句话 这一章的做法,本质上是在把人说不清的「好」压成一个分数,然后照着这个分数去拉模型—— 而压缩必然丢东西,被压掉的那几维(别啰嗦、别说假话)没人保护,就是 reward hacking 的入口
它牺牲了什么 牺牲了偏好的多维性:一次性把「有用 / 诚实 / 无害 / 简洁」全部押进一个标量 r。 也牺牲了直接监督(PPO 是策略梯度,方差大、样本效率低,要跑很多轮)。 代价就是那个无法绕开的「对齐税」——把可控性买回来,用的是客观能力的一部分。 被压掉的那几维(别啰嗦、别说假话),就是第 5 节橡皮筋拉太松时被钻的空子。(回扣暗线 B)

一图看懂 · 进门一大片,出门一个数

提示 + 回答A + 回答B + 人类选了哪个 奖励模型 学会给分 一个数 r 标量 优势 A 还是数 更新 Δθ 一次 ▶ ▶ ▶ ▶ 进门那一整段信息,出门只剩一个标量 —— 中间被压掉的东西,没人替它说话
🎬 自己验一遍

回到第 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

RLHF = 让人只回答"哪个更好",把这件事变成模型能学的信号。
奖励模型用 Bradley-Terry 把相对偏好转成绝对分数(所以分数只有相对意义); PPO 用一个悲观的裁剪把每次更新限制住—— 对"变好"封顶,对"变坏"不封顶,宁可学得慢也不允许崩; KL 惩罚是阻止策略钻奖励模型空子的主要手段。
它的问题:要装四个模型、超参极难调、奖励只是代理。 下一章 《DPO 家族》接着拆:把 PPO 的零件一个一个拆掉;更后面的 《RLVR 与 GRPO》也一样。

9

拓展阅读

上面讲的都是「够用」的版本。想往下挖,这里有三个入口—— 它们不是必修内容,是给想再往前走一步的读者准备的。

📄 这一章的说法从哪来

💻 工业界怎么写

∑ 更严格的形式