什么是微调(SFT)-和预训练有什么区别- [intro-what-is-sft]

article
2026年7月21日阅读约 1 分钟169 字

更新于 2026年7月21日

什么是微调(SFT)?和预训练有什么区别?

预训练学知识、SFT 学听话,一文分清分工与数据形态

原题:什么是监督微调(SFT)?它和预训练分别负责什么,两个阶段的训练数据形态有什么不一样?

模型微调

30 秒回答

  1. SFT(Supervised Fine-Tuning,监督微调)= 用"指令-回答"成对数据,教预训练模型学会听懂并执行指令
  2. 分工:预训练学知识和语言能力(会说话),SFT 学对话格式和任务遵循(会好好回答)
  3. 数据形态迥异:预训练用海量无标注原始文本,SFT 用少量高质量的标注对话样本
  4. 训练目标同为预测下一个词,但 SFT 通常只对回答部分计算 loss

回答与解析

答案要点

  • SFT(Supervised Fine-Tuning,监督微调)= 用"指令-回答"成对数据,教预训练模型学会听懂并执行指令

  • 分工:预训练学知识和语言能力(会说话),SFT 学对话格式和任务遵循(会好好回答)

  • 数据形态迥异:预训练用海量无标注原始文本,SFT 用少量高质量的标注对话样本

  • 训练目标同为预测下一个词,但 SFT 通常只对回答部分计算 loss

  • SFT 是后训练(post-training)的第一步,后面还有 RLHF/DPO 等对齐环节

核心概念

SFT 是指在预训练好的基础模型上,用人工整理的"输入指令 → 期望回答"成对样本继续做监督训练,让模型学会按人类期望的方式回答问题。一个只经过预训练的基座模型(base model)本质是"续写机器":你问它"中国的首都是哪里?",它可能续写出"这是一道常见的地理题……"而不是直接回答——它只学过预测下一个词,没学过"该扮演助手"。SFT 补上的正是这一课。

预训练 vs SFT:分工与数据形态

预训练 SFT
目标 学语言规律和世界知识 学会听指令、按格式回答
数据 无标注原始文本(网页/书籍/代码) 标注好的指令-回答对
数据量 数万亿 token 几千到几十万条
成本 千卡集群、百万美元级 单机多卡甚至一张卡可做
类比 读完整座图书馆 岗前培训学"怎么接待客户"

SFT 数据长什么样

{"messages": [
  {"role": "user", "content": "把这句话翻译成英文:今天天气不错"},
  {"role": "assistant", "content": "The weather is nice today."}
]}

一个关键细节:计算损失时通常只对 assistant 部分算 loss(用户输入被 mask 掉),因为要教的是"怎么答"而不是"怎么问"。另一个共识是质量远比数量重要:几千条精标数据往往胜过几十万条脏数据。

入门后可以继续追:SFT 之后的 RLHF/DPO 对齐、微调导致的灾难性遗忘,以及 LoRA 等参数高效微调方法。

口语版讲法(约2分钟)

  • SFT解决什么问题
  • 预训练和SFT的分工与数据差异
  • 业务落地中的关键取舍
  • 延伸:对齐阶段

这道题其实在问我们怎么把一个只会续写的语言模型,调教成能听懂人话、好好回答的助手。预训练阶段,模型在互联网、书籍这些海量无标注文本里学语言规律和世界知识,它知道怎么把句子续写下去,但它不知道用户问'退款什么时候到'时应该直接回答,它可能接着写'这是一个常见问题,退款时间取决于支付方式'。SFT就是补上这一课,用人工标注的指令-回答对,教模型学会按人类期望的格式回答问题。

具体说一下分工。预训练负责'会说话',SFT负责'会好好回答'。数据形态差异非常大:预训练用的是原始文本,量级在数万亿token,成本高昂;SFT用的是成对的指令和回答,量级可能只有几千到几十万条,但质量要求极高。一个常见的错误是认为SFT数据越多越好,其实不然,几千条精标数据往往比几十万条脏数据效果更好。训练目标虽然都是预测下一个词,但SFT计算loss时通常只对assistant部分算,用户输入会被mask掉,因为我们只关心模型怎么答,不关心它怎么问。

落到业务场景里,比如客服退款场景,用户问'我买的商品还没发货,能退款吗',一个只经过预训练的模型可能续写出一段商品介绍,而经过SFT的模型会直接给出退款流程。但这里有个坑:如果SFT数据里全是标准问法,模型对用户的口语化表达就很容易翻车。所以我会特别关注数据多样性,比如把'退款'换成'退钱''不要了''取消订单'这些变体都覆盖到。

整体来看,我更倾向把SFT看成后训练的第一步,它解决的是指令遵循和对话格式问题,但模型可能还会产生幻觉或者输出不安全内容。所以SFT之后通常还要做RLHF或DPO这些对齐环节,进一步让模型符合人类偏好。

说到这,可以延伸一下:SFT之后的对齐阶段,比如RLHF,其实对数据质量的要求比SFT更高,因为它的reward模型需要大量人工偏好标注,而且容易训练不稳定。面试官如果追问,我会展开讲RLHF的reward hacking问题和DPO如何避免显式reward模型。

关键一句:SFT之后的对齐阶段对数据质量和训练稳定性要求更高

面试官还可能这样问

  1. 问法 1 · 概念辨析base 模型和 chat/instruct 模型有什么区别?为什么直接拿 base 模型问问题,它经常不好好回答而是往下续写?中间发生了什么训练?
  2. 问法 2 · 追问边界如果我手上只有 2000 条业务问答数据,做 SFT 够吗?数据量和数据质量哪个更重要?微调完发现模型通用能力变差了,可能是什么原因?