一句话定义
知识蒸馏(Knowledge AI 词典:Distillation">Distillation)是训练一个小模型(学生模型,student model)去模仿一个大模型(教师模型,teacher model)的行为,从而把大模型的一部分能力"搬"进小模型的技术。
关键在"软标签"
普通训练只给模型一个硬标签(hard label):这张图是猫。教师模型给的却是一整条概率分布:猫 0.7、狗 0.25、狐狸 0.05——这叫软标签(soft label)。别小看后面那两个小数,它们告诉学生"猫和狗有点像,和狐狸没那么像",也就是类别之间的相似结构。这套信息常被叫作暗知识(dark knowledge)。
为了让这些小数更明显,通常会用一个"温度"(temperature)参数把分布调平滑,让狗和狐狸的分数不至于被压到接近零。温度越高,分布越平,学生越能看到教师的"犹豫"。
打个比方
老中医带徒弟。如果只丢一句"这是感冒",徒弟学到的只是一个结论;如果他说"七分像感冒、两分像过敏、一分像鼻炎",徒弟学到的是一套鉴别思路——边界在哪、什么症状容易混。知识蒸馏就是让徒弟听教师的完整判断,而不是只抄答案。
大模型时代的另一条常见路线是"用教师的输出当训练数据":让大模型写解答、写对话、写代码,再把这些问题—答案对拿去微调(fine-tuning)小模型。这条路径有时叫数据蒸馏或序列级蒸馏,本质仍是把学生往教师的行为上对齐。
和相邻概念的区别
| 手段 | 动的是什么 | 结果 |
|---|---|---|
| 知识蒸馏 | 训练一个新小模型 | 换了个模型,能力尽量保留 |
| 量化(quantization) | 压低原模型权重的精度 | 同一个模型,更小更快 |
| 剪枝(pruning) | 删掉原模型的部分参数 | 同一个模型,变稀疏 |
| 微调(fine-tuning) | 在原模型上继续训练 | 能力更贴任务,尺寸不变 |
蒸馏还能跨结构:教师是 Transformer,学生可以是更浅的 Transformer,也可以是别的小网络。它和微调也常组合使用——先蒸馏再微调,或者直接用教师生成的数据做微调。
实际意义
对工程师来说,蒸馏是把"只能跑在机房"的能力搬到端侧、降低成本和延迟的常规手段,也能把多个教师的能力合并进一个学生。对普通人来说,手机上的离线翻译、输入法联想、相册里的本地识别,很多都用到了被蒸馏过的小模型——不用联网、响应更快,隐私也更可控。
需要留意的是,蒸馏的天花板是教师的水平,而学生模型的容量决定了它能接住多少。至于具体工具和实现细节,各家框架做法不同,以官方页面为准。
