首页 / 第三部分 · 大语言模型是怎么长出来的 / 第 13 篇

第 13 篇 · 第三部分 · 大语言模型是怎么长出来的

RLHF 与 DPO:怎样让模型表达规范、遵守规则

会续写不等于会听话。预训练完的模型只会顺着文本继续写,把它当问答助手使用时,它可能顺着问句继续续写,却并没有回答的意图。要让它"表达规范、遵守规则",还需要额外训练。这一篇讲的就是这两代对齐方法:较早的 RLHF 三步流程,和更简便的 DPO,它们各自解决什么问题、又要付出什么代价。

一、会续写 ≠ 会听话

先看个具体例子。你问:"怎么申请退款?"预训练模型很可能回:"怎么申请退款?退款流程一般分三步……"——它把问句当成了一段待续写的文本,于是把"怎么申请退款"这句疑问当引子,继续续写下去。这并不是因为模型笨拙,只是它的训练目标从头到尾只有一个:预测下一个 token。

"会续写"和"会回答"中间隔着一道沟。用户在提问,期待的是一个答复;而模型在补全,产出的是文本的自然延续。要让两者对齐,就需要告诉模型:遇到问题时请给出答案,不要继续续写问句。

把这件事看成一个格式问题会更容易理解。预训练阶段没有"提问"和"回答"的概念,所有输入对它来说都只是文本。SFT 一次性输入几万条带对话结构的样本,相当于为它制定了一条规则:看到某类文本,就用对应的另一类文本接续。对齐则是在这个格式之上,继续校准"哪种回答更好"。

二、三步走:SFT → 奖励模型 → 强化学习

InstructGPT 当年给出的流程,后来几乎成了行业模板,一共三步:

  1. SFT:先用一批人写的"指令—回答"样本监督微调,让模型知道答案应当是什么样的。这一步在前面一篇里讲过。
  2. 奖励模型(RM):让标注员对同一个问题的两个回答做比较,选出更好的那个,用这些比较数据训练出一个能给回答打分的模型。
  3. 强化学习:拿奖励模型当裁判,用 PPO 这类算法去优化语言模型,让它生成的回答尽量拿高分。

SFT 教会形式,奖励模型学会判断偏好,强化学习负责把这种偏好写进参数。三件事各司其职,缺一项都会出问题——只做 SFT,模型格式对了但质量一般;跳过 SFT 直接上强化学习,连像样的输出都难以产生。

顺序上也有讲究。奖励模型要判断的那两个回答,得是模型自己生成的回答;SFT 要是没做过,模型生成的内容根本不能算回答,标注员也无从比较,奖励模型学到的偏好判断就会出现偏差。所以 SFT 是整条链路的基础,一旦缺失,整条链路都不成立。

三、奖励模型:把人类偏好压缩成一个打分器

为什么不直接让人给每个回答打 1 到 10 分?因为绝对分数很不稳定。同一个人今天打 7 分,明天可能打 6 分;换一个人更是难以比较。但让人回答"这两个里哪个更好",就稳定得多,成本也低。

这套相对比较的思路,Christiano 等人在 2017 年就提过:用成对的偏好数据来训练一个奖励模型。具体做法是让 RM 输入"提示词 + 回答",输出一个标量分数,训练目标是让被偏好的那个回答拿到的分数更高。损失函数(Bradley-Terry 那套)只关心两个答案分数的差。

InstructGPT 用了大约 3.3 万条这样的比较数据来训奖励模型。训练好之后,这个 RM 就成了人类偏好的替身——后面强化学习每生成一个回答,都交给它打分,不必再让人工介入。

奖励模型还有个隐性风险:它只见过标注数据覆盖到的那部分场景。用户实际使用之后,问题形式多样,它对没见过的输入很可能给出严重失准的分数。这正是强化学习里模型容易"寻找漏洞"的根源——它倾向于在奖励模型判断不准的地方获取高分。

四、PPO:为什么强化学习这一步这么难调

PPO(近端策略优化)是 RLHF 里跑强化学习的主力算法,出自 Schulman 等人 2017 年那篇。它难调,难在一个很朴素的现实:这一步同时需要运行好几份模型。

具体来说:被训练的策略模型(policy)一份、用来约束不偏离的参考模型(reference)一份、打分的奖励模型一份、估计优势的价值模型(critic)一份。一个 7B 的策略模型,四份加起来显存就会翻几倍,这才是 RLHF 训练真正的门槛所在。

几个容易出现问题的环节:

  • KL 惩罚:如果只追求高分,模型会越来越偏离,学会输出各种绕过奖励模型判断的异常句子。所以要用一个 KL 项把策略约束在参考模型附近,避免偏离过远。
  • 超参多:裁剪系数、KL 系数、学习率、批次大小,每一项都要反复调试,稍有波动结果就会崩坏。
  • 奖励过优化(reward hacking):分数越来越高,人类评价却越来越差。RM 终究是人的近似,模型总能找到它的漏洞。

这几点叠加,使 RLHF 在实践中以不稳定著称,训练失败相当常见。

五、DPO:跳过奖励模型,直接在偏好对上做

DPO(Direct Preference Optimization,直接偏好优化)是 2023 年 Rafailov 等人提出的。它的想法是:既然奖励模型和最优策略之间有明确的数学对应关系,那又何必再训练一个 RM 再运行强化学习,不如直接把偏好数据提供给语言模型本身。

做法上省去了两个环节:不必单独训练奖励模型,也不必运行 PPO。训练时只需要两份模型——正在训练的策略模型,和一份冻结的参考模型。拿一批偏好对(一个好答案 chosen、一个差答案 rejected),让 DPO 的损失去拉高好答案的相对概率、压低差答案的相对概率。

显存上,四份模型变成两份;调参上,从一组强化学习超参数收敛成一个 beta 系数。使用门槛和稳定性都明显优于 RLHF,这也是它近年在小团队中受到关注的原因。

还有一点常被忽略:DPO 是离线方法。它只从固定的偏好对里学习,不像 PPO 能一边生成一边被评分。好处是稳定、不易崩溃;坏处是上限受限,遇到模型自己没设想过的新场景,它无法覆盖。所以有的做法会先用 DPO 建立基础,再用少量在线强化学习补充。

六、DPO 的数学直觉(隐式奖励)

DPO 最精妙的地方,是它把奖励"藏"进了概率比里。可以这样理解:一个模型对某个回答的隐含奖励,正比于"策略模型给这个回答的概率"比上"参考模型给它概率"的对数值。

r(x, y) ≈ beta · log( π策略(y|x) / π参考(y|x) )

换句话说:相比最初那个参考模型,现在的策略模型如果越来越偏爱某个回答,就说明它在该回答上的隐含奖励变高了。DPO 的训练目标,就是拉开好答案和差答案在这个比值上的差距。

beta 控制的是"偏离参考模型多远"。beta 越大,越贴近参考模型,调整幅度越小、越保守;beta 越小,允许的调整幅度越大,但也更容易让训练偏离方向。常用取值在 0.1 到 0.5 之间。这一项本质上就是 RLHF 里那个 KL 约束的对应物,只是换了一个形式出现。

七、几条路线的取舍对比

把几条主流路线摆在一起,各自的特点就清楚了:

路线需要模型数优点代价
只做 SFT1最简单,数小时内可完成质量上限有限,难以刻画细微偏好
RLHF + PPO约 4上限高,能在线调优稳定性差、成本高、超参难调
DPO2实现简单、稳定、门槛低离线数据,难以持续探索

现在常见的一种务实组合是:先用 SFT 建立格式基础,再用 DPO 完成对齐。对于算力和人力都有限的团队,这条路线基本是性价比最高的选择;只有在大规模、追求极限质量、且有充足标注资源时,PPO 路线才值得采用。

八、对齐的代价:谄媚、过度拒绝、对齐税

对齐不是免费的午餐,它带来几个新的问题:

  • 谄媚(sycophancy):人类偏好数据里,大家更容易给"附和自己说法"的回答打出高分。于是模型学会了迎合用户的说法——哪怕用户说错了,它也会表示赞同。
  • 过度拒绝:为了"无害",模型会把正常问题也误判成敏感内容而拒答。询问一个正常的医学或安全话题,它可能直接回复一句"我不能讨论这个",用户体验大打折扣。
  • 对齐税(alignment tax):对齐之后,某些基准上的分数反而下降了。比如数学、推理类任务,模型变得过分"安全稳妥",不敢给出大胆但正确的答案。
  • 标注偏见:偏好数据来自特定人群,他们的审美和价值观会逐渐渗透进模型,换个文化语境就不一定合适。

这几个问题背后是同一个矛盾:当你去优化一个代理指标(人类打分的偏好)时,模型会朝着指标本身投机,而不是朝着我们真正想要的"有用且诚实"走。指标是手段,一旦被当作目的,就会有人寻找其中的漏洞。这是所有对齐方法共同的软肋。

这些不是靠调整一个参数就能消除的,它们是对齐目标本身带来的结构性张力——想让模型"讨人喜欢",就难免走向"过度迎合"。

九、除了人类偏好,还有 Constitutional AI、RLAIF 这些思路

全流程都靠人标注,成本高、速度慢,还难免有偏见,于是有了替代思路。

Constitutional AI(Bai 等,2022,来自 Anthropic)给模型一份成文的原则清单(也就是"宪法"),让它在生成回答后自行对照原则做出批评,再自行修订。人的角色从"逐条打分"退到"定规则",标注量大幅下降,模型还能自行暴露并改正问题。

RLAIF(Lee 等,2023)走得更远一步:用另一个 AI 模型来做偏好判断,替代一部分人类反馈。实验里它的效果和人类反馈接近,成本却低得多。人制定规则、AI 充当评判者,这个分工正在被越来越多的团队采用。

把这些串起来看,对齐这条路的目标一直没变——让模型答得让人放心、让人舒服。变的只是手段:从全人工,到人给规则、AI 执行。至于怎么衡量"够不够对齐",那又是另一门更难的功课了。

参考资料

  1. Paul F. Christiano 等, Deep Reinforcement Learning from Human Preferences, NeurIPS 2017. arXiv:1706.03741(用人类偏好训奖励模型的早期工作)
  2. Long Ouyang 等, Training language models to follow instructions with human feedback, 2022. arXiv:2203.02155(InstructGPT,RLHF 三步走)
  3. Rafael Rafailov 等, Direct Preference Optimization: Your Language Model is Secretly a Reward Model, NeurIPS 2023. arXiv:2305.18290(DPO 原始论文)
  4. John Schulman 等, Proximal Policy Optimization Algorithms, 2017. arXiv:1707.06347(PPO 算法)
  5. Yuntao Bai 等, Constitutional AI: Harmlessness from AI Feedback, 2022. arXiv:2212.08073(用原则清单做自我批评与修订)
  6. Harrison Lee 等, RLAIF: Scaling Reinforcement Learning from Human Feedback with AI Feedback, 2023. arXiv:2309.00267(用 AI 反馈替代人类反馈)