SFT 监督微调是什么意思?
简答:SFT(监督微调)就是用“问题—标准答案”样本继续训练预训练模型,让它更稳定地按指定任务、格式和语气作答;它主要改变行为,不等于把新资料直接塞进模型。
定义:SFT(Supervised Fine-Tuning,监督微调)是用带有目标答案的示例数据继续训练预训练模型,使模型更稳定地完成特定任务。
先看结论:SFT 到底改变了什么
如果你刚看到“监督微调”这个词,可以先把它理解成:给已经会说话的模型一批“题目和标准答案”,让它反复学习应该怎样回答。输入是问题、指令或上下文,输出是人工认可的答案;训练过程会调整模型参数,使模型更倾向于生成这些目标答案。Amazon 的官方说明也将 SFT 定义为使用输入—输出配对数据继续训练模型,通常通过监督损失让预测结果接近目标输出。Supervised Fine-Tuning - Amazon Nova
生活化类比:预训练像是让学生先学会阅读、表达和一般知识;SFT 像是拿一套批改过的练习题,教学生按照公司的答题格式、客服口吻或分类规则完成任务。
| 方法 | 主要解决什么问题 | 需要什么数据 | 是否直接改变模型参数 |
|---|---|---|---|
| Prompt Engineering | 临时说明任务和输出格式 | 提示词 | 否 |
| SFT | 稳定学习任务行为、格式和回答风格 | 输入与标准输出样本 | 是 |
| RAG | 回答时参考外部文档或最新资料 | 可检索的资料库 | 通常否 |
| 继续预训练 | 适应某个领域的语言和文本分布 | 大量领域文本,通常不要求标准答案 | 是 |
| LoRA | 用较少可训练参数完成适配 | 仍然需要任务数据 | 是,但主要训练低秩适配器 |
| DPO | 让模型偏向人类选择的回答 | 同一问题下的偏好回答对 | 是 |
| RLHF | 通过奖励信号优化回答偏好 | 偏好数据、奖励模型或奖励信号 | 是 |
SFT 的基本原理:输入、标准输出与损失
SFT 的核心不是把一段资料简单上传给模型,而是让模型看到许多“给定输入,应该输出什么”的示例。训练时,模型先根据输入预测后续词元,再把预测结果与标准答案比较;差异越大,训练信号通常越强,模型参数也会朝着更接近标准答案的方向更新。官方训练文档把这种目标描述为对目标回答进行监督学习,常见损失是交叉熵。监督式微调(SFT)- Amazon Nova
对新手来说,可以先只记住三部分:输入是模型要处理的问题,标准输出是希望模型给出的答案,训练目标是让模型以后遇到相似输入时更接近标准输出。
一个简化的多轮对话样例可以写成 JSONL,也就是每行一个 JSON 对象:
{"messages":[{"role":"user","content":"把下面的文本归类为投诉、咨询或建议:电池续航不够。"},{"role":"assistant","content":"投诉"}]}实际训练工具通常还会要求使用模型对应的对话模板。Hugging Face 的 SFT 文档列出了普通文本、提示词—补全和多轮对话等数据格式,并说明对话数据可以自动套用聊天模板。SFT Trainer 文档
SFT 能解决什么,不能解决什么
适合解决的问题
- 固定分类:例如把工单分成退款、物流、产品咨询等类别。
- 固定格式:例如稳定输出 JSON、表格字段或结构化摘要。
- 固定语气:例如按照企业客服、技术文档或简短通知的口吻回答。
- 重复任务:例如把自然语言转换成 SQL、字段映射或标准操作步骤。
这些任务的共同点是:你能够比较清楚地写出“输入是什么,理想输出是什么”。AWS 官方文档也将任务分类、问答和格式转换列为适合使用输入—输出样本进行 SFT 的场景。Supervised Fine-Tuning - Amazon Nova
不适合单独依赖 SFT 的问题
- 需要经常更新的资料:例如每天变化的库存、价格、制度或新闻,优先考虑检索外部资料,而不是频繁重新训练。
- 只有原始文档、没有标准答案:这更接近继续预训练或 RAG 数据准备,不能直接当作高质量 SFT 样本。
- 想让模型凭空获得事实:SFT 可以让模型学会某种回答方式,但不能保证把资料中的每个事实都准确记住。
- 任务规则本身不清楚:如果人工标注者给出的答案互相矛盾,训练后模型也可能表现不稳定。
因此,“知识注入”和“行为调整”要分开看:RAG 更像回答时查资料,SFT 更像训练模型形成稳定的做事方式。SFT 课程资料也明确强调,监督微调主要是调整模型如何应用已有能力,而不是从零开始教会模型全部知识。Supervised Fine-Tuning with SmolLM3
从数据准备到上线:SFT 的最小实践流程
- 先写清任务边界:用一句话说明输入、输出和合格标准,例如“输入一条用户反馈,输出一个固定类别”。
- 整理输入—输出样本:每条样本都要有明确目标答案,删除重复、互相矛盾、带有错误格式的记录。
- 统一数据格式:多轮对话使用统一的 role 和 content 字段;结构化任务统一字段名、标签名称和输出顺序。
- 划分训练与验证数据:不要把完全相同或高度相似的样本同时放进训练集和验证集,否则评估结果可能虚高。
- 选择训练方式:资源充足且希望整体调整模型时,可考虑全参数微调;资源有限时,可考虑 LoRA。LoRA 的原始论文提出冻结预训练权重,只训练低秩更新矩阵,以减少需要训练的参数。LoRA: Low-Rank Adaptation of Large Language Models
- 需要进一步节省显存时:QLoRA 将量化后的基础模型与 LoRA 适配器结合,重点是降低训练时的内存占用;它不是另一种任务目标,仍然属于参数高效微调路线。QLoRA: Efficient Finetuning of Quantized LLMs
- 用未参与训练的样本评估:检查准确率、格式合规率、拒答边界、长文本表现和原有能力是否下降,不要只看训练损失。
- 小范围上线并持续复测:先观察真实输入中的错误类型,再决定是补充数据、修改提示词、接入 RAG,还是重新训练。
SFT、LoRA、DPO 和继续预训练,别把它们当成同一层概念
这几个词经常一起出现,但它们解决的问题不同。SFT 是一种训练目标和数据组织方式;LoRA 是一种减少可训练参数的实现方法,所以可以出现“用 LoRA 做 SFT”。QLoRA 则是在量化基础模型上训练 LoRA 适配器。DPO 使用偏好数据,让模型在两个或多个候选答案之间更偏向被选中的答案;其原始论文将 DPO 设计为直接利用偏好数据优化模型,而不必单独训练传统奖励模型。Direct Preference Optimization
继续预训练使用的是领域文本和语言建模目标,重点是让模型适应新的领域语言分布;SFT 使用带目标答案的示例,重点是让模型按指定方式完成任务。研究论文将持续预训练描述为让模型适应不断变化或专业化语料的过程。Lifelong Pretraining: Continually Adapting Language Models to Emerging Corpora
快速判断:如果你能写出大量“输入—理想输出”,先考虑 SFT;如果主要缺少最新资料,先考虑 RAG;如果只有领域原文,先考虑继续预训练或资料检索;如果已经有“回答 A 比回答 B 好”的标注,再考虑偏好优化方法。
常见失败原因与自查清单
- 答案风格不一致:同一种问题有时输出长文,有时只输出标签,模型很难学到稳定规则。解决办法是先统一示例规范。
- 训练样本重复过多:模型可能记住少数模板,却没有真正学会任务。解决办法是检查重复问题、相似答案和模板占比。
- 标签定义含糊:“投诉”和“建议”的边界不清,会导致人工答案本身不一致。解决办法是为每个类别写判定规则和反例。
- 只看训练损失:训练集变好不代表真实输入也变好。解决办法是保留独立验证集,并加入未见过的边界案例。
- 把资料全文直接当 SFT 答案:长文档不等于高质量指令样本。解决办法是先明确用户问题、引用范围和标准回答。
- 忽略原有能力:过度贴合单一任务可能影响通用问答或格式能力。解决办法是同时评估目标任务和原有能力,必要时混入代表性通用样本。
最后可以用一句话做决策:想让模型“知道哪份资料”,优先解决检索或领域语料问题;想让模型“按照什么方式做事”,才重点考虑 SFT。
常见问题
SFT 是什么意思?
SFT 是 Supervised Fine-Tuning 的缩写,中文是监督微调,指使用带有标准答案的示例继续训练预训练模型,让模型更稳定地完成指定任务。
SFT 和微调是一个意思吗?
SFT 是微调的一种常见方式,但微调还可能包括其他训练目标和方法。SFT 的关键特征是训练样本中有输入和期望输出。
SFT 能不能让模型记住公司的知识库?
SFT 可以让模型学习知识库问答的回答方式,但不保证准确记住所有资料。知识经常更新时,通常还要考虑检索外部资料,并用测试集检查引用和事实准确性。
SFT 和 LoRA 有什么区别?
SFT 说明“用什么监督数据和目标训练”,LoRA 说明“训练哪些参数”。两者可以组合使用,也就是用 LoRA 方式完成 SFT。
没有代码基础,是否必须自己训练 SFT?
不一定。先用提示词和少量人工示例验证任务是否稳定;只有当任务边界清楚、样本质量可控且确实需要长期保持某种行为时,再评估 SFT 的训练门槛和维护成本。
相关阅读
参考资料
- Supervised Fine-Tuning - Amazon Nova
- 监督式微调(SFT)- Amazon Nova
- SFT Trainer
- Supervised Fine-Tuning with SmolLM3
- LoRA: Low-Rank Adaptation of Large Language Models
- QLoRA: Efficient Finetuning of Quantized LLMs
- Direct Preference Optimization
- Lifelong Pretraining: Continually Adapting Language Models to Emerging Corpora