什么是 微调?
微调(Fine-tuning)是从预训练模型检查点出发,在目标数据和明确训练目标上继续优化部分或全部参数,从而改变模型在任务、领域或行为上的表现。
快速了解
| 全称 | Fine-tuning |
|---|---|
| 创建时间 | 随 BERT(2018)和 GPT 模型普及 |
| 规范文档 | 官方规范 |
工作原理
只为已经测量的行为缺口选择微调
训练前先建立未修改基座与 Prompt-only Baseline。需要当前且可归因的知识时使用检索;指令和示例能稳定放入 Context Window 时维护 Prompt;只有代表性失败表明必须改变权重中的行为、格式或任务映射时,才考虑微调。Hugging Face 将[微调](https://huggingface.co/docs/transformers/main/en/training)定义为从预训练权重继续训练,OpenAI 的[模型优化流程](https://platform.openai.com/docs/guides/fine-tuning)也把评测放在 Prompt 或模型调整前后。供应商可用性不属于通用定义。
固定数据、分词与目标函数身份
版本化记录来源许可、Consent、过滤、精确与语义去重、训练/验证/测试分配、Synthetic Teacher、预处理、Tokenizer 或 Processor、Chat Template、Special Token、Truncation、Packing 和 Loss Mask。未触碰测试集不能参与调参决策,并应从文档、会话与语义层检查重叠。相同可见样本在模板或截断变化后可能生成不同 Label,因此仅保存数据 Hash 仍无法复现训练。
发布服务制品,而不是训练 Loss
在目标任务、严重失败、语言、长度、安全与拒答切片上比较候选和获批 Baseline,再测试实际导出或组合后的服务制品。应报告不确定性和逐切片回归,而不是一个平均分。发布门禁至少要求目标增益达标、无关能力损失受控、严重失败为零、Serving Parity 通过且回滚经过演练。训练 Job 负责产生证据,本身不是上线决策。
主要特点
- 从可识别的预训练检查点继续训练,而不是随机初始化并从头学习全部表示
- 明确区分训练目标与参数更新策略,包括全参数、选择性更新和参数高效方法
- 使用具有来源、许可、去重与污染控制的不可变训练、验证和测试数据 Revision
- 同时测量目标行为、留出集泛化、通用能力回归、安全、延迟与服务兼容性
- 把 Tokenizer、Processor、输入或对话模板、Loss Mask、截断策略与依赖锁文件纳入模型身份
- 输出完整 Checkpoint 或依赖基座的 Adapter,并在真实服务形态下通过发布验证
常见用途
- 将预训练模型适配到分类、抽取、排序、视觉、语音或生成等有标注任务
- 教授领域术语与响应行为,同时用独立方法验证事实覆盖和时效性
- 在代表性生产输入上训练稳定的输出 Schema、语气或工作流行为
- 先在语言或领域语料上持续自监督训练,再执行下游监督适配
- 为后续偏好优化准备可审计的监督模型 Checkpoint 与对照基线
示例
Loading code...常见问题
微调、监督微调和指令微调是一回事吗?
不是。微调是从预训练检查点继续优化的上位概念;监督微调使用带目标答案的输入输出样本;指令微调则是面向跨任务指令遵循的 SFT 形式。持续自监督适配和偏好优化也可以属于广义微调,但它们使用不同数据与目标函数,不能混成同一种方法或共用一套评测结论。
微调需要多少条训练数据?
没有可以跨任务复用的样本数阈值。需求取决于任务多样性、标签噪声、模型与 Tokenizer、训练目标、参数更新方法、预期输入分布和可接受错误率。应固定训练、验证和未触碰测试 Revision,检查去重与切片失败,绘制学习曲线,再根据留出集是否持续产生可靠收益决定是否补充数据。
训练 Loss 下降就说明微调模型可以上线吗?
不能。训练 Loss 只衡量模型对 Loss Mask 所覆盖 Token 或标签的拟合。发布前还要把基线与候选模型放在留出任务、通用能力回归、安全与拒答、多语言或领域切片、延迟、显存和真实服务制品上比较。数据泄漏、模板错位、过拟合或错误合并都可能与 Loss 下降同时发生。
什么时候应该微调,而不是使用提示词或 RAG?
先建立可测量的 Prompt 或 RAG 基线。当大量重复示例需要稳定改变格式、风格、任务执行或领域语言,而且可维护提示仍不能达到门槛时,再考虑微调。需要最新且可引用知识时通常优先使用检索。三者可以组合,但微调不应被当成可随时更新、能够保证事实正确的知识库。
PEFT 一定更省显存并达到全参数微调质量吗?
不一定。PEFT 减少可训练参数,但峰值资源还包括冻结基座权重、激活、梯度、优化器状态、临时与通信 Buffer、运行时分配、碎片和安全余量。质量则取决于模型、数据、方法、目标模块、优化预算和评测切片;只有在同一工作负载下实测,才能比较全参数微调与 PEFT。