一句话定义
SFT 是在预训练模型的基础上,用「指令 → 期望回答」的成对数据做监督学习,让模型从“会续写文本”变成“会按要求回答问题”。
和预训练有什么区别
预训练的目标是预测下一个 token,数据是海量无标注文本;模型学到的是语言规律和世界知识。SFT 的数据量小得多,但每条样本都带有明确的任务意图和理想输出。
训练时通常只对回答部分计算损失,把指令部分的 token 屏蔽掉,避免模型把注意力花在复述问题上。训练目标通常是最大化回答 token 的似然。
它教会模型什么
- 指令跟随:理解“总结”“翻译”“写代码”等任务要求。
- 回答格式:学会分点、给例子、控制长度、使用特定语气。
- 基础对齐:减少答非所问,建立初步的助手行为模式。
SFT 更适合塑造行为,而不是注入大量新知识。想让模型掌握最新事实,通常要配合 RAG 或继续预训练。SFT 的数据通常来自人工撰写或强模型蒸馏,规模从几千到几十万条不等。
Instruction Tuning
指令微调是 SFT 的一种:用指令-回答对训练模型跟随任务。区别主要在数据形态和任务覆盖,不是新的优化目标。
数据质量比数量更重要
高质量 SFT 数据通常具备这些特征:
- 指令清晰,任务边界明确。
- 回答正确、完整,且风格统一。
- 覆盖多样任务,避免只学一种模板。
- 包含适当的拒答和安全边界样本。
用在哪里
- 让基座模型学会指令跟随、回答格式和基本助手行为。
- 领域适配的起点;之后可接 RLHF/DPO,或与 LoRA 结合降低成本。
常见误区
- SFT 不是“把知识灌进模型”的主要手段。它更像行为示范。
- 数据越多不一定越好。低质量、重复、互相矛盾的样本会放大模型的不稳定。
- SFT 之后模型仍可能产生幻觉,通常还需要 RLHF 或偏好优化来进一步调整。
相关概念
- Transformer:SFT 训练的模型骨架。
- RLHF:在 SFT 之后用人类偏好继续优化模型行为。
- RAG:通过外部检索补充知识,而不是依赖微调记住事实。