SFT 教的是格式,知识不是它给的

建议用时:25 分钟(含练习)

学习目标

能够区分「学到回答的样子」与「学到新事实」,并说清一条少样本主张能证到哪一格。

本节产出

一张把格式与知识分栏的标注判定表

核心知识:SFT 改的是数据分布,学习目标一个字没动

监督微调(supervised fine-tuning,简称 SFT)的做法一句话能说清:拿一批"输入配一条人工写好的答复"的成对样本,接着预训练那套目标继续训——还是给定上文猜下一个词,只不过上文换成了问题,要猜的那个词换成了答复里的词。

损失函数没换,换的是数据。 这一条决定了两件事,而且必须一起记。第一件:它特别擅长把模型推进"看到这种问就出这种答"的区域——结构、长度、语气、要不要反问、结尾固定问一句什么、哪些话不许说,这些都能被少量样本带动。第二件:它没有为"记住一条事实"设计任何专门机制。事实如果真进了参数,那是被同一个下一词损失顺带压进去的;能压进去多少,不取决于这套训练叫 SFT。

分清这两件事,本节的题目就落地了:SFT 教的是回答的样子,预训练才装知识。但这句话只能当路线图用,它不是一句可以随便往上加力度的结论——加力度就加出错了,下面逐层拆。

一条少样本主张能证到哪一格:把 LIMA 的摘要拆成三层

LIMA 那篇论文的提交日期是 2023 年 5 月 18 日,本课只核到它的 arXiv 摘要页(2026 年 10 月 23 日核),正文与图表没取。摘要能支持的话分三层,力度一层比一层弱,混起来就是走错路。

  • 第一层,摘要直陈的训练做法:用标准的监督损失,只在 1,000 条精挑细选的问答上做微调,不加强化学习,也不做人偏好建模。这一层是作者陈述的事实,最硬。
  • 第二层,摘要直陈的观察:模型可以从训练数据里为数不多的例子学到特定的回答格式,摘要举的例子包括行程规划这类复杂问句;并且它对训练数据里没出现过的任务也表现出泛化。这一层同样是摘要里写明的,注意它的宾语是"格式"和"未见任务的表现"。
  • 第三层,作者自己下的推断:摘要用了"强烈提示"这样的限定说法,提出大模型的知识几乎全在预训练阶段学到,只需要有限的指令微调数据就能教模型产出高质量输出。这一层是解释,不是测量结果——它带了限定词,转述时限定词最容易掉。

本课能证到的位置就到这儿:格式与风格可以被少量样本带动,这条有摘要直陈的支持。而"任何模型 1,000 条就够"没有支持——摘要里那个 1,000 是这一篇自己所选数据的规模,它不是对全部模型、全部任务、全部数据质量的承诺。同理,摘要也没写"SFT 一点新知识都进不去","几乎全部知识在预训练学到"是带限定的推断,把它读成"知识一律与 SFT 无关"就已经越界。

这里补一条来源纪律:该文摘要里还写了人类评估的对比比例和模型参数量。本课一律不引——它们属于论文内的实验数字,本轮只核到摘要页,正文和图表没取,无法确认口径。

摘要里没有的那个词

后来流传一种概括,把 LIMA 说成提出了"表面对齐假说"(英文常被写成 superficial alignment hypothesis),意思是微调只学到了表面的说法方式、真本事全在预训练。

要说准:这一篇的摘要里没有这个词,也没有把"风格"和"事实"分成两栏的字样。这套分区是后人在转述时加上去的解释框架。这一节正好拿它当活教材——看一句话怎么在被转述的过程中,从"摘要支持"长成"摘要不支持":

  • 论文写了:少量精挑样本能带动特定的回答格式 → 宾语是格式,力度可核
  • 转述长成:微调只学到了格式,知识全在预训练 → 把"几乎"换成"全",宾语扩到知识
  • 再传一次:所以 1,000 条就够,多喂事实问答没用 → 把一篇的选数变成对所有模型的处方

每一步都只挪了一小格,读起来都"差不多",但第三格已经不是第一篇在说的话。判据只有一个:回到摘要,看那句的宾语和限定词还在不在。

分界怎么判:看它能不能答出样本里没有的组合

"多喂事实问答就等于记住了事实"是最常见的走法。要拦住它,得给一个能操作的判据:不是看它复述得像不像,而是看它能不能答出训练样本里没有出现过组合。三个只读输出就能做的探针:

探针名称怎么出题只学会格式时会出什么长相真记住了会出什么长相
换主语样本写"李陌负责周二",问"谁负责周二"之外再问"周衡负责哪天"语气很稳地给一个编的人名,或改口说"请现场确认"样本里没有就说没有,不编
两跳组合答案要把样本甲和样本乙拼起来才有拼出一个看着合理但错的值给对,或明说缺哪一条
改条件把样本里的时间、地点、数量换一个再问照抄原样本的值,答非所问指出条件变了、原答案不适用

三个探针都只读输出,但必须配一份外部真值(中心的实际排班表)才能定案:流畅的编造和正确的复述长得一模一样,肉眼分不出来。这就是本节"只看输出"能做到的极限——它区分不了"记住"和"会现编",只能靠组合题把现编暴露成错值。

什么时候不适用,以及最容易混的一处

SFT 适合修形状:长度太长、爱加免责声明、该反问时不反问、输出协议不守、拒答口径忽松忽紧。它不适合注入私有事实、时效事实和精确数值——那类需求要走检索或工具,或者把事实直接放进输入。

最容易混的一处:把"回答得像一个懂的人"当成"懂"。而流畅恰恰是格式学出来最强的信号,也就最容易骗过评审和被评审的人。第二节的案例就是这件事的具体长相。

监督微调分成两条分支,一条列出它改动的格式与风格,一条列出它没有改动的预训练事实知识

这张图承担的论证任务是把"改了什么"和"没改什么"钉成两条并列分支:左边那条挂在 SFT 之后(格式、语气、结构、拒答口径),右边那条明确标出仍由预训练负责(事实与知识)。它不画训练顺序,因为这是分类而不是流程;也正因为两条分支是并列的,判读时才必须分别出题,不能拿一版好答复同时给两边背书。

案例:一版"答疑口径"微调,格式涨满分、事实涨零分

下面全属课堂编造的虚构案例。星湾社区服务中心、几位工作人员、接口 https://api.example.invalid/v1、模型名 example-chat-mini、全部读数都是教学用的虚构样例,不可当依据引用。

2026 年 10 月,李陌读了上一节那套说法,给中心的自动答疑做了一版监督微调:挑了 1,000 条问答样本(这个数字是照着 LIMA 的说法抄来的,跟他的数据质量没有任何关系),样本内容是把张老师日常答复整理成"问一句、答一段"。他特别选了口径规范的几条:开头不复述问题、正文三条并列、结尾固定问一句"还需要我做什么"。

训练前后各跑同一批题,2026 年 11 月周衡来复查,抽查记录如下。

题面微调前微调后判读
新志愿者第一天来做什么一大段散文,中间夹两句官话三条并列,结尾一句"需要我把第一天安排发给你吗"纯格式,教到了
二楼办医保是几号窗口"这个要看当天安排""通常是 3 号窗口,工作日 9 点到 11 点半。"看着像学会了,其实样本里有一条正好写了 3 号窗口——同主语复述,不能算
周衡负责哪天无答复"周衡负责周四,同楼层还有应急窗口。"样本里只写过"李陌负责周二",这条是编的

复查里最要紧的是第二行。李陌原本以为它证明"事实确实进去了",周衡把它撤了:这条问法和样本几乎一字不差,模型答对只能说明同主语复述通过了,而这是格式层就能做到的事——样本里出现了那个值,答复位置照放。真正能定案的是第三行这类组合题:答案在样本里根本不存在,只能靠知识现推。

周衡按这个思路补了一组探针(下表读数是教学用虚构样例,不是真实测量):

探针类型出题数答对答得最顺的错法
同主语复述2018无错
换主语204编一个人名,语气与前 18 题完全一致
两跳组合205把两条样本里的窗口号直接相加成一个不存在的编号
改条件203照抄原时段,忽略题目把周三改成周五

同一版模型,同一次训练,四行的结果差出一个量级。李陌的那 1,000 条把答复的"样子"教得很好——所有答案都齐整、简短、结尾必带问句;也正因为它教得这么好,编出来的那句"周衡负责周四"读起来和对的那 18 条毫无区别。这就是为什么"看着像懂了"在这类评测里必须被禁用作判据。

结论要收得住:这次微调在它自己的评测里,能支持的只有"格式与风格被少量样本带动",以及"事实类组合题的通过率没有跟着格式一起涨"。它不能支持"1,000 条对这个模型够了",也不能支持"SFT 一律学不到事实"——这两个方向都是把一次课堂练习的读数推成了处方。

动手练习

  1. 六条样本判定。输入:六条虚构训练样本,依次记作甲到己。甲:每条答复末尾固定问一句"还需要我做什么"。乙:样本里写明"医保材料交 3 号窗口"。丙:正文一律拆成三条,不许写整段。丁:样本写"李陌负责周二答疑",测试题问"谁负责周二答疑"。戊:样本分别写"李陌负责周二""周衡负责周四",测试题问"本周哪位负责两天"。己:答复开头先把用户的问题原样复述一遍再作答。任务:给甲到己各判一次"教的是格式 / 教的是事实 / 两者都有",并写明你依据的是哪一处可见特征;再补一句——如果同类样本只给两条,你最没把握判的是哪一格,为什么。预期输出:六条判定各带一条可见特征,外加一段对把握程度的自我交代。验收条件:至少两条判定必须写到"从输出去处判断"而不是"从内容主题判断"(讲窗口号不等于教窗口知识);戊的判定必须给出可核对的检查办法,不许只写"这题太难判"。
  2. 改写一句过头的主张。输入:"1,000 条就够。"任务:把它改写成一句限定条件明确、并且能被一个具体反例推翻的说法,四个条件缺一不可:说清是哪一类基座、哪一类任务、用什么读数判"够"、给出一个能推翻它的具体结果长什么样。预期输出:一句改写后的主张加一句配套的反例描述。验收条件:改写后的句子里不许出现"够""好""不错"这类没有测量口径的形容词,也不许把限定写成"大多数情况下""一般来说"这种推不翻的说法。
  3. 交一张标注判定表。任务:做一张把格式与知识分成两栏的判定表,四行分别是:样本里看得见的证据、只看输出能做的检查、这种修法不管用、失败时长什么样。用你第一题里甲到己的具体条目填进去,不许写抽象类目名。验收条件:知识栏里至少有一行写出"需要外部真值";"这种修法不管用"那一行不许填"多给点数据"。

参考答案与推演

完成检查

  • 能说出"1,000 条精挑问答"这条主张证到哪一格:分得清摘要直陈的做法、摘要直陈的观察、作者带限定的推断这三层,并能举出越界后的两种说法("任何模型 1,000 条就够"和"SFT 一点新知识都进不去"),指出它们各自丢掉了哪个限定词。
  • 能现场设计一个只看输出就能区分格式与事实的检查:说清出题方式(样本里没有的组合)、判据(对照外部真值)和它的失效点(同主语复述会假过)。
  • 能解释为什么"表面对齐假说"这个说法不能安到 LIMA 头上,并且不用翻论文也能说出你核对的是哪两处(那个英文词在不在摘要里、摘要有没有做风格与事实的分区)。

参考与来源

  • LIMA: Less Is More for Alignment:本节三层拆分的每一格都对到这里——标准监督损失下只用 1,000 条精挑问答、不加强化学习与偏好建模(第一层),从为数不多的例子学到特定回答格式、举例含行程规划这类复杂问句并对未见任务泛化(第二层),以及"知识几乎全在预训练学到、只需有限指令微调数据就能产出高质量输出"这一带限定的推断(第三层)。同时用于核对摘要里没有 superficial alignment hypothesis 这个词、也没有风格与事实的分栏字样。2026-10-23 核到 arXiv 摘要页(提交 2023-05-18),只核到摘要,正文与图表未取;该文摘要中的人类评估比例与参数量等实验数字一律不引。
  • Training language models to follow instructions with human feedback:本节"SFT 是后训练里先加的那一步"这一位置判断,核到摘要中"先收集标注员写的期望行为示范数据做监督学习微调,再用输出排序数据做强化学习"那句(2026-10-23 核到 arXiv 摘要页,提交 2022-03-04)。只核到摘要,正文与图表未取,不引该文任何实验数字。

附件

SFT 教的是格式,知识不是它给的

3 道题 · 及格分 60 分

开始测验