模型蒸馏 vs 微调——两个 80 分,一个 120 分
模型蒸馏 vs 微调——两个 80 分,一个 120 分
“我想让模型懂我的业务”——这是大多数 AI 项目第一步。蒸馏 vs 微调,选错了浪费 10 倍成本。
两个概念的清晰区分
蒸馏(Distillation)
让小模型学大模型的行为。
- 教师:大模型(GPT-4o、Claude)
- 学生:小模型(自己训练的 7B/13B)
- 过程:用大模型生成数据,训练小模型模仿
- 目的:用小模型达到大模型 90%+ 效果,成本降 10 倍
微调(Fine-tuning)
让模型学特定知识或风格。
- 基础:已有模型(GPT-4o、Llama、Qwen)
- 过程:用特定数据集继续训练
- 目的:让模型”专业”——懂医疗、法律、企业内部术语
关键区别
| 维度 | 蒸馏 | 微调 |
|---|---|---|
| 目的 | 缩小成本 | 增加专业能力 |
| 数据来源 | 大模型生成 | 业务数据 |
| 改变的是什么 | 模型规模 | 模型知识/风格 |
| 典型场景 | 通用 Agent、成本敏感 | 垂直行业、企业内部 |
蒸馏:什么时候用
适合场景
通用任务 + 成本敏感
- 客服机器人、内容审核、简单分类
- 用大模型标注几万条数据,训一个 7B 小模型
- 推理成本降 10-20 倍
离线批量任务
- 文档摘要、报告生成、数据清洗
- 用大模型生成高质量数据,小模型批量跑
端侧部署
- 手机端、嵌入式设备
- 必须用小模型,蒸馏是唯一路径
不适合场景
- 需要强推理(复杂数学、规划)
- 需要多轮对话(蒸馏损失上下文能力)
- 需要最新知识(小模型知识截止更早)
微调:什么时候用
适合场景
垂直行业知识
- 医疗、法律、金融——专业术语多
- 通用模型不懂”POCT”、”靶向治疗”
- 用专业语料微调,效果立竿见影
特定输出格式
- 你的产品需要固定 JSON schema
- 微调比 Prompt 稳得多
企业内部知识
- 公司产品手册、内部流程
- 不能放公网(安全),只能本地微调
不适合场景
- 知识更新频繁(微调成本高)
- 数据量太少(< 1000 条,效果差)
- 通用对话(微调反而会”窄化”模型)
微调的几种方法
1. Full Fine-tuning(全量微调)
所有参数都参与训练。
- 优点:效果上限最高
- 缺点:成本极高(7B 模型微调要 80G+ 显存)
- 适用:有钱 + 数据量大
2. LoRA(Low-Rank Adaptation)
只训练少量参数,冻结原模型。
- 原理:在每层加”低秩矩阵”,只训这些矩阵
- 优点:显存需求降到 1/10
- 缺点:效果略逊于全量
1 | from peft import LoraConfig, get_peft_model |
LoRA 是目前最主流的微调方法。
3. QLoRA(Quantized LoRA)
4-bit 量化 + LoRA。
- 基础模型量化到 4-bit(显存再降一半)
- LoRA 矩阵保持 FP16
- 7B 模型微调只需 24G 显存
QLoRA 是个人/小团队的最优解。
蒸馏的工程实践
流程
1 | 1. 用大模型标注数据 |
我的蒸馏实战经验
我做的一个客服 Agent:
- 数据:5000 条对话(Q&A)
- 教师:GPT-4o
- 学生:Qwen-7B + LoRA
- 训练:2 小时(A100)
- 效果:达到 GPT-4o 92% 的对话质量
- 推理成本:降 15 倍
值得做吗? 值得——一个月省下 $3000+。
微调的工程实践
数据准备
微调的核心是数据,不是模型。
数据要求:
- 数量:至少 1000 条,理想 5000+
- 质量:高质量比数量更重要
- 格式:JSONL,每行
{"prompt": ..., "response": ...}
数据合成
真实业务数据不够时,用 GPT-4o 合成:
- 提供 100 条真实数据作为”种子”
- 让 GPT-4o 生成类似的 5000 条
- 人工 review 200 条做质量把关
训练监控
1 | from transformers import Trainer |
关键监控:
- training loss(应该稳步下降)
- eval loss(应该跟着下降,不能涨)
- 几个真实业务样本的人工评估
蒸馏 vs 微调:实际怎么选
决策树
1 | 你的需求是什么? |
成本对比
| 方案 | 训练成本 | 推理成本/1K Token | 适用 |
|---|---|---|---|
| 直接调 GPT-4o | $0 | $0.01 | 临时验证 |
| 微调 GPT-4o-mini | $50 | $0.0003 | 垂直领域 |
| 蒸馏 7B 自部署 | $200 | $0.0001 | 高频通用 |
| 微调 7B LoRA | $50 | $0.0001 | 垂直+自部署 |
几个坑
坑 1:数据太少硬上微调
100 条数据微调 = 基本没效果(过拟合)。
至少 1000 条才值得做。
坑 2:用蒸馏做”专业知识”
蒸馏是”模仿行为”,不是”灌输知识”——专业知识必须微调。
坑 3:微调后忘了基模型能力
Full Fine-tuning 容易”灾难性遗忘”——微调后模型丧失了通用能力。
LoRA/QLoRA 保留基模型能力更好。
坑 4:以为微调一次就完事
模型效果会”漂移”:
- 业务变化 → 数据变化 → 重新微调
- 建议:季度更新一次
写在最后
蒸馏和微调是 AI 工程化的两个核心武器——但用错地方就成废铁。
简单记:
- 蒸馏:省钱、通用、模仿
- 微调:专业、垂直、改造
蒸馏和微调不是替代关系——是互补关系。好的 AI 系统,常常是”大模型微调 + 小模型蒸馏”配合。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 高晓庄 札记!
