Skip to content

定义

知识蒸馏(Knowledge Distillation, KD) 是一种模型压缩技术,通过让一个小型"学生"模型模仿大型"教师"模型(或教师模型集成)的行为来进行训练。学生模型学习的不仅是正确的输出标签,还包括教师模型的输出分布——从而捕获关于类别相似性、决策边界和内部表示的更丰富信息。

现代蒸馏方法的提出源自 Hinton、Vinyals 和 Dean(2015)的论文:Distilling the Knowledge in a Neural Network。他们证明,教师模型的 softmax 概率(配合 temperature 参数)能提供远比硬标签丰富的训练信号。较高的 temperature 使概率分布更加平滑,暴露出类别之间的细粒度关系——例如,一张"牛"的图像与"马"的相似度高于与"车"的相似度——即使教师模型从未产生过错误答案。

知识蒸馏自此已发展出一系列技术,涵盖 logit 层面、特征层面和关系层面的知识迁移,并成为小语言模型(Small Language Model, SLM)革命的基石。

蒸馏的重要性

蒸馏是推动向更小、更强模型转变的主要技术之一。它解决了以下几个关键需求:

  • 降低成本。 运行 7B 参数模型的推理计算和内存成本远低于 70B 模型。蒸馏在缩小模型体积的同时保留了大部分性能。
  • 降低延迟。 更小的模型生成 token 的速度更快,使其适用于实时应用、聊天机器人和交互式 agent。
  • 端侧部署。 蒸馏后的模型可以运行在移动设备、笔记本电脑和边缘硬件上,这些场景往往没有大型 GPU 或云连接。
  • SLM 革命。 Phi-3(3.8B)、TinyLlama(1.1B)、Gemma 2(2B, 9B)和 DistilBERT 等模型都依赖蒸馏技术。它们表明,经过良好蒸馏的小模型在许多任务上可以与远大于自身的模型相媲美,挑战了"规模是能力的唯一路径"这一假设。

如果没有蒸馏,部署 LLM 的计算成本对大多数用例而言将是难以承受的。与[[quantization|量化]]和剪枝相结合,蒸馏是实现 LLM 大规模实用部署的主要推动力。

工作原理

知识蒸馏在多个粒度层面上运作,每个层面传递教师模型知识的不同方面:

1. Logit Distillation(基于响应)

学生模型从教师模型的最终输出概率中学习。对教师和学生的 logits 分别应用 temperature 缩放的 softmax:

$P_i = \frac{\exp(z_i / T)}{\sum_j \exp(z_j / T)}$

其中 $T$ 为 temperature。当 $T=1$ 时,即为标准 softmax。更高的 $T$ 产生更平滑的分布,揭示出细粒度的相似性关系。学生模型被训练以最小化其平滑分布与教师分布之间的 KL 散度(KL divergence),通常与硬标签上的标准交叉熵损失相结合。

为什么有效: 教师的概率分布包含了"暗知识(dark knowledge)"——关于哪些错误类别比其他类别更合理的信息。高 temperature 的 softmax 将这种结构暴露出来,为学生模型提供了比 one-hot 标签丰富得多的学习信号。

2. Feature Distillation(中间表示)

学生模型学习匹配教师模型的中间层激活,而不仅仅是最终输出。Feature distillation 通常通过以下方式实现:

  • 选择教师模型中的特定层(例如,transformer 的隐藏状态)
  • 训练学生模型以最小化对应层输出之间的距离度量(通常为 MSE 或余弦相似度)
  • 当学生和教师的隐藏维度不同时,使用投影层进行对齐

著名变体:FitNets(Romero et al., 2015)开创了使用教师模型中间表示来指导学生隐藏层的思路,从而允许构建更深、更窄的学生模型。

3. 关系蒸馏

学生模型学习表示之间的关系,而非表示本身。这可以包括:

  • 嵌入空间中的距离关系
  • 注意力图(注意力蒸馏)——学生的注意力模式模仿教师的注意力模式
  • 基于图的结构知识

示例: 在 [[transformer-architecture|Transformer]] 模型中,蒸馏注意力矩阵有助于学生模型学习教师的上下文聚焦模式,这对于长距离依赖尤为重要。

4. On-Policy 蒸馏

学生模型不再仅在静态教师输出上训练,而是自己生成样本并接受教师对其自身输出的反馈。这类似于将教师作为奖励模型(reward model)的强化学习训练。On-policy 蒸馏在以下方面尤为有效:

  • Chain-of-Thought 蒸馏:学生模型生成推理轨迹,教师模型对其进行评分/评估
  • Self-play 改进:学生模型通过生成候选并接收教师反馈进行迭代改进

类型与变体

黑盒蒸馏(基于 API)

学生模型只能访问教师模型的输出(例如通过 API),无法访问 logits、梯度或内部权重。训练过程如下:

  1. 向教师 API 发送提示
  2. 收集输出(文本、分数、排名)
  3. 在此合成数据集上训练学生模型

这种方法与[[synthetic-data|合成数据]]生成有交叉。当从内部权重不可用的闭源模型(GPT-4、Claude、Gemini)进行蒸馏时,这是唯一的选择。

白盒蒸馏(可访问 Logits/权重)

学生模型可以完全访问教师模型的架构、权重和 logits。这使得以下操作成为可能:

  • 带 temperature 缩放的 logit 级别蒸馏
  • 来自中间层的 特征级别蒸馏
  • 针对 Transformer 的 注意力图蒸馏
  • 教师与学生训练之间更紧密的耦合

大多数开源蒸馏流程(例如 DistilBERT、TinyLlama 的训练)采用白盒方式。

自蒸馏

模型作为自己的教师。学生模型从同一架构的后期 checkpoint 或更深层表示中学习。优势:

  • 无需单独的教师模型
  • 学生可以吸收来自后期训练阶段的洞察
  • 可以迭代应用:训练一个模型,然后将其蒸馏到一个自身的副本中,再继续训练

自蒸馏与某些[[fine-tuning|微调]]策略密切相关,有时也被用作正则化技术。

在线蒸馏

教师和学生模型联合训练。教师不是静态的——它与学生一起持续改进。这可以形成良性循环,使两个模型从彼此的学习中获益。

多教师蒸馏

将多个教师模型(可能具有不同的架构或专长)蒸馏到一个学生模型中。学生模型从集成模型的集体智慧中学习,通常能获得比任何单一教师更好的泛化能力。

LLM 时代的蒸馏

大语言模型时代带来了新的蒸馏范式和应用:

大规模模型压缩

最近最引人注目的例子是 DeepSeek-R1,它被蒸馏到基于 Qwen 和 Llama 架构的较小模型中。所得模型(DeepSeek-R1-Distill-Qwen-7B 等)的推理性能远超独立小模型所能达到的水平,证明了强大的教师模型可以为小型架构注入超常的能力。

Chain-of-Thought 蒸馏

推理能力——包括 chain-of-thought、逐步推理和工具使用——可以从大型教师模型蒸馏到小型学生模型中。学生模型学习的是推理的过程,而不仅仅是最终答案。这对于使小模型能够完成复杂的多步骤任务至关重要。

数据集蒸馏

教师模型生成大量训练数据,学生模型从中学习。这模糊了蒸馏与[[synthetic-data|合成数据]]生成之间的界限:

  • 教科书质量数据:Phi 系列模型(Phi-1、Phi-3、Phi-4)开创了这一方法,使用大型教师模型生成精心策划的、教科书式的训练数据,侧重于推理质量而非网络规模的数据量
  • 偏好数据:教师生成的比较数据用于较小模型的 RLHF 式训练
  • 多轮交互数据:教师生成合成对话,教会学生模型对话模式

预训练阶段的蒸馏

与训练后再蒸馏(post-hoc)不同,一些方法将蒸馏集成到预训练阶段。学生模型从头开始训练,在大规模语料上匹配教师模型的行为。这种方法计算成本高,但可以产生更强的学生模型。

蒸馏 vs 量化 vs 剪枝

这三种压缩技术是互补的,且经常组合使用:

技术改变的内容质量影响性能收益适用场景
蒸馏模型架构(更少的层、更小的隐藏维度)中等——能力随规模平滑下降显著——更少的参数 = 比例性减少计算量需要从根本上更小的架构时
量化权重的数值精度(FP16 → INT4/INT8)低至极小——现代量化方法能很好地保持质量中等——取决于精度约 2-4 倍加速需要保持相同架构但减少内存/延迟时
剪枝参数数量(移除冗余权重/神经元)结构化剪枝低,非结构化剪枝中等中等——取决于硬件的稀疏性支持希望在不重新训练的情况下精简模型时

核心洞察: 这些技术并非互相竞争——而是可组合的。典型的生产流程是:(1)将大型教师蒸馏为更小的学生架构,(2)将学生模型量化到 INT4,(3)可选地剪枝冗余的注意力头。组合使用可以得到比原始教师模型小 10–50 倍的模型,且质量下降出人意料地小。

详见[[quantization|量化]]中的详细比较和实践方案。

实践中的权衡

质量损失 vs 尺寸缩减

蒸馏始终会带来相对于教师模型的一定质量下降。关键问题是效率前沿:每个参数能实现多少能力?

  • 强教师,中等学生:以 30–50% 的尺寸达到教师模型 90–97% 的性能(例如,DistilBERT:以 60% 的尺寸达到 97% 的性能)
  • 极强教师,极小 学生:以 1–10% 的尺寸达到教师模型 70–85% 的性能(例如,TinyLlama vs Llama 2 7B)
  • 这种关系并非线性——随着学生模型变小,收益递减

教师模型选择

更大并不总是更好。过大的教师模型可能产生过于"尖锐"(接近 one-hot)的概率分布,使小型学生模型难以有效学习。需要考虑的因素:

  • 能力差距:如果教师过强,学生可能无法逼近它
  • Temperature 调优:更高的 temperature 使分布更平滑,有助于弥合能力差距
  • 集成教师:多个中等规模的教师通常优于一个极大的教师
  • 任务对齐:教师在学生将面对的具体任务上应表现强劲

任务特定 vs 通用蒸馏

  • 任务特定蒸馏:在目标任务上微调教师模型,然后进行蒸馏。在该任务上效果更好,但会丧失通用性。
  • 通用蒸馏:从通用教师模型(预训练或指令微调)进行蒸馏。保留更广泛的能力。
  • 混合方案:蒸馏通用模型,然后在特定任务上进行微调。这是生产中最常见的模式。

评估

评估蒸馏模型需要谨慎的方法论:

蒸馏模型的基准测试

使用标准 LLM 基准(MMLU、GSM8K、HumanEval、HellaSwag、ARC)来衡量能力保持度。将蒸馏模型的得分同时与教师模型以及从头训练的同等规模模型进行比较。

能力保持度的衡量

  • 相对性能:Score_distilled / Score_teacher(例如,92% 的相对保持率)
  • 绝对性能:与基线相比的原始基准得分
  • 任务覆盖面:学生是否保持了教师能力的广度,而不仅仅是平均性能

基准污染风险

由于蒸馏通常涉及在教师生成的数据上训练(数据集蒸馏),存在间接基准污染的风险:教师模型可能曾接触过基准数据,这些知识可能通过合成训练数据泄漏到学生模型中。仔细的数据集去污染对于诚实的评估至关重要。

详见[[llm-evaluation|LLM 评估]]中的详细基准方法论。

知名蒸馏模型

模型教师模型学生规模关键成果
DistilBERTBERT-Base66M(缩小 40%)以 60% 更快的推理速度达到 BERT 97% 的性能
TinyLlama-1.1BLlama 2 7B1.1B与远大于自身的模型相媲美;在 3T token 上训练
Phi-3 / Phi-4GPT-4(合成数据)3.8B在该规模下达到最优水平;教科书质量数据方法
DeepSeek-R1-DistillDeepSeek-R1(671B MoE)1.5B–70B推理能力可与远大于自身的模型相抗衡
Gemma 2 2B/9BGemini 系列2B, 9B强大的指令遵循能力;出色的安全对齐
Mistral 7B(自蒸馏技术)7B使用自蒸馏和注意力优化

趋势很明确:大型模型和小型模型之间的差距正在缩小,主要驱动力是蒸馏技术与高质量[[synthetic-data|合成数据]]的结合。

来源

  1. Hinton, G., Vinyals, O., & Dean, J. (2015). Distilling the Knowledge in a Neural Network. arXiv:1503.02531.
  2. Sanh, V., et al. (2019). DistilBERT, a distilled version of BERT: smaller, faster, cheaper and lighter. arXiv:1910.01108.
  3. Romero, A., et al. (2015). FitNets: Hints for Thin Deep Nets. ICLR 2015.
  4. Gou, J., et al. (2021). Knowledge Distillation: A Survey. International Journal of Computer Vision, 129(6), 1789-1819.
  5. DeepSeek-AI. (2025). DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning. arXiv:2501.12948.
  6. Gunasekar, S., et al. (2023). Textbooks Are All You Need. arXiv:2306.11644. (Phi-1)
  7. Li, Y., et al. (2023). TinyLlama: An Open-Source Small Language Model.
  8. Team Gemma. (2024). Gemma 2: Improving Open Language Models at a Practical Size. arXiv:2408.00118.

AI Knowledge Base — 持续积累