小模型与蒸馏
先说结论
小模型与蒸馏是指通过知识蒸馏、剪枝、量化等模型压缩技术,将大模型的能力转移到参数量更小的模型中,在保持相当性能的同时大幅降低部署成本和推理延迟,使 AI 能力在端侧和资源受限环境中落地。
先把核心脉络捋清楚
模型压缩方法对比
| 方法 | 原理 | 压缩比 | 质量损失 | 额外训练 |
|---|---|---|---|---|
| 知识蒸馏 | 大模型指导小模型训练 | 4-100x | 中等 | 需要蒸馏训练 |
| 量化 | 降低参数精度(FP16→INT4) | 2-4x | 轻微 | 可选(PTQ/QAT) |
| 结构化剪枝 | 删除整层/头/神经元 | 2-5x | 中等 | 需要微调恢复 |
| 非结构化剪枝 | 删除单个权重(稀疏化) | 5-20x | 可变 | 需要稀疏推理支持 |
| 低秩分解 | 分解大矩阵为小矩阵乘积 | 2-4x | 轻微 | 需要重新训练 |
知识蒸馏方法对比
| 蒸馏方式 | 描述 | 代表工作 |
|---|---|---|
| Logit 蒸馏 | 学生匹配教师的输出概率分布 | Hinton et al. 2015 |
| 特征蒸馏 | 学生匹配教师的中间层表示 | TinyBERT |
| 数据蒸馏 | 用教师生成数据训练学生 | Alpaca, Vicuna |
| 推理蒸馏 | 用教师的推理过程训练学生 | DeepSeek-R1 蒸馏 |
| 多教师蒸馏 | 多个大模型共同指导学生 | 多教师 KD |
原理/机制
1. 知识蒸馏的经典框架
知识蒸馏(Hinton et al., 2015)的核心思想是利用教师模型的"暗知识"(dark knowledge):
Logit 蒸馏:
- 教师模型输出 softmax 概率分布(使用较高的温度 T 使分布更平滑)
- 学生模型训练时同时优化:预测正确标签 + 匹配教师的软概率分布
- 软概率包含教师对错误答案的"相对排序"信息,这些信息比硬标签丰富得多
为什么软目标有用:
- 硬标签:"答案是 B"(信息量少)
- 软目标:"A 有 20% 可能,B 有 70%,C 有 10%"(包含相似性结构)
- 软目标告诉学生:"A 和 C 虽然都不对,但 A 比 C 更接近正确答案"
2. LLM 时代的蒸馏新范式
数据蒸馏(2023-2025 主流):
与传统 logit 蒸馏不同,LLM 时代最常用的蒸馏方式是用大模型生成高质量训练数据,再用这些数据训练小模型。
- Alpaca(2023):用 GPT-3.5 生成 52K 指令数据训练 LLaMA 7B
- Vicuna(2023):用用户对话数据训练,接近 ChatGPT 质量
- Orca(2023):从 GPT-4 的推理痕迹中学习
- Phi 系列(2023-2024):Microsoft 用"教科书级"合成数据训练 3.8B 模型超越 LLaMA-2 70B
- DeepSeek-R1 蒸馏(2025):用 R1-671B 的推理数据训练 7B-70B 模型
推理蒸馏:
DeepSeek-R1 的蒸馏方法值得特别关注:
- 用 R1-671B 生成大量推理过程数据(含思维链)
- 直接用这些数据 SFT 训练小模型(6B, 14B, 32B, 70B)
- 不做额外的 RL 训练,纯 SFT 蒸馏即可获得显著推理能力提升
- 蒸馏后的 32B 模型在多项基准上超过 o1-mini
3. 剪枝技术
结构化剪枝(移除整个结构单元):
- LLaMA-Pruner:基于 LoRA 的结构化剪枝
- ShortGPT:删除冗余层(发现 LLM 中间层高度冗余)
- SliceGPT:基于主成分分析的低秩近似剪枝
非结构化剪枝(移除单个权重):
- SparseGPT(2023):无需重训练的后训练剪枝,可在 175B 模型上实现 50% 稀疏
- Wanda(2024):基于权重幅值 × 输入激活的剪枝准则,简单高效
4. 代表性小模型
| 模型 | 参数量 | 训练方法 | 关键特点 |
|---|---|---|---|
| Phi-3 Mini | 3.8B | 合成数据 + 蒸馏 | 教科书级数据,超越 LLaMA-2 70B |
| Gemma 2 (2B) | 2B | 知识蒸馏 | 从更大模型蒸馏 |
| LLaMA 3.2 (1B/3B) | 1B/3B | 剪枝 + 蒸馏 | 多语言,端侧部署 |
| DeepSeek-R1 蒸馏版 | 7B-70B | 推理数据蒸馏 | 超过 o1-mini 的推理能力 |
| SmolLM | 135M-1.7B | 合成数据 | 极小尺寸,边缘设备 |
| Qwen2.5 (0.5B-3B) | 0.5B-3B | 多阶段训练 | 中英双语小模型 |
设计时真正要权衡什么
- 蒸馏 vs 从头训练:蒸馏的上限受教师能力限制,但效率远高于从头训练。当教师足够强时,蒸馏通常优于从零训练。
- 模型大小 vs 任务复杂度:3-7B 模型在大多数 NLU 任务上已接近大模型水平,但复杂推理和多步任务仍需更大模型。
- 通用蒸馏 vs 任务专精:通用蒸馏保留广泛能力但每项都不极致;任务专精蒸馏在某领域表现突出但失去泛化性。
- 压缩粒度的选择:量化最简单(改精度),剪枝次之(删结构),蒸馏最复杂(重新训练),但蒸馏的质量保持通常最好。
- 蒸馏数据量 vs 质量:DeepSeek-R1 证明用少量高质量推理数据蒸馏效果可以超过大量 RL 训练。
容易踩的坑
- 蒸馏上限限制:学生模型不可能超越教师模型,教师的系统性错误会被学生继承。
- 容量不匹配(Capacity Mismatch):学生模型太小,无法有效学习教师的全部知识。表现为:训练 loss 下降但 eval 不提升。
- 分布偏移:蒸馏数据分布与实际使用场景不匹配,模型在特定领域表现好但泛化差。
- 量化精度损失在推理任务上尤为明显:INT4 量化在简单任务上影响不大,但在需要精确计算的任务(数学、编码)上可能导致显著退化。
- 剪枝后的灾难性遗忘:剪枝破坏了模型学到的表示,微调恢复时可能丧失部分能力。
工程落地时我会怎么做
- 蒸馏优先,量化兜底:先通过蒸馏获得小模型,再用量化进一步压缩。蒸馏 + INT4 量化可以同时获得小尺寸和高精度。
- 渐进式压缩:不直接从 70B 压缩到 7B,而是 70B → 32B → 14B → 7B,每步蒸馏。
- 任务评估矩阵:部署前在小模型的每个目标任务上做系统评估,特别关注推理和长文本能力的退化。
- 端侧部署框架:使用 llama.cpp、MLC-LLM、ONNX Runtime 等支持量化和移动端推理的框架。
- 混合大小模型架构:用小模型处理 80% 的常规请求,将复杂请求路由到大模型,成本和质量的最好平衡。
如果要对外讲,可以怎么概括
"小模型和蒸馏是让 AI 能力真正普及到每个设备的关键。传统的 logit 蒸馏(Hinton 2015)在 LLM 时代演变成了更实用的数据蒸馏——用大模型生成高质量数据来训练小模型。DeepSeek-R1 的蒸馏实验特别有意义:用 671B 模型的推理数据直接 SFT 训练 7B-70B 模型,不做任何 RL,蒸馏后的 32B 模型就超过了 o1-mini。这说明推理能力的转移比我们想象的更高效。从工程角度,最优策略通常是:蒸馏获得目标尺寸模型 → 量化到 INT4 进一步压缩 → 端侧部署。3-7B 的蒸馏模型已经能覆盖 80% 的日常任务,剩下 20% 的复杂请求路由到大模型,这是性价比最高的架构。"
最后记几条
- 数据蒸馏是 LLM 时代的主流蒸馏方式:比 logit 蒸馏更实用,效果更好。
- DeepSeek-R1 32B 蒸馏版超过 o1-mini:纯 SFT 蒸馏,不做 RL,效率惊人。
- Phi 系列证明数据质量的决定性作用:3.8B 模型用"教科书级"数据就能超越 70B 模型。
- 量化是最简单的压缩手段:INT4/INT8 几乎不掉点(多数任务),是最优先的优化。
- 小模型的边界在复杂推理:简单任务已追平大模型,但多步推理、长上下文仍有差距。
参考资料
- Distilling the Knowledge in a Neural Network (Hinton et al., 2015)
- TinyBERT: Accurate and Compact BERT via Transformer Distillation (Jiao et al., 2020)
- Alpaca (Taori et al., 2023)
- Phi-3 Technical Report (Microsoft, 2024)
- DeepSeek-R1 Technical Report (arXiv:2501.12948, 2025)
- SparseGPT: Massive Language Models Can Be Accurately Pruned in One-Shot (Frantar & Alistarh, 2023)
- Wanda: Pruning by Weights and Activations (Sun et al., 2024)
- ShortGPT: Layers in Large Language Models are More Redundant Than You Realize (Men et al., 2024)
- The Phi-1.5 / Phi-2 / Phi-3 series papers (Microsoft Research)
- LLaMA 3.2 Technical Report (Meta, 2024)