什么是 微调?
微调(Fine-tuning)是一种迁移学习技术,通过在较小的特定任务数据集上继续训练过程,将预训练的机器学习模型适配到特定任务或领域。这种方法利用预训练模型中已捕获的通用知识,同时为专业应用定制其行为。
快速了解
| 全称 | Fine-tuning |
|---|---|
| 创建时间 | 随 BERT(2018)和 GPT 模型普及 |
| 规范文档 | 官方规范 |
工作原理
微调已成为现代人工智能的基石技术,特别是在大语言模型(LLM)和计算机视觉模型领域。该过程涉及获取在海量数据集上训练的基础模型,并使用领域特定数据调整其参数。微调有多种方法:全参数微调更新所有模型参数,而参数高效微调(PEFT)方法如 LoRA(低秩适配)和 QLoRA(量化低秩适配)仅修改一小部分参数,显著降低计算需求。这些高效方法使模型定制变得更加普及,使组织能够在不需要大量计算资源的情况下创建专业化的 AI 系统。微调对于将通用模型适配到特定行业、语言、写作风格或任务需求至关重要。
主要特点
- 通过迁移学习利用预训练知识
- 所需数据量远少于从头训练
- 支持领域特定的适配和专业化
- 参数高效方法(LoRA、QLoRA)降低计算成本
- 在添加专业技能的同时保留通用能力
- 支持指令微调以提升任务遵循能力
常见用途
- 为法律、医疗或金融应用创建领域特定的语言模型
- 为品牌特定内容生成定制写作风格和语调
- 针对代码生成或摘要等特定任务优化模型
- 将多语言模型适配到低资源语言
- 构建具有企业特定知识的专业聊天机器人
示例
Loading code...常见问题
微调语言模型需要多少数据?
数据量因任务和方法而异。对于指令微调,质量比数量更重要——即使是 1,000-10,000 个高质量示例也能显著提升性能。LoRA 等参数高效方法可以使用较小的数据集(数百到数千个示例),而全参数微调通常受益于更大的数据集。始终优先考虑数据质量而非数量。
LoRA 和全参数微调有什么区别?
全参数微调更新所有模型参数,需要大量计算和内存,但可能达到最佳性能。LoRA(低秩适配)只训练添加到注意力层的小型适配器矩阵,通常只更新 0.1-1% 的参数。LoRA 使用更少内存,训练更快,生成更小的检查点文件,同时达到全参数微调 90-95% 的质量。
微调会让模型忘记原有能力吗?
是的,这被称为灾难性遗忘。在狭窄数据上进行激进的微调可能会降低通用能力。为缓解这一问题,可以使用较低的学习率、包含多样化的训练数据、应用正则化技术,或使用保留大部分原始权重的参数高效方法如 LoRA。将一些通用数据与领域特定数据混合也有帮助。
什么时候应该选择微调而不是小样本提示?
当你需要大规模一致的行为、有特定的格式或风格要求、想降低每次查询的成本(更短的提示)、需要在专业任务上提升性能,或需要嵌入领域知识时,选择微调。小样本提示更适合快速原型、需求经常变化的任务,或缺乏训练数据时。
微调大语言模型需要什么硬件?
硬件需求取决于方法和模型大小。7B+ 模型的全参数微调通常需要多个高端 GPU(A100、H100),每个至少 40GB 显存。QLoRA 可以在 24GB 显存的消费级 GPU(RTX 3090/4090)上微调 7B-13B 模型。对于超大模型(70B+),即使是 QLoRA 也需要多个 GPU 或具有大量内存的云实例。