SFT(有监督微调)

SFT

教模型听指令

亦作、亦称:有监督微调

有监督微调(Supervised Fine-Tuning,SFT)是将预训练基座模型在人工标注的指令-回答数据对上继续训练的过程,目的是让模型从单纯的文本续写,转变为能够理解并执行用户指令的对话助手。它是当前大语言模型对齐流程(如 RLHF)的第一个也是最关键的阶段,数据质量直接决定指令遵循能力的上限。

概述

有监督微调(Supervised Fine-Tuning,SFT)是将预训练基座模型在人工标注的指令-回答数据对上继续训练的过程,目的是让模型从单纯的文本续写,转变为能够理解并执行用户指令的对话助手。它是当前大语言模型对齐流程(如 RLHF)的第一个也是最关键的阶段,数据质量直接决定指令遵循能力的上限。

什么是有监督微调

SFT 是迁移学习在大语言模型对齐中的核心应用形式。

  • 基座模型(Base Model)通过海量无标注文本预训练,擅长「续写」但不擅长「听指令」
  • SFT 以指令-回答对为训练样本,用标准交叉熵损失做监督学习,损失只计算在回答部分
  • 训练目标是让模型在给定指令时,生成与示范回答分布一致的输出
  • SFT 通常只需要相对少量的高质量数据(数千至数万条)即可显著提升指令遵循能力
  • 训练完成后得到指令模型(instruction model / chat model),是后续奖励模型训练和强化学习(RLHF/DPO)的起点

训练数据格式

SFT 数据的质量直接决定微调效果,格式因应用场景而异。

  • instruction-input-output 三元组:最早由 Stanford Alpaca 等工作普及,适合单轮指令任务
  • 多轮对话消息列表(messages 格式):包含 system / user / assistant 角色轮次,适合对话场景
  • 系统提示(System Prompt):可以在数据中嵌入角色设定,赋予模型特定人格或行为约束
  • 数据来源包括:人工标注(如 OpenAI 的标注团队使用约 1.3 万条数据训练 InstructGPT)、Self-Instruct 自动生成、GPT-4 蒸馏(如 Alpaca、Vicuna)
  • 数据多样性准确性优先于单纯数量;低质量数据会导致模型出现幻觉或错误行为

发展脉络

SFT 的演进与大语言模型对齐研究密切相关。

  • 2021:Google 发布 FLAN(Wei et al.),在多任务指令混合上微调语言模型,验证指令微调可大幅提升零样本泛化
  • 2022:OpenAI 发表 InstructGPT 论文(Ouyang et al.),将 SFT 确立为 RLHF 第一阶段,并证明 1.3B 参数的 InstructGPT 在人类偏好上优于 175B 未对齐的 GPT-3
  • 2023:Stanford Alpaca 以 5.2 万条 GPT-3.5 生成数据微调 LLaMA-7B;LIMA(Meta)用 1000 条精选数据媲美大规模 SFT,印证「质量优于数量」
  • 2023QLoRA 提出量化 + LoRA 组合,使单卡 24GB GPU 上对 65B 模型做 SFT 成为可能
  • 2024 至今合成数据大规模应用于 SFT,配合 Constitutional AI 原则成为主流数据策略

训练机制

SFT 的技术细节决定了微调的稳定性与泛化能力。

  • 只对回答(output)部分计算损失,指令部分通常被 mask 掉,避免模型过拟合到输入格式
  • 学习率一般远低于预训练阶段(如 1e-5 至 2e-5),以防止灾难性遗忘(catastrophic forgetting)
  • 常配合 LoRA 等参数高效微调(PEFT)方法,大幅降低显存需求
  • 训练轮数(epoch)通常 1-3 轮,过多会导致过拟合和多样性下降
  • 数据混合比例(指令类型、领域分布)是影响最终能力的关键超参数

与相邻技术对比

理解 SFT 需要将其与相邻概念区分。

  • SFT vs 预训练:预训练在数万亿 token 无标注语料上学语言规律;SFT 在数千到数十万条有标注数据上学行为规范,成本差距数个量级
  • SFT vs 指令微调(Instruction Tuning):指令微调是 SFT 的一种特定形式,强调在多任务指令数据上训练以增强零样本能力
  • SFT vs RLHF/DPO:SFT 解决「能不能按指令做事」;RLHF/DPO 在 SFT 基础上进一步解决「回答是否符合人类偏好」
  • SFT vs 提示工程:提示工程只改变输入,不修改权重,门槛低但能力受限于基座;SFT 改变权重,效果更稳定
  • SFT vs RAG:RAG 在推理阶段注入外部知识,不改变模型参数;SFT 在训练阶段改变行为模式,两者互补

局限与误区

SFT 并非万能,有几个关键边界需要清楚认识。

  • 不能注入新知识:SFT 只能激活并引导预训练阶段已有能力,无法植入模型从未见过的事实知识;注入知识需继续预训练或 RAG
  • 幻觉问题无法根治:即使经过 SFT,模型仍可能生成自信但错误的内容,还需结合 RLHF 或 RAG 缓解
  • 对齐税(Alignment Tax):过度 SFT 或数据分布单一,可能导致模型过拟合到特定回答风格,牺牲创造力
  • 格式错位(Template Mismatch):训练与推理阶段 chat template 不一致,会造成难以排查的隐性性能损失
  • 数据量不等于质量:堆砌低质量数据反而会放大偏见并使模型行为退化

常见误解

日常交流中容易听到的简化说法,未必准确,但能帮助理解误解从何而来。

  • 「教模型听指令」
  • 「教它听人话」
  • 「指令微调」

相关术语

和本术语关联紧密的其他词条,便于串联理解。

🎯 考点练习

含该术语的高频面试题,含标准答案与追问。

延伸阅读

从知识库精选 2 篇文章,帮助深入理解该术语。

  1. 1

    LLM 微调技术全景:LoRA、QLoRA、DPO 与参数高效微调实战

    从全量微调到参数高效微调的系统性进阶。深入解析 LoRA、QLoRA、DPO、ORPO、GAPO 等主流微调技术,对比不同方法的参数量、显存需求、训练效果和适用场景,配以完整的 Python 可运行代码和实战训练脚本,帮助开发者为特定任务定制专属 LLM。

  2. 2

    RLHF(一):基于人类反馈的强化学习

    从奖励模型到 PPO 优化,理解大模型对齐的核心技术

外部参考

维基百科:查看「SFT」词条

本页内容为本站原创撰写;维基百科链接仅作延伸参考。