为什么预训练模型「不听话」
预训练的目标只有一个:预测下一个 token。互联网语料里既有严谨问答,也有抬杠、闲聊与错误答案,模型学到的是「这类文字后面通常接什么」,而不是「作为助手我该怎么回答」。你问它一个问题,它可能反问你、续写一篇同题作文,或顺着你的话编下去——在「续写」这个目标下,这些行为都合理。
让模型行为符合人类意图,就是对齐(alignment)。RLHF(Reinforcement Learning from Human Feedback,基于人类反馈的强化学习)是最主流的对齐路线,它把「什么叫回答得好」拆成了三步工程。
RLHF 三件套:SFT、偏好数据与奖励模型
SFT 起步。 先用人工撰写的高质量问答对做监督微调(Supervised Fine-Tuning),教会模型「助手回答问题」长什么样。SFT 本质是模仿:数据里有什么,模型学什么,数据的上限就是模型的上限。
偏好数据。 要超越模仿,得知道「哪种回答更好」。做法是让模型对同一问题生成多个回答,由人把两个回答放在一起排序:哪个更有用、哪个更无害。用「二选一」而非直接打分,是因为人对相对好坏的判断远比给绝对分数稳定。
奖励模型。 用大量偏好对训练一个奖励模型(Reward Model):输入问题与回答,输出一个分数,分数高低对应「人类更偏好这个回答」。它把散落的偏好比较压缩成一个可计算的代理目标——从此「回答得好不好」变成一个能自动打分的函数,这才喂得动强化学习。
PPO:在奖励信号上做策略优化
有了奖励模型就可以跑强化学习:模型(策略)对问题生成回答,奖励模型打分,分数作为奖励信号更新策略,让高奖励回答的出现概率变大,代表算法是 PPO(Proximal Policy Optimization,近端策略优化)。
这里有个著名的坑:reward hacking(奖励作弊)。奖励模型只是人类偏好的近似,一旦模型发现它的盲区——比如回答更长、套话更华丽就能骗到高分——它会拼命往盲区里钻,分数涨了,质量跌了。工程上的刹车是 KL 惩罚:在奖励里加一项,惩罚模型输出分布偏离参考模型(通常是 SFT 后的模型)太远,把它拴在原分布附近。代价也不小:PPO 阶段要同时驻留策略、参考、奖励、价值四个模型,显存与工程复杂度都高。
DPO:跳过显式奖励模型
DPO(Direct Preference Optimization,直接偏好优化)走了另一条路。数学上可以证明,奖励与策略之间存在可互换的表达关系,于是不必先训奖励模型再做强化学习,而是把偏好对上的优化目标重写成一个类似分类的损失:直接在「好回答」与「差回答」上调整策略,把好的概率推高、差的概率压低。两条路线的取舍大致如下:
| 维度 | PPO | DPO |
|---|---|---|
| 显式奖励模型 | 需要先训练 | 不需要 |
| 训练方式 | 采样、打分、更新的在线循环 | 离线数据上做类似分类的优化 |
| 工程复杂度 | 高,调参敏感 | 低,更稳更省 |
| 探索能力 | 在线采样,能试出新回答 | 受限于既有偏好数据的分布 |
DPO 的短板同样在「离线」:难以探索出数据之外的新行为。PPO 上限更高,DPO 下限更稳,实践中两条路线都在用。
RLVR:奖励不靠人,靠验证器
数学题的对错、代码能否通过测试,这类答案可以自动判分。既然能验证,奖励就不必依赖人类偏好,直接让验证器(verifier)当裁判:答案对给 1,错给 0。这条路线叫 RLVR(Reinforcement Learning with Verifiable Rewards,可验证奖励的强化学习)。奖励信号客观、几乎无从「刷」,因此在训练模型的多步推理能力上,RLVR 已成为近两年的主流路径:思维链越长、越沉得住气,验证器给出的奖励就越能指明方向。
对齐的局限
最后泼一盆冷水:对齐调的是「行为偏好」,不是「知识」。RLHF 教会模型用人类喜欢的姿态作答,但模型不知道的事实,对齐之后依然不知道——它只是学会了更自信地把不知道的事说得像知道。对齐还有所谓的对齐税:对齐过程可能在部分任务上损失一些原始能力。「会不会」看预训练与后训练的功底,「乖不乖」看对齐,两笔账要分开算。
小结:一张技术栈地图
graph LR
A[预训练模型] --> B[SFT]
B --> C[偏好数据]
C --> D[奖励模型]
D --> E[PPO]
D --> F[DPO]
E --> G[可验证奖励 RLVR]
F --> G
G --> H[对齐后的模型]
记住这条主线就够了:SFT 定格式,偏好数据养出奖励模型,PPO 与 DPO 是消费奖励的两种方式,RLVR 换掉奖励的来源;而对齐本身只管行为、不管知识——它让模型「听话」,不能让模型「变懂」。
读者留言
COMMENTS 暂无还没有留言,来说第一句?