知识蒸馏完全指南

theturingpost 发布于 2026-06-22 阅读 105

知识蒸馏(KD)是一种将大型教师模型的知识转移给小型学生模型的技术,使小模型继承大模型能力而无需从头训练。

Image

最热门的基础话题之一。了解核心概念、类型、缩放定律、实际案例以及深入学习的实用资源。

在上一期,我们讨论了 “Smol”系列模型 及其通过高质量数据集混合训练小型语言模型的有效策略。今天我们要进一步探索小型模型的训练技术,因此正是讨论知识蒸馏(KD)的好时机。这种方法提出已有十年,并不断演进。例如,DeepSeek 的进展,特别是 DeepSeek-R1 的有效蒸馏,最近给这种方法带来了一波关注。

那么,KD 背后的核心思想是什么?它能够将知识从较大的模型(称为教师模型)转移到较小的模型(称为学生模型)。这个过程使得小模型能够继承大模型的强大能力,避免从头训练,让强大的模型更易于使用。让我们探索知识蒸馏如何随时间演变、当前存在的不同类型的蒸馏、有效模型蒸馏需要考虑的关键因素,以及掌握它的实用资源。

知识蒸馏作为一种技术出现在什么时候?

知识蒸馏(KD)背后的思想可以追溯到 2006 年,当时 Bucilă、Caruana 和 Niculescu-Mizil 在他们的工作“Model Compression”中表明,一个模型集成可以在准确度损失不大的情况下压缩成单个更小的模型。他们证明了复杂模型(如集成模型)可以被更易于部署的精简模型有效替代。

后来在 2015 年,Geoffrey Hinton、Oriol Vinyals 和 Jeff Dean 在他们的论文“Distilling the Knowledge in a Neural Network”中创造了术语“蒸馏”。这个术语指的是将知识从大型、复杂的 AI 模型或模型集成转移到更小、更快的 AI 模型(称为蒸馏模型)的过程。研究人员提出,不是仅仅在正确答案上训练小模型,而是给它大模型的概率分布。这有助于小模型不仅学习正确答案是什么,还学习大模型对每个选项的置信度。这个训练概念与 softmax 函数紧密相关,因此让我们更精确地探索这一切在核心层面是如何工作的。

Image

图片来源:“Knowledge Distillation: A Survey”论文

图片来源:“Knowledge Distillation: A Survey”论文

知识蒸馏的详细解释

首先,我们需要明确什么是 softmax。

它是一个数学函数,用于机器学习,特别是神经网络,将原始分数(称为 logits)转换为概率。它通过确保输出值之和为 1,帮助模型决定输入属于哪个类别,从而使输出可解释为概率。

softmax 中的一个重要参数是温度 (T)——这是一种控制模型预测置信度或不确定性的方式。它调整概率分布的锐度——使其要么更自信(尖锐),要么更不确定(柔和)。如果 T = 1,这是默认设置,指的是正常的 softmax 行为,此时只有正确答案获得 100% 的概率。在这种情况下,softmax 创建硬目标。当温度升高时(T > 1),softmax 创建软目标,意味着概率更分散或更柔和。

软目标对于蒸馏和训练非常有用,下面的蒸馏过程说明了原因。它通常包括几个步骤:

首先,教师模型在原始任务和数据集上进行训练。

接下来,教师模型产生 logits。这些 logits 使用更高温度的 softmax 函数转换为软目标,以使概率分布更柔和。

然后,学生模型在这些软目标以及硬目标(真实标签)上进行训练,通过最小化学生输出分布与教师输出分布之间的差异。

Image

图片来源:“Knowledge Distillation: A Survey”论文

图片来源:“Knowledge Distillation: A Survey”论文

在这个过程中,学生学会不仅重现正确答案,还学会教师对这些答案的相对置信度以及其错误。关于教师如何在错误类别之间分配概率质量的这种知识提供了丰富的信息,帮助学生更好地泛化。通过在真实标签上的标准训练损失与教师软标签上的蒸馏损失相结合,学生可以在参数少得多的情况下达到接近教师模型准确度的水平。

如果要用一句话总结核心思想,那就是:学生模型被优化来模仿教师模型的行为,而不仅仅是输出。

在“Distilling the Knowledge in a Neural Network”论文中提出了另一种蒸馏方法,即匹配 logits。这种方法不是仅仅复制概率,而是直接使小模型的 logits 与大模型的 logits 相似。在高温设置下,该方法在数学上等同于标准蒸馏,两种方法都能带来类似的益处。

知识蒸馏的类型

我们刚才探讨的只是该技术的两种选择,但根据从教师转移到学生的知识类型,KD 可以以多种方式应用。这些蒸馏类型在悉尼大学和伦敦大学的研究人员的论文“Knowledge Distillation: A Survey”中得到了很好的说明。常见技术包括:

Image

基于响应的蒸馏(输出作为知识):这正是我们上面讨论的内容。这种经典方法使用教师的最终输出概率作为训练学生的目标。它适用于不同的 AI 任务,如图像分类、目标检测和姿态估计。

基于特征的蒸馏(中间层作为知识):学生不仅复制最终预测,还从教师的中间层或特征图中学习。这个想法是在“FitNets: Hints for Thin Deep Nets”论文中提出的。把这种技术想象成学生学习教师逐步解决问题的过程。学生将其中间表示与教师的中间表示相匹配,既学习正确答案,也学习背后的推理。不同的方法,如注意力图、概率分布和层连接,有助于匹配教师和学生的特征。它特别能提高图像识别和目标检测等任务中的性能。

Image

  1. 基于关系的蒸馏(关系作为知识):学生模型学习模仿教师模型不同部分之间的关系——可以是层之间或不同数据样本之间。例如,学生比较多个样本并学习它们的相似性。这种方法更复杂,但可以与多个教师模型一起工作,融合它们的知识。

Image

这是基于蒸馏什么内容对知识蒸馏使用的三个概念的分类。但是,在训练过程中我们究竟如何转移知识?主要有三种方式:

离线蒸馏 – 先训练教师,然后教师教导学生。

在线蒸馏 – 教师和学生一起学习。

自蒸馏 – 学生向自己学习。

以下是你需要了解的关于这些训练方案的信息:

Image

  • 原文链接: x.com/theturingpost/stat...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~

相关文章

0 条评论