微调是什么:让基础模型学会处理具体任务
讲清微调、SFT、指令微调、数据质量、灾难性遗忘和 RLHF 之间的关系。
相关工具
微调不是从零训练模型
理解微调,先要把它和预训练分开。预训练阶段让模型在海量文本中学习语言规律和通用知识,得到一个基础模型;微调是在这个基础上继续训练,让模型更适合某一类任务、某一种回答方式,或者某个领域的使用场景。AI 大模型面试题资料里有一句很直白的说法:知识主要是在预训练阶段注入的,微调阶段是在特定任务上训练,使预训练模型的通用知识和任务要求结合起来。
这句话对初学者很有用。微调通常不是为了让模型凭空学会一整个世界,而是让它把已经具备的语言能力用到更明确的任务上。比如基础模型会续写文章,但不一定知道用户要它“用三句话总结”“按表格输出”“只给结论不解释”。微调会用成对的样本告诉模型:看到这种指令时,应该怎样回答。
所以,微调更像把一个会写作、会阅读、会推理的通用模型,训练成更懂某种工作习惯的助手。它不负责打地基,但会改造房间的功能:哪里是问答区,哪里是翻译区,哪里是客服口吻,哪里是代码解释。这样理解,比把微调简单说成“给模型补知识”更准确。
SFT 让模型初步学会按要求答
资料中反复出现的 SFT,全称是 Supervised Fine-Tuning,也就是有监督微调。它的做法并不神秘:准备一批“指令-回答”样本,在基础语言模型上继续训练。LLM 全教程总结里提到,指令微调模型通常先经过大规模文本预训练,再使用包含指令和对应回复的小数据集做有监督 fine-tune,让模型逐步学会遵循指令生成输出。
举个例子,样本里可能写着:指令是“把下面这段话改成更正式的表达”,回答就是一段修改后的文本。也可能是“解释什么是光合作用”,回答是一段简明解释。模型反复看到这样的配对,就会明白用户输入不是普通开头,而是在交代一个任务;回答不该随意续写,而要围绕任务完成。
SFT 训练出的模型已经有初步任务完成能力。资料中提到,SFT 模型能够完成开放领域问题、阅读理解、翻译、代码生成等能力,也具备一定的未知任务泛化能力。这里的“初步”很关键。SFT 能让模型像助手,但它还不一定足够稳,后面常常还需要偏好对齐、安全训练或其他方法来继续调整。

有监督微调用指令和参考回答继续训练基础模型,让模型初步学会把输入当任务处理,而不是只做自然续写。
微调数据质量比数量更要紧
微调最容易被低估的部分是数据。AI 大模型面试题资料里明确提到,进行大模型微调时,数据很重要,数据质量的重要性大于数据数量。它给出的建议也很具体:训练数据要干净并且有代表性,prompt 要尽量多样化,多任务训练时要尽量保持各任务数据量平衡。
这些建议不是形式要求。微调数据如果重复太多,模型会学到机械回答;指令如果总是同一种写法,模型遇到换一种问法就容易失灵;答案如果有错,模型会把错误当范例;任务分布如果偏得厉害,模型会在某个任务上看起来进步很快,却牺牲其他能力。对微调来说,坏数据不是没有帮助,而是会把模型带偏。
很多时候,小而干净的数据集比一大堆粗糙样本更有效。比如你要训练模型做客服问答,样本应该覆盖真实用户会问的问题、常见追问、边界情况、拒答方式、升级人工的场景,而不是只堆几千条模板问答。微调不是把数据塞进去就完事,它更像给模型看一批高质量示范,让它学会你希望它采用的处理方式。

重复、模糊、噪声和任务失衡都会影响微调效果。更可靠的做法是保留代表性、多样性和答案质量都过关的样本。
什么时候适合微调
不是所有问题都需要微调。如果只是让模型按某种格式输出、根据几段资料回答、换一种语气写文案,很多时候 Prompt、示例和 RAG 就够了。微调更适合那些反复出现、格式稳定、评价标准明确,而且靠提示词很难长期稳定控制的任务。
比如,一个企业希望模型长期按照自己的客服规范回答,遇到退款、投诉、售后、隐私问题时都有固定口径;一个教育产品希望模型批改作业时遵循固定评分标准;一个行业助手希望模型熟悉特定术语和流程。这些场景都有共同点:不是一次性问答,而是要把某种稳定行为固化到模型里。
但微调也不应该被当成万能补丁。如果问题是资料太新、需要引用原文、答案依赖实时数据库,那更适合 RAG 或工具调用;如果问题是提示词写得不清楚,先改 Prompt 更划算;如果问题是产品流程本身没有定义清楚,微调只会把混乱放大。决定微调前,最好先问一句:我要改变的是模型的行为习惯,还是只是给它更多资料?
Base 还是 Chat,要看数据量和目标
AI 大模型面试题资料里提到一个很实用的判断:做 SFT 实验时,基座模型选 Chat 还是 Base,要根据 SFT 数据量决定。如果只有小于 10k 的数据,建议选 Chat 模型作为基座;如果有 100k 级别的数据,可以考虑在 Base 模型上微调。这个判断背后的意思是,数据少时不要低估已有 Chat 模型的对齐基础。
Chat 模型已经经过指令微调和一定程度的对齐,知道如何和人对话。你在它上面做小规模微调,通常是在已有行为上继续调整风格或任务能力。Base 模型更接近预训练后的基础状态,空间更大,但也更需要足够多、足够好的指令样本来教它怎么做任务。
当然,这不是绝对公式。真实项目还要看模型许可证、成本、部署方式、上下文长度、推理速度和评测结果。但对初学者来说,先记住这个方向就够了:数据少,别轻易从 Base 开始;数据多、目标明确、训练能力也跟得上,再考虑从 Base 上做更完整的 SFT。
SFT 之后可能出现什么问题
微调会改变模型参数,所以它既可能让模型更适合某个任务,也可能带来副作用。小黄搞 AI 的资料里列到,SFT 后可能出现过拟合、灾难性遗忘、模型偏差增加、泛化能力下降、鲁棒性降低等问题。这些词听起来偏学术,但实际现象很容易理解。
过拟合就是模型太记训练样本。训练集上回答很好,换一个真实用户的问题就乱了。灾难性遗忘是模型在新任务上训练太重,反而忘掉预训练阶段学到的一部分通用能力。比如微调后特别会写某类客服话术,却在普通问答、推理或改写任务上变差。泛化下降则是模型离开训练数据分布后,不知道该怎么处理新情况。
这些问题通常和数据规模、样本多样性、学习率、训练轮数、任务冲突有关。解决方向也很朴素:别让数据太窄,别让错误样本混进去,别训练过头,要用验证集和真实 case 检查效果。微调不是只看训练 loss 下降,最终要看模型在真实任务里是不是更稳。

SFT 可能带来过拟合、灾难性遗忘和泛化下降。后续可通过偏好反馈、奖励模型、RLHF 或 DPO 等方式继续调整模型行为。
RLHF 不是普通微调,而是偏好对齐
SFT 教模型“参考答案长什么样”,RLHF 更像是教模型“哪种回答更受人认可”。AI 大模型面试题资料里描述 RLHF 流程时提到:语言模型先根据问题生成答案或续写,然后用函数、模型、人类反馈或它们的组合评估问题和答案,并映射成奖励分数;之后再用 PPO 等方法训练语言模型,让生成结果获得更高奖励。
这和普通监督微调不一样。SFT 通常需要给出理想回答,模型照着学;RLHF 则常常比较多个回答的优劣,让模型向人类偏好的方向调整。比如两个回答都没错,但一个更清楚、一个更啰嗦;一个更谨慎、一个容易过度承诺。偏好数据能把这些细微差别传给模型。
后来也出现了 DPO 等更直接的偏好优化方法。对普通学习者来说,暂时不用纠结算法细节,只要抓住关系:SFT 让模型先会做任务,RLHF 或 DPO 让模型更贴近人的偏好和安全边界。它们都属于把基础能力变成可用助手能力的过程。
可以这样记住微调
微调是在已有模型基础上继续训练,不是从零造模型。它最常见的用途,是让模型更懂某类指令、更适合某个任务、更贴近某种回答风格。SFT 用指令和参考回答教模型按要求答,后续的偏好对齐再继续打磨回答质量。
微调真正难的地方不在概念,而在取舍。数据太少,模型学不稳;数据太脏,模型会学偏;任务太窄,通用能力可能下降;训练太重,可能出现遗忘。资料里强调的数据干净、prompt 多样、任务均衡,背后都是为了减少这些问题。
如果要用一句话概括:预训练给模型能力,微调给模型习惯。能力决定模型大概能做什么,习惯决定它在具体场景里怎么做。把这两层分开,后面理解 SFT、RLHF、DPO、RAG 和 Prompt 工程都会顺很多。
常见问题
微调是不是给模型补充新知识?
不完全是。微调更主要是让模型适应特定任务和回答方式。大量通用知识通常来自预训练;需要精确、最新、可追溯的资料时,更适合配合 RAG 或工具调用。
SFT 和指令微调是一回事吗?
很多语境下可以近似理解为同一类做法。SFT 是有监督微调,常用指令和参考回答样本训练模型,让它学会按任务要求输出。
微调数据越多越好吗?
不一定。资料质量、代表性、多样性和任务均衡更重要。低质量样本多了,模型可能学到错误习惯,甚至影响原本的通用能力。