主题
字号
PART IV · 后训练
CHAPTER 19 ≈ 45 MIN READ

从续写到听话——SFT 与指令微调

这一卷是全系列的心脏。第一卷立骨架,第二卷注入知识,第三卷备好数学——现在回答那个贯穿全书的问题的下半段:从 GPT-3 到今天,模型是怎么从"满腹经纶的续写机"变成"能干活的助手"、又变成"能深度推理的专家"的?答案是一条流水线,行业统称后训练(post-training)。本卷按它的历史层次推进:先教会听话(SFT,本章),再学会分辨好坏(奖励模型与 RLHF,第二三章),再让 AI 教 AI(第四章),然后是第二次质变——推理模型(第五六章),最后是把这一切兑现成产品的工艺(第七章)。

1.1 鸿沟:目标错位的天才

先把 2020–2022 年那道著名的鸿沟看真切。GPT-3 压缩了半个互联网,但你对它说"用三句话解释光合作用",它很可能回你一串风格雷同的题目——"用三句话解释呼吸作用。用三句话解释蒸腾作用。"这不是它蠢,恰恰是它太称职:预训练教它的唯一本领是续写,而互联网上"一条指令后面跟着更多指令"(习题集、考卷)的概率,不比"一条指令后面跟着答案"低。它在完美地执行自己的目标函数——只是它的目标和你的目标不是同一个

当时的补救办法你在第一卷见过:few-shot 提示。在指令前手工垫几个"指令→回答"的例子,把模型"骗"进正确的续写模式。这套"提示词咒语"确实能用,但作为产品形态是灾难——用户凭什么要先学会念咒?OpenAI 把这个问题正式命名为对齐(alignment):让模型实际做的事,对齐到用户想要它做的事。这个词后来含义越滚越大(安全、价值观、诚实),但它的原点朴素得很:让模型听懂人话、照着办

对齐的第一步方案简单得近乎让人失望,但它开启了一切。

1.2 SFT:把理想行为写成数据

方案是:收集一批"理想交互的示范",拿它继续做下一词预测训练。雇一批标注员,给他们真实的用户指令("给我妹妹写首生日诗"、"解释什么是量子纠缠"),让他们亲手写出理想的回答;然后把这几万条(指令 → 理想回答)对当作训练数据,微调预训练模型——损失函数还是那个交叉熵,只是通常只在"回答"部分计算(指令部分只作条件、不学习)。这一步叫监督微调(Supervised Fine-Tuning,SFT),InstructGPT 用了约一万三千条人工示范起家。

为什么这么小的数据量(对比预训练的几十万亿 token,九个数量级的差距)能改变模型的行为模式?第三章的彩蛋在这里第一次派上用场:SFT 就是"无条件模仿数据"——而它要教的东西其实非常少。模型不需要从 SFT 里学知识(知识在预训练里早就有了),它只需要学一个行为模式的切换:"看到指令时,进入'助手'这个角色,而不是'续写者'这个角色"。用第一卷残差流的语言说:SFT 不是往传送带里灌新知识,而是调整"哪些已有知识在什么场合被取用"的调度习惯。改变习惯不需要海量数据——需要的是一致而高质量的示范

2023 年 Meta 的 LIMA 论文把这个洞察推到极致并给出了名字:表面对齐假设(superficial alignment hypothesis)——模型的能力几乎全部来自预训练,对齐只是教会它"该用什么格式和口吻调用这些能力"。他们只用一千条千挑万选的示范做 SFT,就得到一个相当能打的助手。这个"一千条"当然有夸张成分(后来的实践表明覆盖面和难度分布仍然要紧,生产级 SFT 数据远不止千条),但方向性结论站住了脚,并成了此后所有 SFT 实践的指导思想:质量与多样性碾压数量

同一时期还有一条现在看来影响深远的支线:斯坦福的 Alpaca 用"让强模型自动生成指令数据"的办法(self-instruct),花几百美元造出五万二千条数据,微调出一个像模像样的助手。它的直接效果是掀起了 2023 年的开源微调热潮;更深远的影响是开了一个先例——用模型造数据训模型。这颗种子会在第四章(AI 反馈)和第七章(蒸馏)长成参天大树。

1.3 对话的骨骼:chat template

SFT 还悄悄奠定了一件极少被讨论、却支撑着你每天使用体验的基础设施:对话格式

模型的输入终究是一串 token——"多轮对话"、"系统提示"这些概念必须被编码成文本才存在。行业的做法是引入一套特殊 token 把对话结构标记出来,大致形如:<|system|>你是一个有帮助的助手<|user|>你好<|assistant|>你好!有什么可以帮你?<|end|>……这套约定叫 chat template。SFT 数据全部按这个格式组织,于是模型学到的不只是"怎么回答",还有整套会话协议:看到 <|assistant|> 就轮到我说话,说完要输出结束符(这是"模型怎么知道该停"的全部秘密),system 段的指示优先级高于 user 段,等等。

别小看这层"格式工程"。你在使用产品时感知到的许多性质——模型守不守系统提示、会不会把多轮对话搅混、能不能被注入攻击(把指令藏进用户内容里骗模型执行)——很大程度取决于这套协议被训练得多牢靠。第一卷说 tokenizer 是文明与模型的接口,chat template 就是对话与模型的接口,而它完全是 SFT 阶段的产物。

1.4 模仿的三重天花板

SFT 一步就把 GPT-3 从"念咒才能用"变成了"直接对话",效果立竿见影。但行业很快撞上了它的天花板,而且是三重。看清这三重天花板,你就精确地知道了为什么必须有 RLHF、为什么必须有 RL——本卷余下的一切技术,都是从这三条裂缝里生长出来的

**第一重:示范者即上限。**SFT 是纯模仿——模型至多学到"标注员平均水平"的行为。你雇不起一万个陶哲轩来写数学示范;即使雇得起,模型也只能逼近他们、不能超越他们。第三卷第一章讲过 RL 的天花板是任务本身而非人类示范——现在这个对比有了确切的落点。

第二重:模仿分不清"形"与"实",会学出自信的胡说。SFT 的示范答案都写得流畅、自信、结构完整——模型忠实地学会了这个形式。但当它遇到自己其实不知道答案的问题时会怎样?它没有学过"我不知道"(示范数据里几乎没有这种样本),它学过的是"以自信的口吻给出结构完整的回答"——于是它以完美的格式编造事实。幻觉(hallucination)问题当然有多重根源,但 SFT 的"只见好样本、从无负反馈"结构性地加重了它:模仿学习里没有任何机制告诉模型"这样答是错的"——它只被告知过"人类会这样答"。

第三重:死记硬背,泛化有限。2025 年一篇被广泛引用的对照研究把这个老直觉钉实了,标题就是结论:"SFT 记忆,RL 泛化"——在同样的任务上,SFT 训出的模型倾向复述训练分布内的模式,规则稍作变体就崩;RL 训出的模型学到的东西更能迁移到新变体。原理用第三卷的语言一说就透:SFT 对示范里的每个 token 无差别地正向模仿(权重全是 +1),信号里不含"哪些是本质、哪些是巧合";RL 按后果加权,成败的对照逼着模型把"什么真正管用"从"什么只是碰巧出现"里分离出来。

三重天花板指向同一个出口。既然写出完美示范这么难(贵、有上限、还教坏了自信),那能不能退一步——不让人类,只让人类?给两个候选回答,问哪个更好——这判断谁都会做,又快又便宜,而且它天然携带 SFT 最缺的那种信息:负信号("这个不如那个")。把千万次"挑选"压缩成一个可以给任何回答打分的函数,再用第三卷的机器去优化这个分数——这就是下一章的主角:奖励模型,与 RLHF 的完整流水线。


本章要点