什么是 SFT?
SFT(Supervised Fine-Tuning,监督微调)是使用人工标注的"输入-输出"对数据对预训练模型进行有监督微调的训练方法。它是大模型训练流程中的关键步骤——在预训练之后、RLHF 之前——让模型从"语言模型"变成"指令助手"。
SFT 在训练流程中的位置
大模型的完整训练流程通常分三步:
第一步:预训练。在海量互联网数据上训练,学习语言规律和知识。这一步产出的是"基础模型"。
第二步:SFT(监督微调)。用人工标注的"指令-高质量回答"对数据微调模型,让模型学会遵循指令、生成有帮助的回答。这一步产出的是"指令模型"。
第三步:RLHF。用人类偏好数据进一步优化,让模型学会生成更符合人类期望的回答。
SFT 的核心要素
数据质量至关重要:SFT 阶段的数据质量比数量重要得多。少量高质量的人工标注数据,效果远优于大量低质量数据。
任务多样性:SFT 数据需要覆盖各种任务类型——写作、翻译、编程、问答、分析、创意等。
格式统一:使用统一的对话格式(如 ChatML 格式),让模型学会区分用户消息和助手消息。
SFT 的局限性
SFT 虽然能让模型学会遵循指令,但它学习的是"模仿"而非"理解"。模型可能看起来回答得很好,但实际上只是在模仿训练数据中的模式,而不是真正理解用户需求。这就是为什么 SFT 之后通常还需要 RLHF 来进一步优化。