SFT(Supervised Fine-tuning),即有监督微调,是大语言模型在预训练后,进一步理解人类意图、生成有用回答的关键步骤。它通过“指令-回复”对训练,使模型学会如何生成符合逻辑、结构清晰且满足不同任务需求的回答。简单来说,如果预训练是“学语言”,SFT就是“学听话”。整个流程包括数据准备、构造训练格式、监督学习训练以及模型参数更新。SFT能将模型从单纯的语言模型转变为初步的对话助手,但其局限性在于难以处理回答风格偏好、避免生成有害信息等问题,这些需要后续的RLHF技术来解决。
✨ **SFT核心在于“指令微调”**:SFT,即Supervised Fine-tuning,在大语言模型领域通常指的是“指令微调”。它是在模型完成预训练、掌握通用语言能力后进行的二次微调,旨在教会模型理解人类的意图,并生成有价值的、符合要求的回答。简而言之,如果预训练是让模型“学语言”,那么SFT就是让模型“学听话”,学会按照指令来完成任务。
🚀 **SFT的训练流程与关键细节**:SFT的流程主要包括四个步骤:1. **准备数据**,即收集高质量的“指令-回复”对,数据来源多样,如真实用户提问与人工撰写回答、专门设计的任务及回复,或现有的开源数据集。2. **构造训练格式**,通过添加特殊标记(如`<|assistant|>`)来区分指令和模型需要生成的回复部分,帮助模型理解输入输出界限。3. **训练方法**,采用标准的监督学习,目标是使模型生成的回答与目标回答一致,通常使用交叉熵损失函数衡量差距。4. **训练过程**,将指令和回复拼接成序列,模型并行预测下一个token,但**损失计算仅在`<|assistant|>`标记之后的部分**,以确保模型专注于生成有用回答,而非复述或篡改用户输入。多轮对话上下文也可加入以增强理解。
💡 **SFT的作用与局限性**:SFT极大地提升了模型的可用性,它能让模型从一个仅仅能够补全文本的“语言模型”转变为一个能理解并执行指令的“初步对话助手”,能够完成写诗、总结、答题等多种任务。然而,SFT也存在局限性:它无法解决模型对回答风格的偏好选择问题,也无法有效避免生成攻击性内容、虚假信息或立场偏差等问题。这些更深层次的“合人意”的需求,通常需要通过RLHF(基于人类反馈的强化学习)等后续技术来解决。
📊 **数据准备与训练格式的重要性**:高质量的“指令-回复”数据是SFT成功的基石。数据的来源直接影响模型的学习效果,真实用户提问与人工精心撰写的回答能提供更贴近实际需求的学习样本。同时,在训练格式中引入特殊标记(token)是至关重要的,它能清晰地界定用户指令和模型应输出的回答,帮助模型准确理解任务要求,并在训练过程中区分哪些部分是需要优化的目标(即回复部分),哪些是需要保持不变的输入(即指令部分)。
1、什么是SFT?
SFT,全称是 Supervised Fine-tuning(有监督微调),在大语言模型中通常指“指令微调”。

它是在大模型经过预训练、具备通用语言能力后,通过进一步微调让它学会理解人类意图,生成有用回答。
SFT 的目标是通过一批高质量的“指令-回复”对,让大模型学会:
什么是“有用”的回答
如何有逻辑地、结构地回应用户指令
如何按照不同任务的需求(总结、翻译、写代码等)采用合适的表达方式
简单说: 预训练是“学语言”,SFT是“学听话”

2、SFT的流程是怎样的?
整个过程可分为四个主要步骤:
准备数据(指令-回答对)
数据来源可能包括:
真实用户提问 +人工精心撰写的优质回答
专门设计的任务指令及对应回复
高质量开源数据集(如 Alpaca、ShareGPT等)
每个样本的形式通常是:
输入:一个用户指令
输出:一个理想回复

构造训练格式(加特殊 Token)
为了让模型区分“指令”和“回答”,通常会加上一些特殊的标记(token),比如:
请介绍一下绍兴
<|assistant|>绍兴是浙江省的历史文化名城……
这些标记帮助模型判断哪一部分是提问,哪一部分是它需要生成的回复。
训练前会通过 tokenizer 把文本切成 token 序列,如:“请介绍一下绍兴”→[1432,2101,847,1067]
训练方法
和预训练阶段的自监督学习不同,SFT使用的是标准的监督学习:在给定指令的基础上,学习如何生成与目标回答一致的内容。

损失函数通常还是交叉熵(Cross Entropy Loss),用来衡量模型生成的 token 和理想答案之间的差距。
训练过程
训练过程主要包括:
将用户输入(指令)和目标回复拼接成一个完整的 token序列
并行预测每个 token 的下一个 token
只在<|assistant|>之后的部分计算损失
反向传播,更新参数
重点: 用户输入部分不计算损失,目的是避免模型记忆、复述、或篡改用户问题,而是专注于生成有用回答。
此外,训练中也可加入:多轮对话上下文,帮助模型理解语境。
3、SFT的作用和局限
预训练: 教模型学语言,理解语法、常识、表达方式但这阶段的模型不能准确遵循指令生成内容,只是机械地补全文本。
SFT(指令微调) : 教模型听懂人话,按照指令-完成任务,比如写诗、总结、答题。它让模型从“语言模型”变成了“初步的对话助手”。

但 SFT 无法处理以下问题:
模型更偏好哪种回答风格?哪个更符合人类喜好?
如何避免输出攻击性内容、虚假信息、立场偏差?
这些问题,靠模仿人类回答还不够,还需要下一阶段:RLHF(基于人类反馈的强化学习),让模型“更合人意”。
AI大模型系统化学习入口