微调是什么:定义与全景
一句话定义
微调(Fine-tuning)是在预训练大模型的权重基础上,用自己的领域数据继续做梯度下降,让模型的行为、输出格式或知识分布向目标任务偏移的过程。
为什么重要
预训练模型是「通才」:什么都会一点,但不一定按你要求的格式、风格、流程回答业务问题。微调是把通才变成专才的核心手段:让输出格式稳定可控、让语气贴合品牌、把私有领域的话术与流程写进模型,并常常能用一个更小的模型达到大模型的业务效果,从而显著降低推理成本与延迟。2023 年后开源模型生态成熟,微调门槛已降到「一张消费级显卡 + 数千条数据」,成为 AI 应用工程师的必备技能。
前置知识
不要求深度学习科研背景,但需要以下常识(不在本库讲解范围,需自行补足):知道神经网络由权重矩阵组成;知道「训练 = 用梯度下降反复更新权重以降低损失」;会用 Python 与命令行;了解 Transformer 是当前大模型的主流架构。
核心概念
- 预训练(Pre-training):在海量无标注文本上学习语言规律,产出基座模型(Base Model)。
- 基座模型 vs 指令模型:Base 只会续写文本;Instruct/Chat 模型经过指令微调,会听指令、按角色对话。
- 全参微调(Full Fine-tuning):更新全部权重,上限高但显存开销巨大。
- 参数高效微调(PEFT):冻结原权重,只训练少量新增或选中的参数,LoRA 是当前事实标准。
- 指令微调(Instruction Tuning / SFT):用「指令-回答」对训练模型执行指令,是当前对话模型微调的主流形态。
原理与机制
训练目标在数学形式上与预训练一致:给定输入 x(含指令与上文),最大化目标输出 y 的条件似然,损失为交叉熵:
训练即沿负梯度方向迭代更新参数:θ ← θ − η·∇L(θ),η 为学习率。微调与预训练的区别只在三点:数据分布(领域数据 vs 全网语料)、数据量(千条级 vs 万亿 token)、步数(数百步 vs 百万步)。分布小而偏,因此微调的两大固有风险是过拟合与灾难性遗忘(见 kp-020)。
图示
预训练(全网语料) ──► 基座权重 W₀ 全参: 更新全部 W₀
│ PEFT: 冻结 W₀, 只训新增小参数
领域数据(千条级) ──► 微调训练循环 QLoRA: W₀ 存成 4-bit 再加 LoRA
▼
领域模型 W₀+ΔW直观类比
预训练像通识教育,微调像岗前培训:员工已经有学习能力(通用语言能力),你只需用本岗位的真实案例教他「怎么干活、按什么格式汇报」,而不是从认字开始教。
实例或案例
某电商客服团队用 3000 条历史优质会话微调一个 7B 开源模型:输入为用户问题加订单上下文,输出为标准话术。微调后格式遵从率从提示工程的约 60% 升到 95% 以上,语气统一,并用 7B 本地模型替代了原先调用的 70B 级 API,单次回答成本下降约一个数量级。
常见误区
- 误区一:微调是注入新知识的首选方式。 频繁更新的事实性知识更适合 RAG 检索注入;微调擅长固化格式、风格与流程,用它灌知识又贵又不稳。
- 误区二:微调需要海量数据。 改格式、改风格类任务几百到两千条高质量样本往往够用;质量远比数量重要。
- 误区三:微调后模型一定更强。 数据差或超参错会让模型明显变笨,典型翻车见 kp-030。
与其他知识点的关系
kp-002 给出「什么时候才该微调」的决策框架;kp-003 是方法全景图;kp-021 是端到端实操流程;kp-031 补充这一范式的历史由来。
延伸阅读
Ouyang et al. 2022《Training language models to follow instructions with human feedback》(InstructGPT,现代指令微调范式的奠基论文)。
自测题
- 微调与预训练在数学目标上的区别是什么?
答:目标形式相同(最大化条件似然),区别在数据分布、数据量与训练步数——微调是小数据、小步幅、领域化的继续训练。
- 「让模型掌握公司产品知识库中频繁更新的内容」应首选微调吗?
答:不应首选。动态事实知识适合 RAG 检索注入;微调适合固化格式、风格与流程类行为。
- 全参微调与 PEFT 的本质区别是什么?
答:是否更新基座原有权重。全参更新全部权重;PEFT 冻结原权重,只训练少量新增参数(如 LoRA 的低秩矩阵)。