先分清三件事
很多人把"训练大模型"当成一个动作,其实它是一条流水线,每一段解决的是完全不同的问题:
- 预训练:让模型学会语言的统计规律,得到一个"会续写"的基座模型
- 微调:把"会续写"变成"会按要求回答问题"
- 对齐:让回答更符合人的偏好——有用、无害、诚实
跳过任何一段,模型都不好用;顺序颠倒,代价会大得多。
预训练:把语言规律压进参数
这一步做的事很朴素:拿海量文本,让模型不断预测下一个词。预测错了就调整参数,预测对了就强化。
它学到的不是"知识条目",而是语言的统计结构——词与词怎么搭配、句子怎么延续、某个话题通常讨论哪些方面。正因为如此,基座模型很会续写,却不太好用:你问它一个问题,它可能接着编出更多类似的问题,而不是回答你。
这一步最贵,因为数据量和算力需求最大,而且它决定了能力上限——后面两步都是在已有能力上做取舍和引导。
微调:从"会续写"到"会对话"
预训练完成后,模型只会续写。微调要做的是给它"示范":把大量"指令 → 恰当回答"的样例喂进去,让它学会把问题当成任务来处理。
它的本质是格式与行为的塑形:模型本来就有能力,微调教会它用什么姿态输出。
对齐:让它按人的偏好回答
微调之后的模型已经会答了,但答案未必是你想要的——可能太啰嗦、可能过度回避、可能说些不该说的。
对齐这一步通常用"比较"来做:给模型两个回答,由人判断哪个更好,模型学着去预测这个偏好。它塑造的是取舍标准,而不只是格式。
为什么顺序不能乱
三个阶段的依赖是单向的:预训练给出原始能力,微调把它组织成可用行为,对齐在可用行为上做偏好裁剪。
如果先做对齐再做微调,对齐成果会被后续微调冲掉——因为微调是在直接改行为分布,并不区分"哪些行为是对齐得来的"。
| 阶段 | 解决什么问题 | 典型做法 | 缺失时会怎样 |
|---|---|---|---|
| 预训练 | 获得语言与知识的基本能力 | 大规模文本上的下一词预测 | 没有可用能力,后续无从谈起 |
| 指令微调 | 把能力组织成"按指令回答" | 指令与回答的示范数据 | 会续写但不会答题,像在自言自语 |
| 对齐 | 让取舍符合人的偏好 | 基于人类偏好的比较式训练 | 答得出,但啰嗦、不合用或不可靠 |
三个常见误解
误解一:预训练过时了。恰恰相反,它是能力上限所在。后两步只能把已有能力整理得更好,很难凭空增加。
误解二:微调能教新知识。微调更擅长调整行为与格式。想靠它稳定注入新事实,通常不如检索或提示可靠。
误解三:对齐会让模型变笨。对齐确实会改变输出分布,取舍做得好是"更合用",做得差才是"更保守"。它是一把需要调的刀,而不是必然的退化。
收尾
把这三步理解成"造能力 → 教用法 → 定取舍",很多关于大模型能力的困惑会自然消解:模型答不好时,先判断是能力不够(预训练)、不会用(微调),还是取舍不合你意(对齐)。