Chapter 01

为什么需要微调:预训练 vs 微调 vs RAG

在动手训练之前,先搞清楚微调的适用场景。错误的技术选型比糟糕的代码更浪费资源。

三种范式的本质区别

面对"如何让模型在我的业务场景中表现更好"这个问题,有三种主流方案,它们针对的是不同类型的"不足":

Prompt Engineering(提示词工程)
通过精心设计的 System Prompt、Few-shot 示例引导模型输出。零成本,但依赖模型已具备相关能力,对格式和风格的控制有上限。
RAG(检索增强生成)
将外部知识注入上下文,让模型基于检索到的文档回答问题。适合知识更新频繁私有文档问答的场景,不修改模型权重。
Fine-tuning(微调)
通过有标注数据更新模型权重,将特定行为"烧录"进模型。适合需要改变模型输出风格、格式规范、专业能力的场景。

决策树:我该用哪种方案?

你的问题是什么? │ ├─► 模型不知道某些最新/私有知识 │ └─► 知识会频繁更新? │ ├─ 是 → RAG(实时检索,无需重新训练) │ └─ 否 → 数据量 < 1000 条? │ ├─ 是 → RAG 或 Few-shot │ └─ 否 → Fine-tuning(将知识烧入权重) │ ├─► 模型输出风格/格式不符合要求 │ └─► Fine-tuning(SFT 最有效) │ ├─► 模型在特定任务(代码/法律/医疗)表现差 │ └─► Fine-tuning(专业能力提升) │ └─► 模型回答不够"安全"或偏好不对 └─► RLHF / DPO(偏好对齐)

微调真正能解决什么

微调不是万能药,理解它的边界非常重要:

✅ 微调能解决

  • 输出格式规范化(JSON、Markdown、特定结构)
  • 专业领域语言风格(医疗、法律、客服)
  • 减少 Prompt 长度(将 Few-shot 烧入权重)
  • 提升特定任务准确率(分类、提取、翻译)
  • 注入较为稳定的领域知识

❌ 微调无法解决

  • 模型基础能力不足(换更大的基座模型)
  • 实时知识更新(用 RAG)
  • 超出训练数据分布的新任务
  • 数学 / 推理能力的根本提升(需要大量数据)
  • 幻觉问题(可减轻但不能消除)

显存需求估算

在决定微调之前,先估算你的硬件是否够用。这是最常被忽略的"入门门槛":

显存估算公式(近似值): 全参数微调(Full Fine-tuning, FP16): 显存 ≈ 参数量(B) × 16 GB 7B 模型 ≈ 112 GB → 需要 A100 80G × 2 13B 模型 ≈ 208 GB → 需要 A100 80G × 3+ LoRA 微调(FP16 基座 + LoRA): 显存 ≈ 参数量(B) × 2.5 GB(近似) 7B 模型 ≈ 17.5 GB → RTX 3090 / 4090 可以跑 13B 模型 ≈ 32 GB → A100 40G 可以跑 QLoRA 微调(4-bit 量化 + LoRA): 显存 ≈ 参数量(B) × 0.7 GB(近似) 7B 模型 ≈ 4.9 GB → RTX 3060 12G 可以跑! 70B 模型 ≈ 49 GB → A100 80G 可以跑 注意:以上为单机批量大小=1时的最小显存,实际训练需要更多。
Google Colab 免费版限制 免费 T4 GPU 只有 16GB 显存。使用 QLoRA 可以在 T4 上微调 7B 模型,但批量大小需要设为 1,配合梯度累积。

微调的成本结构

按云计算价格估算(以 A100 40GB 为基准):

方案7B 模型13B 模型适用场景
QLoRA (A100 40G)~$3–10~$8–25个人/小团队验证
LoRA (A100 40G)~$10–40~$25–80生产级微调
全参数 (8×A100)~$80–300~$200–800企业级训练
OpenAI Fine-tune~$0.008/1K tokens快速上线,无硬件

微调前的数据规模指导

50–200 条
可以看到轻微格式/风格效果,但不稳定。适合快速验证数据质量,不建议用于生产。
500–2000 条
大多数专业场景的甜点区。高质量数据 > 大量低质量数据。重点放在数据清洗而非堆量。
5000–50000 条
可以产生明显的能力提升,接近领域专家水平。这是大多数商业微调项目的目标规模。
100000+ 条
接近预训练数量级,通常只有大公司才会走这条路。此时考虑是否直接从头预训练更合算。
黄金法则 1000 条高质量、多样化、覆盖边界 case 的数据,往往比 10000 条低质量重复数据效果更好。微调是数据工程,不是数据堆积。

选择基座模型

微调效果上限由基座模型决定。当前(2025-2026)主流开源选择:

模型系列推荐规格特点适用场景
Llama 3.x8B / 70B综合能力强,社区生态好通用任务首选
Qwen 2.57B / 14B / 72B中文能力强,指令跟随好中文场景首选
Mistral / Mixtral7B / 8×7B高效率,推理速度快资源受限场景
DeepSeek V3/R17B / 67B代码和数学能力突出技术类任务
Gemma 34B / 12BGoogle 出品,多模态版本轻量部署
本章小结 微调是"改变模型行为"最直接的方式,但不是唯一方式。在开始训练前,明确你的问题是否真的需要微调,选对基座模型,估算硬件成本。下一章深入数据集准备。