SFT(监督微调,Supervised Fine-Tuning)是一个在机器学习和自然语言处理领域中常用的术语,指对已经预训练的模型进行特定任务的训练,以提高其在该任务上的表现。
SFT的基本思想是利用特定任务的数据,对已经在大量通用数据上训练完成的预训练模型进行进一步调整,使其更适合该任务,也更好地适应最终任务和对齐用户偏好。通常LLM的预训练是无监督的,但微调过程往往是有监督的。SFT能够提升模型在特定任务上的性能表现,提升模型在不同任务上的灵活性。
SFT数据集构建通常有两种方法:人工标注和使用LLM(比如GPT-4)来生成的,人工标注对于构建垂直领域比较合适,可以减少有偏数据,但是成本略高;使用LLM生成,可以在短时间内生成大量数据。
大模型的SFT方式主要包括:全参数微调、部分参数微调、LoRA、QLoRA、P-Tuning。
大模型的SFT过程包括以下几个步骤:
(1)预训练模型:首先在大规模的无监督数据集上训练一个基础模型,目的是让模型学习语言的基本结构和知识。
(2)数据收集与标注:选择特定任务的数据集,对数据进行预处理和标注。
(3)监督微调:将预训练的基础模型在标注好的数据集上进行进一步训练。
(4)模型评估与优化:使用验证集对微调后的模型进行评估,计算模型在任务上的性能指标,根据评估结果对模型进一步的优化和调整。