什么时候需要微调

微调是什么

微调(Fine-tuning) 是在一个已经训练好的模型基础上,用你自己的数据继续训练,让它更擅长特定任务。

类比:预训练模型像一个通识教育毕业生——什么都懂一点。微调就是送它去读研——在特定领域深耕。

你真的需要微调吗

微调之前,先问自己这些问题:

1. Prompt Engineering 试过了吗?

很多时候,精心设计的 Prompt(加上 Few-shot 示例)就能达到你要的效果。微调的门槛和成本远高于写 Prompt。

2. RAG 能解决吗?

如果你的需求是"让模型知道更多知识",RAG 通常比微调更合适——更新知识不需要重新训练。

3. 你有足够的数据吗?

微调需要高质量的训练数据。几十条不够,几百条是起步。没有好的数据,微调也不会有好效果。

定制 LLM 的技术谱系

从简单到复杂:

Prompt Engineering → Few-shot → RAG → Fine-tuning → 预训练
成本:低 ────────────────────────────────────────→ 高
灵活性:高 ──────────────────────────────────────→ 低
方法改变的是成本需要的数据适用场景
Prompt Engineering输入几乎为零大多数任务的起点
Few-shot输入(含示例)增加 token 成本几个示例格式化输出、分类
RAG输入(含检索结果)向量数据库成本文档库知识库问答
Fine-tuning模型权重训练成本 + GPU数百到数千条风格/格式定制、领域专精
预训练模型权重(从头)极高海量数据构建基础模型

微调适合的场景

1. 风格和格式定制

让模型始终以特定的风格回答——比如你的品牌语气、特定的文档格式、固定的回复结构。

Prompt 也能做到,但微调后模型会"内化"这个风格,不需要每次都写长长的 System Prompt。

2. 领域专业化

让模型在特定领域表现更好——比如法律文书、医疗报告、金融分析。微调能让模型更好地理解领域术语和惯例。

3. 成本优化

一个微调过的小模型可能在特定任务上达到大模型的效果。比如微调 Llama 3.1 8B 来做客服回复,可能和直接用 GPT-4 效果接近,但成本低得多。

4. 减少 token 使用

微调后,你不再需要在每次请求中包含长长的 System Prompt 和 Few-shot 示例。模型已经"记住"了这些,每次请求的 token 数显著减少。

5. 提高一致性

微调后的模型对特定任务的输出更加一致和可预测,减少了"随机发挥"的情况。

微调不适合的场景

需要最新知识:微调不能让模型"知道"训练数据之后的事。用 RAG。

通用能力提升:微调可能让模型在目标任务上变好,但在其他任务上可能变差(灾难性遗忘)。

数据不够:几十条低质量数据的微调,效果可能还不如一个好的 Prompt。

快速迭代:微调一次需要时间和成本。如果需求频繁变化,Prompt Engineering 更灵活。

微调的基本流程

1. 准备训练数据
   ↓
2. 选择基础模型
   ↓
3. 配置训练参数
   ↓
4. 训练(通常用 LoRA)
   ↓
5. 评估效果
   ↓
6. 部署使用

后面的章节会逐一展开每个步骤。

基础模型选择

选择什么模型作为微调的起点?

模型大小特点
Llama 3.18B / 70B社区最活跃,工具链最完善
Qwen 2.57B / 72B中文能力强
Mistral7B高效,适合中小型任务
Gemma 29B / 27BGoogle 出品,质量稳定

通用建议:从 7-8B 的模型开始。 它们的训练成本可控,效果也足够好。只有当小模型确实不够时,再考虑更大的模型。

要点总结

  1. 微调之前先试 Prompt Engineering 和 RAG。 很多场景不需要微调就能解决。
  2. 微调改变的是模型的行为方式,不是知识量。 要补充知识用 RAG。
  3. 微调最适合风格定制、领域专精和成本优化。 这些是它相对于其他方法的独特优势。
  4. 数据质量决定微调效果。 没有好的数据,微调就是浪费时间和钱。
  5. 从 7-8B 模型开始。 训练成本低,迭代快,效果通常也够用。