三种范式的本质区别
面对"如何让模型在我的业务场景中表现更好"这个问题,有三种主流方案,它们针对的是不同类型的"不足":
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.x | 8B / 70B | 综合能力强,社区生态好 | 通用任务首选 |
| Qwen 2.5 | 7B / 14B / 72B | 中文能力强,指令跟随好 | 中文场景首选 |
| Mistral / Mixtral | 7B / 8×7B | 高效率,推理速度快 | 资源受限场景 |
| DeepSeek V3/R1 | 7B / 67B | 代码和数学能力突出 | 技术类任务 |
| Gemma 3 | 4B / 12B | Google 出品,多模态版本 | 轻量部署 |
本章小结
微调是"改变模型行为"最直接的方式,但不是唯一方式。在开始训练前,明确你的问题是否真的需要微调,选对基座模型,估算硬件成本。下一章深入数据集准备。