后训练与对齐 核心 约 18 分钟 更新 2026-10-02

指令微调 SFT:让模型学会对话与遵循指令

学习状态:
未学

一句话定义

指令微调(Supervised Fine-Tuning,SFT)用人工撰写或精选的「指令-回答」数据对基座模型做监督训练,教会它以助手的方式理解指令、组织回答与使用对话格式。

为什么重要

SFT 是行为格式化的第一步,投入产出比极高:数千到数万条高质量数据即可让基座产生对话能力(FLAN 与 InstructGPT 的经典结论)。它是理解后训练的起点,也是开源社区「自己调一个对话模型」最常动手的环节——本知识点讲机制与数据观,实操细节(LoRA、超参、数据制作)见微调专题站。

前置知识

核心概念

原理与机制

SFT 与预训练共用同一个下一词预测损失(见 kp-005),改变的只是数据分布:从互联网文本换成「指令-回答」分布。模型由此学会两件事:一是格式行为(角色轮替、拒答方式、列表结构),二是任务映射(把自然语言描述映射到隐式掌握的能力)。质量机制上,噪声数据会把「编造、口癖、冗长」固化成行为;数据多样性决定泛化边界——未见过的任务类型表现明显更弱。多轮对话数据还需保证轮间一致性,否则模型学会「自相矛盾」。

公式或模型

SFT 损失(带回答掩码):

L_SFT = − Σ_{t ∈ 回答区间} log P(y_t | 指令, y_<t)

图示

<系统> 你是乐于助人的助手 </系统>
<用户> 用一句话解释彩虹 </用户>
<助手> 彩虹是阳光经雨滴折射与反射色散而成的光学现象。 </助手>
        ↑ 只对 <助手> 区间计算损失(指令部分被掩码)

直观类比

像教一位「什么书都读过」的人写工作邮件:不需要再给他知识(预训练已给),只需要几十封「范文 + 场景说明」(SFT 数据),他就掌握了语气、结构与场合的映射。范文质量差,他学到的坏习惯也根深蒂固。

实例或案例

FLAN(2022)将 1800+ 任务统一为指令格式做微调,零样本性能显著超越同基座;InstructGPT 的 SFT 阶段用约 1.3 万条标注(量级参考)即完成行为格式化;LIMA(2023)以约 1000 条精选数据复现「少而精」路线。开源社区由此掀起「小数据 SFT 涌现对话能力」的复现浪潮。

常见误区

与其他知识点的关系

自测题

  1. SFT 的损失函数与预训练有何异同?
    答案要点:同为下一词预测交叉熵;SFT 增加指令掩码(只算回答区间)且数据分布换成指令-回答对。
  2. 「SFT 数据质量优先」的两条证据或机制解释?
    答案要点:LIMA 千级精标即有效;噪声数据会把幻觉与口癖固化成行为。
  3. 训练与推理模板不一致会发生什么?
    答案要点:模型未在训练分布内见到该格式,行为退化(胡乱续写、角色混乱)。

延伸阅读