深度学习入门

微调与对齐:从「会接话」到「能用」

14 分钟

预训练完的模型知识渊博,但并不好用。它只会接着往下写,不会「听话」。

你问它「怎么做番茄炒蛋?」
一个纯预训练模型可能回答:「怎么做红烧肉?怎么做糖醋排骨?」

因为在互联网语料里,问题后面经常跟着更多问题(比如一个问题列表)。它在做的是最可能的续写,不是回答你。

从「会接话」到「能用」,中间隔着对齐(alignment)。


第一步:监督微调(SFT)

用人工编写的「指令—回答」配对数据继续训练:

指令:把这段话翻译成英文:今天天气很好。
回答:The weather is nice today.

指令:用三句话解释什么是光合作用。
回答:光合作用是植物利用光能……

规模:通常几万到几十万条高质量样本。

关键认识:质量远比数量重要。 几千条精心撰写的数据,效果可以超过几十万条粗糙数据。原因是模型的知识已经在预训练阶段获得了,SFT 只是在教它「以什么形式呈现」——这个「格式」不需要海量数据。

指令微调(instruction tuning)是 SFT 的一种,特点是用多样化的任务训练,让模型学会泛化到没见过的指令。


第二步:从人类反馈中学习(RLHF)

SFT 之后模型会听指令了,但还有个问题:很多问题没有唯一正确答案。

「帮我写一封道歉信」——什么样算好?很难写出标准答案,但人类很容易在两个回答之间说出哪个更好。

这个不对称是 RLHF 的出发点:评价比创作容易。

三个步骤

① 让模型对同一个问题生成多个回答
② 人类标注员对这些回答排序(A 比 B 好)
③ 用排序数据训练一个「奖励模型」,它学会给回答打分
④ 用强化学习(PPO 等)优化语言模型,让奖励模型给的分数更高

奖励模型是关键:它把「人类偏好」这件模糊的事,变成了一个可优化的数值目标。


对齐要解决的三件事(3H)

目标 含义
Helpful 有用 真的回答问题,而不是回避
Honest 诚实 不知道就说不知道,不编造
Harmless 无害 拒绝协助造成伤害的请求

这三者经常互相冲突,这是对齐最难的地方:

  • 过度强调无害 → 模型变得畏首畏尾,正常问题也拒答
  • 过度强调有用 → 可能协助有害请求
  • 过度强调诚实 → 大量回答「我不确定」,失去实用性

调这三者的平衡,是一项工程也是一项判断。


更轻的做法:DPO

RLHF 的流程复杂(要训奖励模型、要跑强化学习、超参数敏感)。

直接偏好优化(DPO) 证明了可以跳过奖励模型和强化学习,直接用偏好数据优化语言模型,数学上等价,但实现简单得多、训练稳定得多。

这类方法正在成为主流,因为它把对齐的门槛大幅降低了。


参数高效微调:PEFT

全量微调一个大模型需要海量显存(要存参数、梯度、优化器状态)。LoRA 是最流行的解法:

冻结原模型的全部参数,只在旁边加一对低秩矩阵 ,训练时只更新它们。

效果:可训练参数量降到原来的百分之一甚至千分之一,效果接近全量微调。

额外好处:一个基座模型 + 多个小 LoRA 权重,可以按需切换不同「人格」或领域能力,不用存多份完整模型。

练习:为什么说 RLHF 的出发点是「评价比创作容易」?举一个你自己领域里的例子。

小纸条

为什么纯预训练模型问「怎么做番茄炒蛋」可能回答一串别的问题?RLHF 的出发点是什么不对称?

登录 后可看答案