预训练、SFT、偏好对齐分别解决什么问题?

预训练、SFT、偏好对齐:训练大模型为什么要分三步走?
上篇我们聊了预训练的目标——通过Next Token Prediction,模型在海量文本里摸爬滚打,学会了语言的底层规律。读十几年书,语法懂了,常识有了,续写个故事开头不在话下。
但问题来了:这个“知识渊博”的模型,会考试吗?
给它一道数学题,它可能给你编个答案;问它怎么写代码,它可能说得头头是道但根本跑不通。它只知道“顺着说下去”,不知道“该怎么回答”。
这就是三阶段训练要解决的问题。

预训练:给模型一个“知识底座”
预训练的本质,是让模型在低成本下“读万卷书”。
它用自监督学习——不需要人工标注答案,模型自己从文本里找规律。学会了一个词后面通常跟着什么词,学会了什么话题会引出什么话题。
这个阶段解决的核心问题:从零训练一个模型太贵了。先让模型把“语言能力”这件事搞定,后续只管教它具体技能就行。
预训练的产物叫“基础模型”。它能很好地续写文本,但你问它问题,它要么瞎编,要么答非所问。
就像一个读了很多书但没做过真题的学生,你知道它有知识,但不确定它会不会用。

SFT:教模型“标准答案长什么样”
SFT,监督微调,用标注好的问答数据训练模型。
这些数据长这样:左边是问题,右边是人写的标准答案。模型要学会的是“看到这个问题,就输出这个回答”。
这解决的是“能力转化”问题。预训练学到的知识是散的,SFT把知识引导到具体任务上——让它从“顺嘴胡说”变成“按要求回答”。
SFT教会模型两件事:
- 什么情况下应该输出什么内容
- 回答问题应该有什么格式和风格
经过SFT的模型,已经是个“会干活”的助手了。你问它怎么写Python,它真的能给你跑通的代码。
但它有个致命弱点:只知道正确答案是什么样的,不知道什么是“绝对不能说的”。
模型可能输出有害内容、编造不存在的事实、或者在模糊问题上随便瞎猜。它“学”了正确答案,但没学过哪些是“坑”。

偏好对齐:给模型加一道“安全锁”
偏好对齐的作用,就是告诉模型“哪些回答是错的”。
它用的不是“标准答案”,而是“对比数据”:同一个问题,配两个答案,一个更好,一个更差。让模型学着判断、学着选择。
这个阶段解决的核心问题:消除SFT覆盖不到的有害输出、幻觉内容、不符合人类价值观的回答。
打个比方。SFT是教学生“标准解法”,偏好对齐是告诉他们“哪些坑不能踩”。同一道题,两个答案都能得分,但一个可能引发严重后果——模型必须学会区分。
这就是为什么现在的大模型要“对齐”。不做对齐,模型可能:
- 编造论文和数据
- 提供危险操作步骤
- 在道德边界问题上胡说八道
RLHF和DPO是两种主流对齐方法,下一篇我们会详细聊它们的区别。

三个阶段为什么缺一不可?
培养大模型和培养一个人,逻辑是一样的。
一个人要先有基础教育(语文、数学、基本常识)——对应预训练。没有这个底子,后面学什么都是空中楼阁。
然后要学岗位技能(财务报表怎么写、代码怎么调试)——对应SFT。没有这个,模型再有知识也转化不成能力。
最后要培训职业素养和价值观(什么该做什么不该做)——对应对齐。没有这个,可能能力越强越危险。
跳过预训练直接SFT?相当于从头教一个什么都不懂的人,成本高到离谱,效果还差。
跳过SFT直接对齐?模型连基本任务能力都没有,对齐没有意义。
跳过偏好对齐?模型可能随时输出有害内容,根本不敢上线。
三个阶段环环相扣,每一步都在解决上一步遗留的问题。

面试必备——三阶段核心对比
| 预训练 | SFT | 偏好对齐 | |
|---|---|---|---|
| 学习目标 | 学会语言规律 | 学会任务能力 | 学会判断质量 |
| 数据类型 | 海量通用文本 | 标注指令数据 | 偏好对比数据 |
| 解决问题 | 语言能力 | 任务能力 | 安全性和可靠性 |
| 技术方法 | 自监督学习 | 监督学习 | 人类反馈学习 |
面试时记住这个口诀:预训练让模型“博学”,SFT让模型“会干”,对齐让模型“不作恶”。
模型学知识靠预训练,学技能靠SFT,学规矩靠对齐。三步走完,一个能用的智能助手才算真正诞生。
那对齐具体是怎么做的?RLHF和DPO有什么区别?下篇接着聊。
