什么是 微调?
微调(Fine-tuning)是从预训练模型检查点出发,在目标数据和明确训练目标上继续优化部分或全部参数,从而改变模型在任务、领域或行为上的表现。
快速了解
| 全称 | Fine-tuning |
|---|---|
| 创建时间 | 随 BERT(2018)和 GPT 模型普及 |
| 规范文档 | 官方规范 |
工作原理
微调是上位训练范式,不等于监督微调、指令微调、LoRA,也不能简单理解为向模型注入知识。参数更新策略与训练目标是两项独立决策:一次训练可以更新全部参数、选择性更新既有参数或只训练新的 PEFT 组件,同时采用监督目标、持续自监督数据、偏好目标或其他明确损失。训练 Loss 下降只说明模型更贴合被 Loss Mask 选中的标签,不能证明未见数据泛化、事实正确、安全、通用能力保留或可上线。可复现流程应绑定不可变的基座模型和 Tokenizer,记录数据来源、许可、去重及训练/验证/测试 Revision,固化预处理、模板、Loss Mask、截断、Seed 和运行依赖,先建立 Prompt Baseline,再按任务与回归切片评测,最终发布带评测报告和回滚身份的完整模型或「基座 + Adapter」制品。
主要特点
- 从可识别的预训练检查点继续训练,而不是随机初始化并从头学习全部表示
- 明确区分训练目标与参数更新策略,包括全参数、选择性更新和参数高效方法
- 使用具有来源、许可、去重与污染控制的不可变训练、验证和测试数据 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。