模型蒸馏是一种让小模型学会大模型本事的训练方法:先让一个能力强大的"教师模型"给出答案,再用这些答案去训练一个参数量小得多的"学生模型"。它的核心思想不是把大模型"压扁",而是把大模型判断中蕴含的依据——比如它对每个候选答案的把握程度、一步步推理的思路——完整地"教"给小模型。理解了这个"教"的过程,就能看懂为什么市面上有那么多名字里带 Distill 的开源小模型,以及它们到底能不能放心用。
老师到底"教"了什么:软标签与温度
普通训练喂给模型的是"硬标签":这道题的正确答案是 A,B、C、D 全错,模型只学到"选 A"。蒸馏不一样,教师模型给出的是"软标签":A 的把握有 75%,B 也有 20%,C、D 基本不可能。B 那 20% 不是噪音,而是暗知识——它告诉学生,B 和 A 在某种意义上是接近的,这种"接近程度"的信息在硬标签里被彻底丢掉了。
为了让软标签更有信息量,蒸馏引入了一个"温度"参数:温度越高,教师输出的概率分布越平滑,学生能学到的细微差别越多;温度降到最低,软标签就退化成硬标签,蒸馏也就失去了意义。这个想法最早来自 2015 年 Hinton 等人发表的论文《Distilling the Knowledge in a Neural Network》,"教师-学生"这套叫法也是从那时沿用下来的。
大模型时代,蒸馏的做法变了:从软标签到推理轨迹
经典的软标签蒸馏在小模型上很好用,但搬到大语言模型上遇到一个现实问题:词表动辄十几万个 token,逐 token 去拟合教师的完整输出分布,计算成本高得不划算。于是大模型时代的主流做法变成了"序列级蒸馏":不再抠每一个 token 的概率,而是让教师模型生成大量高质量回答,把这些回答(含推理过程)当作训练数据,再对小模型做监督微调。
最有代表性的例子是 DeepSeek-R1 的蒸馏系列:2025 年 1 月 R1 发布时,官方同步开源了 6 款蒸馏模型,覆盖 Qwen 的 1.5B、7B、14B、32B 和 Llama 的 8B、70B。做法是用 R1 生成 80 万条带完整推理过程的样本,再拿这些样本去微调原本就不错的小基座模型。结果是,32B 的蒸馏版本在数学、代码等推理任务上逼近了参数大它几十倍的模型——推理能力的"配方",是可以从教师的输出中"抄"走一部分的。
一张表分清:蒸馏、微调、量化、剪枝
这四个词经常被混用,但它们解决的是不同的问题:
| 方法 | 做了什么 | 模型变了吗 | 典型目的 |
|---|---|---|---|
| 蒸馏 | 用教师模型的输出训练一个更小的全新模型 | 变了,是个新模型 | 把能力迁移到小模型上 |
| 微调 | 用新数据继续训练同一个模型 | 没变,还是它 | 让模型学会新任务、新知识或新风格 |
| 量化 | 把同一个模型的权重从高精度压成低精度 | 没变,只是更"轻" | 省显存、提速度,精度略有损失 |
| 剪枝 | 删掉原模型中不重要的连接或神经元 | 结构变稀疏了 | 在尽量保效果的前提下做减法 |
记住一个简单区分:微调改变的是模型"会什么",量化改变的是模型"有多重",剪枝是给原模型"动手术",只有蒸馏是"重新培养一个小的"。实践中它们经常叠加使用——先蒸馏出小模型,再做量化压成 GGUF 放进 Ollama 本地跑,就是一条很常见的链路。
四个最常见的误解
误解一:蒸馏就是压缩,约等于量化。 不对。量化不改变模型的知识,只改变数值的精度;蒸馏是训练一个全新的小模型,知识是重新"学"来的。一个 70B 模型量化成 4 位,仍然是 70B 的知识骨架;一个从它蒸馏出的 8B 模型,是另一个更小的知识骨架。
误解二:蒸馏后的小模型能完全替代大模型。 替代不了。学生的能力上限由老师决定,长尾知识、超复杂推理、开放域的稳定性上,蒸馏模型和教师通常还有肉眼可见的差距。蒸馏模型最保值的是教师最擅长的那几类任务,超出这个范围,差距会迅速拉大。
误解三:随便拿个小模型,蒸一蒸就变强。 蒸馏的效果取决于三样东西:教师够不够强、蒸馏数据质量够不够高、学生基座本身够不够好。DeepSeek 的蒸馏之所以出效果,关键是那 80 万条带推理轨迹的高质量样本,以及 Qwen、Llama 本身就是 strong 的基座。缺了任何一环,蒸出来的可能只是"更自信地犯错"。
误解四:蒸馏没有成本,也没有合规问题。 恰恰相反。生成 80 万条教师样本本身就是一笔巨大的推理算力开销,学生还会继承教师的偏见和幻觉模式。更重要的是合规边界:很多闭源模型的服务条款明确禁止用其输出训练竞品。用开源权重模型做蒸馏一般没问题,但拿闭源 API 输出批量"偷师",可能踩到服务条款的红线,选教师之前要先看许可。
什么时候该用蒸馏模型,什么时候不该
当你遇到这几类情况,蒸馏模型是优先选项:要在手机、PC 或内网服务器上本地跑模型;API 调用量很大,对 token 成本敏感;做 Agent 这类对延迟敏感、需要高频调用的场景;数据不允许出内网,必须私有化部署。小而便宜、够用的模型,在这些场景里比"最强但最贵"的模型更合适。
反过来,这几种情况别指望蒸馏模型救场:你需要的是当前最前沿的推理能力,比如攻坚没人做过的难题;任务恰好落在教师模型的短板上;你需要模型掌握训练截止日期之后的新知识——蒸馏迁移的是能力,不是新鲜信息,知识时效问题得靠 RAG 或重新训练解决。
说到底,模型蒸馏回答的是一个工程问题:大模型好用但太贵、太大、太慢时,能不能把它的核心能力"教"给小模型,让小模型在有限的场景里顶上来。答案是能,但有边界——看懂"教"了什么、和微调量化的区别、这四个误解,选模型时就不容易被参数数字忽悠了。