监督微调(SFT)
AI TERM术语词条Supervised Fine-Tuning
术语释义
用人工标注的“问题-答案”数据继续训练基础模型,让它学会对话与指令遵循,是模型从“会预测”走向“会干活”的关键一步。
监督微调(Supervised Fine-Tuning,SFT)是在预训练完成后,用带标注的高质量数据对模型做进一步训练的方法。预训练让模型「博览群书」、掌握海量知识与语言规律,但此时它只会顺着文本往下接、并不会好好回答提问;SFT 通过模仿高质量的问答范例,让模型学会像助手一样说话和干活,是基座模型变成可用产品的必经环节。
为什么预训练不够
预训练的目标是预测下一个词,模型学到的是「什么样的文本最可能出现」,而不是「收到指令后该做什么」。你问它一个问题,它可能接着续写更多问题,或者用维基百科式的语气自说自话。SFT 用一个简单而有效的手段改变行为:喂给它大量「指令 + 理想回答」的样本,让它在给定指令的条件下最大化理想回答的概率,行为模式随之被引导到「执行任务」上。
- 收集数据:人工编写的问答对、指令范例、专业领域内容,也可以由更强模型辅助生成后再人工筛选。
- 构造样本:把问题作为输入、理想回答作为监督目标,并把多轮对话按统一模板拼接。
- 监督学习:只对回答部分计算损失,问题部分通常做掩码,避免模型学着「生成提问」。
- 评估与迭代:用留出集和人工打分验证能力提升,同时监控是否损害了原有能力。
全量微调、参数高效微调与提示工程
SFT 并不只有一种做法。全量微调更新全部参数,效果上限高但显存与算力开销大,也更容易在数据不足时破坏原有能力;参数高效微调(如低秩适配 LoRA,Low-Rank Adaptation)只训练少量新增参数,成本低、可多任务并存,效果通常接近全量微调;提示工程不改动任何参数,上手最快,但在复杂格式与专业风格上稳定性有限。三者常按预算与迭代速度搭配使用。
实践要点
- 数据质量优先于数量:几千条干净、风格一致、覆盖多样的样本,往往胜过几十万条噪声数据。
- 覆盖任务类型而非堆同质样本:指令多样性决定模型的泛化面,样本过于同质会让输出腔调单一。
- 标注口径先统一:同一问题在数据集中出现多种矛盾答案,会让模型学到模糊的边界。
- 学习率要小、轮数要少:SFT 是「微调」而非重训,过猛的训练容易导致灾难性遗忘与过拟合。
- 留出独立评测集:用训练中从未出现的样本验证效果,防止自评自夸。
- 把 SFT 与偏好对齐搭配:先用 SFT 教会格式与行为,再用偏好优化调整语气、安全性与取舍。
常见误区
- 把 SFT 当成灌知识的手段:知识主要来自预训练,SFT 更多是教「怎么用」;靠它注入大量新事实效率很低。
- 认为数据越多越好:低质样本会污染输出风格,重复样本还会加剧过拟合。
- 忽视格式模板的一致性:训练与推理时的对话模板不一致,会让模型表现明显掉档。
- 以为微调一次就能一劳永逸:业务数据会漂移,模型需要持续迭代与回归测试。
- 只优化回答不看整体:微调后通用能力下降而未被察觉,是实践中很常见的隐性损失。