简介:本文系统解析大模型后训练中的监督微调技术,阐明其定义、原理、核心流程与适用边界,帮助开发者理解SFT在训练生产级模型中的价值与局限,并建立对后训练技术体系的整体认知。
监督微调(Supervised Finetuning,简称SFT)是大语言模型训练流程中的一个关键阶段,指在已完成预训练的基座模型之上,使用人工标注或人工筛选的高质量“输入-输出”配对数据,通过标准的有监督学习目标对模型参数进行二次训练,使模型的行为从“单纯预测下一个词”转向“按照人类期望的方式回答问题、执行指令”。
从技术视角看,SFT是一种条件概率分布的再对齐过程:预训练阶段模型学到的是通用语言的统计规律,而SFT阶段则通过特定任务分布的数据,将模型的输出分布收窄到“有用的助手式回答”这一子空间内。从业务视角看,SFT是让基座模型具备可用性的第一道工程化改造工序——没有经过SFT的基座模型,往往只能做文本续写,而无法稳定地遵循指令、拒绝有害请求或按格式输出结构化内容。从使用视角看,SFT决定了模型“会不会听话”“听不听得懂格式要求”“能不能保持稳定的回答风格”,是后续所有对齐工作的基础。
在大模型训练的早期探索中,业界一度认为只要把模型规模做大、把预训练数据做多,模型就能自然涌现出指令遵循能力。但实践很快证明,基座模型的能力虽强,其输出形态却是“发散”的:给定一个问题,它可能续写出更多问题,也可能编造一段看似合理却与事实无关的文本。这种发散性来源于预训练目标的本质——预测下一个词并不区分“回答”与“续写”。
于是,如何让模型稳定地产生符合人类预期的输出,成为生产级大模型必须解决的核心问题。SFT正是在这一背景下成为成熟且行之有效的方案。它的价值体现在三个方面:
第一,行为可控。通过标注数据,开发者可以明确告诉模型“什么样的回答是被接受的”,从而约束模型的输出空间。
第二,能力可迁移。SFT数据往往只覆盖少量任务类型,但模型能将学到的“遵循指令”这一元能力泛化到未见过的任务上。
第三,工程可落地。相比强化学习,SFT的训练流程更接近传统的有监督学习,工具链成熟、训练稳定、调参经验丰富,适合规模化生产。
一个完整的SFT训练流程通常由以下要素构成:
SFT的训练目标可以形式化地理解为:给定指令 x,最大化模型输出期望回答 y 的概率。其损失函数可简化为:
L = -Σ log P(y_t | x, y_<t; θ)
其中 θ 为模型参数,y_<t 表示回答中第 t 个词之前的上下文。训练过程中,模型参数会朝着“在给定指令下更可能生成标注回答”的方向更新。
值得注意的是,SFT并不是让模型“记住”标注答案,而是通过大量样本让模型归纳出“面对这类指令应当如何组织回答”的模式。这也是为什么SFT之后模型能对未见过的指令产生合理回答——它学到的是回答的元策略,而非具体答案本身。
然而,SFT也有其固有局限。高质量标注数据的获取成本高、覆盖范围有限,且模型容易对训练数据中的风格产生过拟合。更重要的是,SFT只能告诉模型“什么是好的”,却很难告诉模型“什么是更好的”——当存在多个合理回答时,SFT无法表达偏好强度。这为后续引入基于奖励函数的优化方法留下了空间。
SFT的适用场景主要集中在以下方向:
SFT常与以下概念同时出现,但定位不同:
在实践中引入SFT时,需要关注以下问题:
监督微调是大语言模型从“能说话”走向“会听话”的关键工序,它通过有监督学习的方式,将人类期望的回答模式内化到模型参数中,使模型具备稳定的指令遵循能力。它的核心价值在于行为可控、能力可迁移、工程可落地,是当前训练生产级大模型的成熟方案。同时也要认识到,SFT的表达能力存在边界——它能定义“好”,却难以定义“更好”,因此在实际训练体系中,SFT往往与基于奖励函数的优化方法配合使用,共同构成完整的后训练流程。理解SFT的定义、原理与边界,是理解整个大模型训练范式的起点。