Skip to content

微调基础

什么是微调?

微调(Fine-tuning)是在预训练模型基础上用特定领域数据继续训练。

预训练模型像大学毕业生,学了很多基础知识;微调是专业培训,让它掌握特定技能。

预训练 vs 微调

阶段数据类型目标训练成本
预训练互联网海量数据学习通用知识极高(数千GPU)
微调特定领域数据适应特定任务较低(单卡可行)

为什么需要微调?

预训练模型能力很强,但实际应用中往往不够用。

场景1:专业领域知识不足

通用模型: "请解释量子纠缠"
→ 可能给出教科书式的泛泛回答

微调后: "请用量子计算术语解释量子纠缠"
→ 能使用专业术语和行业标准表达

场景2:格式和风格不符

通用模型: 写一个Python函数
→ 可能写得很啰嗦或不规范

微调后: 写一个符合PEP8规范的函数
→ 自动遵循代码规范

场景3:特定任务效率低

  • 翻译任务需要大量提示词
  • 分类模型需要复杂few-shot示例
  • 微调后简化输入输出

微调的类型

1. 全量微调(Full Fine-tuning)

原理:更新模型所有参数

优点:

  • 效果最好
  • 能力改变最大

缺点:

  • 需要大量显存(7B模型需要~28GB)
  • 容易过拟合
  • 训练慢

适用场景:有大量数据和充足算力

2. 参数高效微调(PEFT)

原理:只更新少量参数

LoRA (Low-Rank Adaptation)

原始权重: W (4096×4096)
LoRA添加: A (4096×8) × B (8×4096)

训练时只更新A和B,参数量减少98%

优点:

  • 显存需求低(7B模型~12GB)
  • 训练速度快
  • 可多个LoRA切换

缺点:

  • 极端场景效果略逊全量微调

其他PEFT方法:

  • Prefix Tuning:在输入层添加可训练的"前缀向量"
  • Prompt Tuning:只优化输入prompt的嵌入
  • Adapter:在层间插入小型适配器模块

3. 指令微调(Instruction Tuning)

使用"指令-响应"对训练:

json
{
  "instruction": "解释什么是机器学习",
  "output": "机器学习是..."
}

让模型学会遵循人类指令。

4. RLHF(基于人类反馈的强化学习)

三阶段训练:

  1. SFT:有监督微调
  2. RM:训练奖励模型
  3. PPO:强化学习优化

ChatGPT用的就是这个方法。

2025年的技术趋势

PEFT成为主流

2023: 全量微调为主
2025: 80%项目使用LoRA等PEFT方法

QLoRA普及

4-bit量化 + LoRA,让消费级显卡也能微调:

原版LoRA: 12GB显存
QLoRA: 6GB显存

多模态微调

不再局限于文本:

  • 视觉-语言模型(LLaVA)
  • 语音-语言模型
  • 代码-文本模型

DPO流行

Direct Preference Optimization,比RLHF更简单:

RLHF: 需要3个模型 + 奖励模型训练
DPO: 直接用偏好对优化,单模型即可

微调 vs RAG

什么时候微调,什么时候用RAG?

维度微调RAG
改变什么模型权重外挂知识库
学习内容形式、风格、模式事实、数据
知识时效训练时固定实时更新
成本较高(GPU训练)较低(向量检索)
适用格式转换、风格迁移、专用任务问答、文档分析、知识密集

实践经验:

  • 先尝试RAG(快速、灵活)
  • 需要"形式改变"才微调
  • 复杂场景可以两者结合

微调效果评估指标

自动评估

  • 困惑度(Perplexity):越低越好
  • BLEU/ROUGE:生成质量
  • 准确率:分类/选择题任务

人工评估

  • 有用性:回答是否解决问题
  • 准确性:事实是否正确
  • 流畅性:表达是否自然
  • 安全性:是否有害内容

业务指标

  • 用户满意度
  • 任务完成率
  • API调用的token节省

常见误区

误区1:微调能注入新知识

❌ 错误:微调主要学习"怎么表达",不是"学新知识" ✅ 正确:需要新知识用RAG或重新预训练

误区2:数据越多越好

❌ 错误:低质量数据会降低效果 ✅ 正确:1万条高质量>10万条低质量

误区3:微调一次就完事

❌ 错误:模型会退化,需要持续更新 ✅ 正确:建立数据飞轮,定期重训

误区4:必须大模型才微调

❌ 错误:小模型也能微调,有时效果更好 ✅ 正确:根据任务选择合适规模

实践建议

准备阶段

  1. 明确任务目标
  2. 收集高质量数据(至少1000条)
  3. 选择合适基础模型

训练阶段

  1. 先小数据集验证
  2. 监控loss曲线
  3. 定期checkpoint保存

部署阶段

  1. A/B测试对比
  2. 收集用户反馈
  3. 准备回滚方案

推荐工具

训练框架

  • Hugging Face PEFT: LoRA等PEFT方法
  • Axolotl: 一键式微调脚本
  • LLaMA-Factory: 可视化微调工具
  • Unsloth: 超快LoRA实现

数据处理

  • Datasets: 数据加载和预处理
  • OpenAI数据格式: 标准JSONL格式

评估工具

  • LM Evaluation Harness: 标准基准测试
  • EleutherAI: 综合评估套件

下一步

了解了微调基础,接下来:

参考资料

最近更新

基于 Apache 2.0 许可发布