要解决的问题
预训练模型的目标是"预测下一个词",这与"给出对人类有用的回答"并不完全一致。
一个纯粹的预训练模型可能:给出有害建议、答非所问、输出冗长重复、或者拒绝回答无害问题。它需要被对齐(Alignment)。
三个阶段
一、监督微调(SFT)
用人工编写的高质量"指令—回答"对,对预训练模型进行微调。
目的是让模型学会对话的格式和基本行为模式:理解指令、给出结构化的回答、遵循用户意图。
这个阶段数据量相对小(数千到数万条),但质量要求高。
二、训练奖励模型(RM)
让模型对同一个问题生成多个不同的回答,请人类标注员按质量排序(比如从最好到最差)。
用这些排序数据训练一个奖励模型:输入"问题 + 回答",输出一个分数,代表这个回答有多符合人类偏好。
用排序而非打分,是因为人类对"绝对分数"的判断不稳定,但对"哪个更好"的判断相对可靠。
三、强化学习优化
以奖励模型作为"裁判",用强化学习算法(常用 PPO)优化模型,让它生成能获得更高奖励分数的回答。
这里有个关键约束:不能让模型"跑偏"太远。因此通常会在优化目标中加入一个惩罚项(如 KL 散度),限制新模型与原始 SFT 模型之间的差异,防止模型找到奖励模型的漏洞却输出垃圾内容(这被称为"奖励黑客",Reward Hacking)。
直接偏好优化(DPO)
传统 RLHF 流程复杂(要训练并维护奖励模型、策略模型、参考模型等多个模型),训练不稳定。
DPO(Direct Preference Optimization)提出了一个简化:既然目标是让"好回答"的概率相对"坏回答"提高,可以直接用偏好数据构造损失函数,跳过显式的奖励模型和强化学习循环。
DPO 大幅简化了实现,在实践中效果接近甚至优于传统 RLHF,因此被广泛采用。
局限
- 人类偏好的多样性:标注员的偏好未必代表所有用户,且不同文化、场景下偏好差异很大;
- 奖励模型的偏差:模型可能学会"讨好"奖励模型,而非真正变得有用;
- 过度对齐:过度优化安全性可能导致模型变得过度保守,对无害请求也拒绝。
一个观察角度
对齐技术解决的是"让模型按人类期望的方式输出"。它不改变模型的知识水平——一个知识匮乏的模型,再怎么对齐也答不出它不知道的东西。
说明:本文为大模型训练技术的公开知识整理。