知识蒸馏:面试问题与推荐回答

yo3nglau

2026/04/07

Categories: Interview Tags: Deep Learning Knowledge Distillation Model Compression

View English Version

知识蒸馏基础

Q1 [基础] 解释软标签的动机

Q: 为什么教师网络输出的软标签比独热标签能提供更丰富的训练信号?

A: 独热标签只编码了哪个类别是正确的,丢弃了所有关于不同类别之间相对相似性的信息。相比之下,教师的输出分布会对相关类别赋予非零概率——例如,一张猫的图像可能在"老虎"上获得一定的概率质量,而在"卡车"上接近为零——这反映了真实标签所缺失的已学习相似性结构。

Hinton et al. (2015) 在现代知识蒸馏框架中将这一直觉形式化。当学生模型最小化与教师软化分布之间的交叉熵时,它获得了丰富的梯度信号,将其表征约束在教师的内部几何结构附近,而不仅仅是教师的 top-1 决策。每个软标签紧凑地编码了教师在整个训练集上学到的类间关系。

从实验来看,当教师对"暗知识"(dark knowledge)类别——即正确类别以外的预测——分配显著概率质量时,软标签的信息量最为丰富。在 MNIST 上,Hinton et al. (2015) 证明了即使教师从未在数字"3"上训练过,经过蒸馏的模型仍能泛化到"3",因为其他数字的软标签隐式地传递了与"3"相关的视觉结构。


Q2 [基础] 描述知识蒸馏中的温度缩放

Q: 温度超参数如何控制教师分布的尖锐程度,为何需要对蒸馏损失施加缩放因子?

A: 标准 softmax 将 logit $z_i$ 转化为概率 $p_i = \exp(z_i) / \sum_j \exp(z_j)$。温度缩放的 softmax 在 softmax 之前将每个 logit 除以 $T$:$p_i^{(T)} = \exp(z_i / T) / \sum_j \exp(z_j / T)$。当 $T = 1$ 时还原为标准分布;当 $T > 1$ 时分布变得更均匀,非最大类别的概率升高。

完整的蒸馏损失将硬标签交叉熵项与软标签 KL 散度结合:

$$\mathcal{L}_\text{KD} = (1 - \alpha)\,\mathcal{L}_\text{CE}(y,\, p_S) + \alpha\, T^2\,\mathrm{KL}\!\left(p_T^{(T)} \,\Big\|\, p_S^{(T)}\right)$$

因子 $T^2$ 补偿了两个分布被软化时发生的梯度衰减:KL 项关于 logit 的梯度以 $1/T^2$ 为尺度缩小,因此乘以 $T^2$ 可以将其恢复到与交叉熵梯度相同的数量级(Hinton et al., 2015)。

实践中,$T$ 通常在 $[2, 20]$ 范围内调节。较高的值能暴露更多暗知识,但也会引入近均匀分布带来的噪声,因此最优 $T$ 取决于教师的置信度和任务难度。


Q3 [基础] 比较知识蒸馏的三大主要流派

Q: 基于响应、基于特征和基于关系的蒸馏在从教师向学生传递的内容上有何不同?

A: 基于响应的蒸馏(response-based distillation)传递教师的最终输出——logit 向量或类别概率。学生被训练以匹配这些软标签,从而捕获教师的决策边界。Hinton et al. (2015) 的框架是典型代表。

基于特征的蒸馏(feature-based distillation)传递中间表征:隐藏层激活、注意力图或特征金字塔输出。FitNets(Romero et al., 2015)引入了"提示层"(hint layers),通过辅助 MSE 损失将学生层回归到对应的教师层。该流派假设中间表征携带了无法从最终 logit 单独恢复的信息——当教师的早期层编码了解耦的视觉基元时,这一假设是合理的。

基于关系的蒸馏(relation-based distillation)传递样本之间的结构关系,而非单个激活。它不是逐样本地匹配 $f_S(x) \approx f_T(x)$,而是在样本集合上匹配成对距离 $d(f_T(x_i), f_T(x_j)) \approx d(f_S(x_i), f_S(x_j))$ 或更高阶的角度关系(Park et al., 2019)。这在更深层次上与架构无关:它对学生和教师嵌入的维度或结构没有任何要求。

实践中,这三个流派往往被组合使用:总损失通常包含软标签项、一个或多个特征匹配项以及一个关系项,各自由独立的超参数加权。


Q4 [进阶] 对比序列生成中的正向 KL 与反向 KL

Q: 在教师与学生分布之间最小化正向 KL 与反向 KL 各有何含义,尤其对自回归文本生成而言?

A: KL 散度的两个方向具有本质不同的支撑覆盖行为。正向 KL(forward KL),$\mathrm{KL}(p_T \| p_S)$,是均值寻求的(mean-seeking):凡是教师 $p_T$ 有概率质量的地方,学生 $p_S$ 也必须有,否则将产生无穷损失(在连续情形下)。因此学生会覆盖所有教师模式,将概率质量扩散到低置信度区域,产生过度分散的分布。

反向 KL(reverse KL),$\mathrm{KL}(p_S \| p_T)$,是模式寻求的(mode-seeking):学生只在其概率质量落在教师支撑之外时才受到惩罚,因而会锁定单一高概率模式,而非覆盖所有模式。

对于分类任务,两种目标收敛到几乎相同的解,因为教师分布只有单一的主峰。对于自回归语言生成而言,这一区别至关重要:在每个解码步骤,$p_T(\cdot|x_{

MiniLLM(Gu et al., 2024)证明,在将 GPT-2-XL 蒸馏为更小的 GPT-2 变体时,切换为带策略梯度优化的反向 KL 能显著提升开放式生成质量。计算成本更高,因为反向 KL 需要从学生模型进行在线(on-policy)采样以计算梯度,而正向 KD 只需要教师强制(teacher-forced)的前向传播。

GKD(Agarwal et al., 2024)将这一分析推广到一族 $f$-散度,该族被参数化为在正向与反向 KL 之间插值,表明中间选择可以在特定任务上通过平衡覆盖性与模式寻求行为超越任一极端。


基于特征与基于关系的方法

Q5 [基础] 解释 FitNets 提示层蒸馏

Q: FitNets 如何将知识蒸馏扩展到中间层,为何需要单独的回归器?

A: FitNets(Romero et al., 2015)通过在学生中指定一个"被引导层"(guided layer)、在教师中指定对应的"提示层"(hint layer),将基于响应的 KD 扩展到中间表征。学生的被引导层被训练以最小化其特征图与教师提示特征图之间的 MSE。

一个实际困难是,被引导层与提示层通常具有不同的空间维度和通道数。FitNets 通过在计算损失前对学生特征图施加一个可学习的线性回归器 $r(\cdot;\, W_r)$ 来解决这一问题:

$$\mathcal{L}_\text{hint} = \frac{1}{2}\left\|f_T(x) - r\!\left(f_S(x);\, W_r\right)\right\|_F^2$$

训练分两阶段进行:首先通过该损失预训练学生的底层,使其匹配教师的提示层;然后使用组合蒸馏损失端到端微调整个学生网络。两阶段方案防止了提示损失在训练初期主导最终的软标签目标。

FitNets 表明,参数更少但层数更多的"细长深层"学生网络,只要中间监督能引导早期层学习有用的表征,便可在 CIFAR-10 上匹配乃至超越教师性能。


Q6 [基础] 描述卷积网络的注意力迁移

Q: 注意力迁移如何定义并蒸馏空间注意力图,它保留了教师计算的哪个方面?

A: 注意力迁移(Attention Transfer,AT;Zagoruyko & Komodakis, 2017)蒸馏空间注意力图——对给定输入,网络关注哪些位置的紧凑摘要。给定激活张量 $A \in \mathbb{R}^{C \times H \times W}$,注意力图为跨通道的激活平方和:

$$F(A) = \sum_{c=1}^{C} A_c^2 \in \mathbb{R}^{H \times W}$$

学生被训练以在每个对应层匹配经过 $\ell_2$ 归一化的教师注意力图:

$$\mathcal{L}_\text{AT} = \sum_{\ell} \left\|\frac{F(A_T^\ell)}{\|F(A_T^\ell)\|_2} - \frac{F(A_S^\ell)}{\|F(A_S^\ell)\|_2}\right\|_2$$

该项被叠加到标准交叉熵损失上。Zagoruyko & Komodakis (2017) 报告,使用 WRN-40-2 教师训练的 WRN-16-2 学生在 CIFAR-10 上达到 2.33% 错误率,以大约四分之一的参数量紧贴教师的 2.24%。

AT 计算开销小,且在通道数方面与架构无关:由于注意力图在计算损失前已在通道维度上折叠,学生和教师无需共享通道维度。


Q7 [进阶] 将对比表征蒸馏分析为互信息最大化

Q: CRD 优化的是什么目标,为何将蒸馏表述为互信息最大化能超越直接激活匹配?

A: 对比表征蒸馏(Contrastive Representation Distillation,CRD;Tian et al., 2020)将知识迁移重新表述为最大化教师与学生表征之间的互信息 $I(f_T(x);\, f_S(x))$。直接激活匹配($f_T(x)$ 与 $f_S(x)$ 之间的 MSE)隐式假设两个嵌入空间之间存在高斯或线性关系——当教师和学生架构异构时(例如 ResNet 教师、MobileNet 学生),这一假设会失效。互信息最大化不做任何此类分布假设。

CRD 使用对比目标来下界互信息。对于一个正样本对 $(f_T(x), f_S(x))$ 和从记忆库中采样的 $M$ 个负样本,损失为:

$$\mathcal{L}_\text{CRD} = -\mathbb{E}\!\left[\log h(f_T(x), f_S(x))\right] - M\,\mathbb{E}\!\left[\log\!\left(1 - h(f_T(x), f_S(\tilde{x}))\right)\right]$$

其中 $h$ 是一个可学习的双线性判别器。学生表征被鼓励对同一输入的教师表征具有预测性,同时与不同输入的表征保持区分。

Tian et al. (2020) 报告在从 ResNet-32x4 蒸馏到 ShuffleNetV2 时,CIFAR-100 上达到 72.61%,超越了该基准上所有先前的基于特征的方法。一个关键性质是,随着记忆库增大,下界变得更紧——更多负样本提供更好的对比——因此 CRD 自然地从规模扩展中受益,而直接激活匹配则没有这一特性。

CRD 也自然地扩展到多教师蒸馏:对每个教师分别施加独立的对比目标,鼓励学生表征在无需显式特征维度对齐的情况下同时对所有教师具有预测性。


Q8 [进阶] 评估关系知识蒸馏及其局限性

Q: RKD 如何传递实例级匹配无法捕获的结构信息,其实际代价是什么?

A: 实例级蒸馏——软 logit、FitNets、CRD——独立处理每个输入:学生对 $x$ 产生的输出或表征与教师对同一 $x$ 的结果进行比较。关系知识蒸馏(Relational Knowledge Distillation,RKD;Park et al., 2019)则通过匹配样本集合间的关系来传递教师嵌入空间的度量结构。

RKD 定义了两个分别作用于样本对和三元组的损失。距离损失惩罚成对距离的差异:

$$\mathcal{L}_\text{dist} = \sum_{(i,j)} \ell_\delta\!\left(\psi\!\left(\|f_T(x_i) - f_T(x_j)\|_2\right),\, \psi\!\left(\|f_S(x_i) - f_S(x_j)\|_2\right)\right)$$

其中 $\psi$ 是归一化函数,$\ell_\delta$ 是 Huber 损失。角度损失惩罚三元组角度的差异,编码了样本三元组间的二阶关系几何。

由于 RKD 只关心相对几何,它对绝对嵌入维度不施加任何约束,因而非常适合跨架构迁移(例如 ResNet 教师到 MobileNet 学生),设计上特征维度不兼容的情形。

实际局限在于计算量:样本对的数量以每个 mini-batch $O(N^2)$ 增长,三元组以 $O(N^3)$ 增长,实践中使用采样子集。更根本地,RKD 不保证绝对嵌入质量——仅保证样本间关系被保留。对于依赖绝对嵌入距离的下游任务(最近邻检索、线性探测),实例级方法可以与 RKD 互补,在关系损失塑造全局几何结构的同时锚定各个表征。


语言模型蒸馏

Q9 [基础] 概述 DistilBERT 的压缩策略

Q: DistilBERT 使用哪些训练目标来蒸馏 BERT,所得模型在规模和性能上有何权衡?

A: DistilBERT(Sanh et al., 2019)将 BERT-base 从 12 个 Transformer 层减少到 6 层,保留每层的隐藏维度(768),并移除 token 类型嵌入和池化器。所得模型的参数量减少 40%,推理速度比 BERT-base 快 60%。

训练结合了三个目标:(1)掩码语言建模损失 $\mathcal{L}_\text{MLM}$;(2)软标签交叉熵 $\mathcal{L}_\text{soft}$,匹配教师的 token 级概率分布;(3)余弦嵌入损失 $\mathcal{L}_\text{cos}$,鼓励学生的隐藏状态向量在方向上与教师对齐。学生通过复制 BERT-base 每隔一层的权重进行初始化,从教师的权重空间热启动。

在 GLUE 基准上,DistilBERT 在各任务上保留了 BERT-base 97% 的性能(Sanh et al., 2019)。差距最大的是需要长程多步推理的任务,此类任务中从 12 层减少到 6 层的代价最高。DistilBERT 确立了与任务无关的蒸馏(task-agnostic distillation)的可行性——在通用预训练语料上压缩,而非在每个任务的微调数据上压缩——这一范式此后成为在资源受限环境中部署语言模型的主流方案。


Q10 [进阶] 分析 TinyBERT 的逐层蒸馏

Q: 除软 logit 外,TinyBERT 引入了哪些额外的蒸馏信号,层映射为何并不简单?

A: TinyBERT(Jiao et al., 2020)在四个层次上执行细粒度蒸馏:(1)嵌入层,(2)Transformer 层注意力矩阵,(3)Transformer 层隐藏状态,(4)预测层软 logit。这比 DistilBERT 细粒度得多——DistilBERT 使用软 token 级 logit 和方向性隐藏状态对齐,但并未单独监督注意力分布,也未区分注意力与 FFN 的贡献。

学生第 $m$ 层映射到教师第 $n$ 层的 Transformer 层组合损失为:

$$\mathcal{L}_\text{layer} = \frac{1}{h}\sum_{i=1}^{h} \mathrm{MSE}(A_S^{m,i},\, A_T^{n,i}) + \mathrm{MSE}(H_S^m W_h,\, H_T^n)$$

其中 $A^i$ 是第 $i$ 个注意力头的注意力矩阵,$H$ 是隐藏状态。由于 TinyBERT$_4$ 的隐藏维度为 312,而 BERT 为 768,需要可学习的投影矩阵 $W_h$。

当学生的 Transformer 层数少于教师时,层映射 $m \to n(m)$ 并不简单。TinyBERT$_4$ 通过均匀分配 $n(m) = 3m$ 映射到 BERT-base。Jiao et al. (2020) 采用两阶段流程:先在大规模语料上进行通用域蒸馏,再通过数据增强(使用 BERT 作为生成器扩充微调集)进行任务特定蒸馏。TinyBERT$_4$ 在 GLUE 上达到 76.5 分,推理时比 BERT-base 小 $7.5\times$、快 $9.4\times$,其中任务特定增强步骤占了相对于 DistilBERT 优势的相当大一部分。


Q11 [进阶] 解释 MiniLLM 的自回归蒸馏方法

Q: 正向 KL 为何在序列生成中导致模式覆盖问题,MiniLLM 的反向 KL 目标如何缓解这一问题?

A: 在自回归模型的 token 级蒸馏中,标准方法最小化:

$$\mathcal{L}_\text{fwd} = \sum_{t} \mathrm{KL}\!\left(p_T(\cdot|x_{正向 KL 是均值寻求的:若教师在第 $t$ 步的条件分布对 token $A$、$B$、$C$ 均有不可忽视的概率质量,则学生忽略其中任何一个都会受到惩罚。学生因此学会将概率质量扩散到所有合理的续写上,导致每步熵值过高、生成内容平淡保守——这是神经文本生成中有据可查的失败模式。

MiniLLM(Gu et al., 2024)改为最小化反向 KL:

$$\mathcal{L}_\text{rev} = \sum_{t} \mathrm{KL}\!\left(p_S(\cdot|x_{反向 KL 是模式寻求的:学生只在其概率质量落在教师支撑之外时才受到惩罚,会锁定单一合理的续写而非扩散到所有模式。结果是更尖锐、更连贯的文本。

计算 $\mathrm{KL}(p_S \| p_T)$ 的梯度需要对学生分布而非教师分布取期望。MiniLLM 使用策略梯度(REINFORCE 配合教师提供的基线)从在线学生样本中获得无偏梯度估计——比正向 KD 代价更高,后者只需一次教师前向传播。Gu et al. (2024) 评估了将 GPT-2-XL 蒸馏到 GPT-2 系列(120M 至 1.5B 参数),在 Dolly、Self-Instruct 和 S-NI 开放式生成基准上,相比正向 KL 基线取得了一致的提升。


Q12 [进阶] 比较黑盒与白盒 LLM 蒸馏

Q: 两种范式分别假设怎样的信息访问权限,这如何影响所用方法、质量以及法律层面的权衡?

A: 白盒蒸馏(white-box distillation)假设可以访问教师的内部状态:每个解码步骤的词表概率分布、隐藏激活或注意力模式。这使得更丰富的迁移信号成为可能——token 级软标签(如 DistilBERT 和 TinyBERT 中所用)、中间层监督或反向 KL 目标(MiniLLM)。完整的 token 分布每个训练样本所携带的信息远多于单个采样 token。

黑盒蒸馏(black-box distillation)只假设 API 级别的访问:学生观察输入-输出文本对,而无法获取概率或激活。学生在教师生成的补全上进行微调——本质上是在教师输出上做监督微调。Stanford Alpaca 和 Vicuna 等项目展示了这一范式:在 GPT-3.5-turbo 或 GPT-4 生成的补全上微调 LLaMA-7B,无需访问教师内部状态即可获得显著的指令遵循能力。

黑盒蒸馏的核心局限是信息损失:学生在教师的模式(贪心或采样补全)上训练,而非其完整的条件分布。对于存在多个有效续写的任务,教师在备选项上的概率质量所携带的信号被完全丢弃。黑盒蒸馏还带来法律隐患:许多服务提供商明确禁止将 API 输出用于训练竞争模型。

混合方法可以部分弥合这一差距。投机解码(speculative decoding,Leviathan et al., 2023)训练一个小型草稿模型逐 token 近似教师,并行使用教师验证草稿。GKD(Agarwal et al., 2024)通过在训练时提供对部分教师概率质量的访问来实现在线蒸馏,结合了白盒方法的可处理性与黑盒方法的部署灵活性。


Q13 [进阶] 区分序列级与 token 级知识蒸馏

Q: 序列级蒸馏捕获了 token 级蒸馏所缺失的哪些信息,两者的计算代价有何权衡?

A: Token 级蒸馏在教师强制(teacher forcing)下独立训练学生匹配每步的条件分布 $p_T(x_t | x_{

其局限在于曝光偏差(exposure bias):训练时学生总是看到教师强制的前缀,但推理时自回归生成,早期错误会在后续步骤中累积放大。在教师强制下完美匹配每个条件分布的学生,在自由运行的生成中仍可能严重偏离。

序列级 KD(Kim & Rush, 2016)通过直接蒸馏序列分布来解决这一问题。教师通过束搜索生成完整序列,学生在这一教师生成语料上最大化 $\log p_S(\hat{x})$。由于训练数据由教师输出而非教师强制前缀构成,学生在推理时实际会产生的序列上训练——曝光偏差从构建上得以缓解。

权衡在于数据集成本:生成序列级语料需要对完整训练集运行教师解码器,对大词表和长序列而言代价高昂。token 级蒸馏只需单次前向传播计算软标签。在线方法如 MiniLLM(Gu et al., 2024)通过在训练期间从学生采样,将序列级思想与持续适应相结合,避免了一次性的语料生成成本,同时保留了在线分布对齐。


视觉模型蒸馏

Q14 [基础] 解释 DeiT 的蒸馏 token 机制

Q: DeiT 如何将教师监督融入 ViT 训练,哪种类型的教师效果最好?

A: DeiT(Touvron et al., 2021)在 ImageNet-1k 上训练视觉 Transformer,无需原始 ViT 所依赖的大规模外部数据集。核心机制是蒸馏 token(distillation token):一个可学习向量,与类别 token 一起被追加到输入块序列中。与类别 token 一样,蒸馏 token 通过自注意力与所有图像块 token 交互,并在输出处投影为 logit——但它由教师预测而非真实标签监督:

$$\mathcal{L} = \frac{1}{2}\,\mathcal{L}_\text{CE}(y_\text{cls},\, y) + \frac{1}{2}\,\mathcal{L}_\text{CE}(y_\text{dist},\, y_T)$$

其中 $y_T$ 是教师的 top-1 预测(硬蒸馏)或软化分布(软蒸馏)。两个 token 在整个前向传播中通过注意力交互,但接受独立的监督信号。

Touvron et al. (2021) 发现CNN 教师(特别是 RegNetY-160)对 DeiT 的效果优于 Transformer 教师。这归因于归纳偏置互补性:CNN 教师编码了平移等变性,促使 ViT 学生发展出局部敏感性,这对 ImageNet 有益,尽管架构上并未强制要求。使用 RegNetY-160 教师的 DeiT-B 在 ImageNet 上达到 85.2% 的 top-1 准确率,仅在 ImageNet 数据上训练——这一结果此前只有在 JFT 预训练的 ViT 上才能实现。


Q15 [进阶] 分析容量差距问题与教师助理蒸馏

Q: 什么情况下更大的教师反而产生更差的学生,教师助理策略如何从根本上解决这一问题?

A: 容量差距(capacity gap)问题在教师与学生架构规模差异较大时出现。尽管直觉上更强的教师应该总能产生更好的学生,Mirzadeh et al. (2020) 在 CIFAR-10/100 和 ImageNet 上的实验表明,学生准确率在教师规模达到某个中间值时达到峰值,之后随教师继续增大而下降。超大教师的决策面可能过于复杂,小学生无法近似——蒸馏梯度变得条件不良,学生收敛到次优解。

教师助理(Teacher Assistant,TA)策略在教师与学生之间插入中间容量网络:$T \to TA \to S$。每步以更小的倍率压缩,使每阶段的容量差距保持可控。对于参数量为 $N_T$ 的教师和 $N_S$ 的学生,单个 $N_{TA} \approx \sqrt{N_T \cdot N_S}$(几何均值)的 TA 能均衡两个压缩比。

Mirzadeh et al. (2020) 在各架构上展示了一致的提升:对于 CIFAR-100 上的 WRN-40-2 教师和 WRN-16-1 学生,插入 WRN-40-1 的 TA 使学生 top-1 准确率提升了约 1.2 个百分点。多层助理情况下提升依然持续,但收益递减。

主要的实践代价是训练预算倍增:TA 本身必须先从教师蒸馏得到,才能训练最终学生,对 $k-1$ 个助理而言相当于串联 $k$ 次蒸馏。这使得 TA 在主要瓶颈是蒸馏质量而非训练时间、且师生容量比大幅超过 $10\times$ 时最为值得。


Q16 [进阶] 识别稠密预测模型蒸馏的挑战

Q: 目标检测和语义分割任务与图像分类相比,如何使知识迁移变得更为复杂,哪些策略可以应对这些复杂性?

A: 分类蒸馏每张图像传递一个固定长度的 logit 向量。稠密预测模型输出空间结构化的结果——检测中在多特征金字塔层级上的边界框和类别分数,或语义分割图——驱动定位质量的中间特征图与最终分类头同等重要。将软 logit 匹配(Hinton et al., 2015)简单应用到检测头上,忽略了编码定位所需空间上下文的骨干网络特征。

一个核心复杂性是特征空间蒸馏中的前景-背景不平衡(foreground-background imbalance)。将 FitNets 风格的损失简单应用于骨干网络的空间特征,迫使学生在所有 $H \times W$ 位置复制激活,其中绝大多数对应背景。这使梯度充斥低信息量的信号,稀释了来自学生最需要学习的少数前景位置的监督。Wang et al. (2019) 表明,按预测前景概率对蒸馏损失加权——在教师识别为含目标的区域施加更大惩罚——显著提升了两阶段检测器的迁移效果。

对于多尺度架构,在特征金字塔网络(FPN)输出处(而非仅在骨干特征处)施加蒸馏损失,能更有效地传递多尺度上下文,因为 FPN 特征直接馈入检测头。跨具有不同骨干步幅架构的匹配需要仔细对齐师生特征图的空间位置。

对于稠密语义分割,匹配 $H \times W$ 逐像素激活是内存密集型操作。仅在语义显著的空间位置进行选择性蒸馏——通过教师自身的置信度或注意力模式识别——可在降低内存成本的同时,将监督聚焦于对精确边界划定最关键的位置。


Q17 [进阶] 将 DINO 解析为自监督自蒸馏框架

Q: DINO 如何在无标签的情况下应用蒸馏学习视觉表征,其注意力图为何会产生可解释性?

A: DINO(Caron et al., 2021)——标签蒸馏Distillation with No labels)——训练学生 ViT 匹配动量教师(momentum teacher)的输出:一个从不被梯度下降直接更新的学生权重指数移动平均(EMA):

$$\theta_T \leftarrow m\,\theta_T + (1 - m)\,\theta_S$$

其中 $m$ 在训练期间从 0.996 增大到 1。教师因此提供一个时间上稳定、在表征质量上略领先于学生的目标,避免了对称互学习的不稳定性。

训练目标是学生在图像强增强视图上的输出与教师在弱增强视图上的输出之间的交叉熵。中心化(centering)操作——从教师输出中减去滑动均值——在无需负样本对、对比损失或显式正则化的情况下防止维度坍塌。全程不使用任何标签。

一个显著的涌现性质是,DINO 的最后一层自注意力头在没有任何分割监督的情况下,以较高准确率分割出前景目标。每个注意力头关注不同的语义一致区域,将它们组合可以在某些基准上恢复出与有监督分割基线相当的目标掩码。Caron et al. (2021) 报告,使用 DINO 训练的冻结 ViT-S/8 通过 $k$-NN 分类在 ImageNet 上达到 74.5% 的 top-1 准确率。

从蒸馏角度来看,DINO 证明:学生的强增强与教师的弱增强之间的非对称性,结合 EMA 稳定化,构成了足够强大的自监督信号,无需任何外部教师或标签即可学习可迁移的视觉表征。


前沿与开放问题

Q18 [基础] 对比在线与离线知识蒸馏

Q: 在线蒸馏如何消除对预训练教师的依赖,相比离线方法有何权衡?

A:离线蒸馏(offline distillation)中,流程是顺序的:训练大型教师至收敛,冻结它,再将其蒸馏到学生中。教师的预测在整个学生训练过程中保持静态,代表一个固定的质量上限。

在线蒸馏(online distillation)同时训练教师与学生(或多个对等网络),消除了对预训练教师的要求。深度相互学习(Deep Mutual Learning,DML;Zhang et al., 2018)是典型代表:两个相同架构的网络协同训练,每个网络在标签上最小化交叉熵,同时向另一个网络的当前预测最小化 KL 散度。两个网络均未被冻结,通过相互监督在整个训练过程中持续提升。

在线蒸馏的优势是无需大型预训练模型,降低了总训练预算。劣势是训练早期两个网络都较弱,它们交换的软标签可能携带很少有用信息,甚至具有误导性。来自完全收敛的大容量教师的离线蒸馏从第一次迭代起就提供稳定而强大的训练信号。

混合方法通过将学生检查点的 EMA 构建为缓慢移动的教师来部分调和这些权衡——教师在整个训练过程中持续更新,但足够稳定以提供高质量软标签。这是 DINO(Caron et al., 2021)在自监督场景中使用的机制,也与半监督学习中的均值教师(mean-teacher)方法密切相关。


Q19 [进阶] 解释再生网络为何能超越等容量教师

Q: 再生网络的成功揭示了软标签在知识蒸馏中扮演怎样的角色?

A: 再生网络(Born Again Networks,BAN;Furlanello et al., 2018)挑战了知识蒸馏的标准理由。传统解释认为,更大、更准确的教师传递了学生仅凭标签无法习得的优越知识。BAN 通过证明一个架构和容量完全相同的学生,在以该教师作为 KD 来源训练后能超越其教师,推翻了这一解释——这一结果无法用教师知识更优来解释,因为学生拥有相同的表征容量。

这种提升跨代持续:BAN 第一代学生超越原始教师,$k$ 代 BAN 的集成效果进一步提升(Furlanello et al., 2018),但每代的增益递减并最终趋于平稳。

研究者提出了若干机制来解释这种提升。其一,软标签提供隐式标签平滑(implicit label smoothing):学生训练时面对的是一个惩罚过度自信预测的分布,而非硬性 0/1 标签,在决策边界附近产生方差更低的梯度估计。其二,软标签中的类间结构编码了暗知识——已学习的类间相似性——将学生约束到独热训练所缺失的有利于泛化的参数区域。其三,软标签目标可能以有利于更平坦损失盆地(具有更好测试泛化性)的方式扭曲损失景观,即便教师的测试准确率与学生在标准训练下所能达到的一致。

实践含义是,即使没有更大的教师,自蒸馏也是一个有竞争力的正则化器,在特定架构上常常与 dropout 和标签平滑持平甚至超越。它还为在固定容量网络上进一步榨取性能的迭代蒸馏方案提供了动机。


Q20 [进阶] 分析无数据知识蒸馏及生成式策略

Q: 无数据蒸馏为何在根本上比标准 KD 更困难,生成对抗方法如何解决了核心挑战?

A: 标准知识蒸馏需要数据流经教师以获取软标签。无数据 KD(data-free KD)必须在无法访问任何真实训练数据的情况下进行蒸馏——这一场景源于隐私约束、许可限制,或部署后原始训练集不可用的场景。

核心困难在于:没有输入,教师的知识就无法访问——其软标签、中间激活和注意力图全都以数据为条件。学生无法在不先合成能有效激活教师的输入的情况下计算任何蒸馏梯度。

早期方法(Lopes et al., 2017)在教师训练期间存储激活统计量——逐层的均值激活和协方差矩阵——然后在蒸馏时从这些元数据重建合成训练图像。这避免了存储原始数据,但需要提前收集元数据。

生成对抗(generative adversarial)方法通过与学生联合训练生成器 $G$ 来避免这一问题。DAFL(Fang et al., 2019)最小化组合目标:

$$\mathcal{L}_G = -\mathcal{L}_\text{distill}(T(\tilde{x}),\, S(\tilde{x})) + \lambda_1 \mathcal{L}_\text{one-hot}(T(\tilde{x})) + \lambda_2 \mathcal{L}_\text{ie}(T(\tilde{x}))$$

其中 $\mathcal{L}_\text{one-hot}$ 奖励生成教师以高置信度分类的图像(鼓励生成具有类别判别性的样本),$\mathcal{L}_\text{ie}$ 奖励跨类别的信息熵(防止生成器坍缩为单一易判别的类别)。学生在这些生成输入上以教师输出为标签进行训练。

持续存在的挑战是生成器模式坍塌(generator mode collapse):若无多样性约束,$G$ 倾向于生成少数最大化教师置信度的合成图像,仅覆盖教师决策面的一个子集。近期方法利用教师的批归一化统计量作为真实数据分布的代理——即便没有训练数据,这些统计量仍可获取——将生成器正则化到产生符合教师训练时特征分布的激活,从而显著提升覆盖度和下游蒸馏质量。


快速参考

# 难度 主题 章节
Q1 基础 软标签的动机 知识蒸馏基础
Q2 基础 温度缩放与损失缩放 知识蒸馏基础
Q3 基础 基于响应、特征、关系的蒸馏 知识蒸馏基础
Q4 进阶 生成任务中的正向 vs. 反向 KL 知识蒸馏基础
Q5 基础 FitNets 提示层蒸馏 基于特征与基于关系的方法
Q6 基础 注意力迁移 基于特征与基于关系的方法
Q7 进阶 对比表征蒸馏 基于特征与基于关系的方法
Q8 进阶 关系知识蒸馏 基于特征与基于关系的方法
Q9 基础 DistilBERT 压缩策略 语言模型蒸馏
Q10 进阶 TinyBERT 逐层蒸馏 语言模型蒸馏
Q11 进阶 MiniLLM 反向 KL 语言模型蒸馏
Q12 进阶 黑盒 vs. 白盒 LLM 蒸馏 语言模型蒸馏
Q13 进阶 序列级 vs. token 级蒸馏 语言模型蒸馏
Q14 基础 DeiT 蒸馏 token 视觉模型蒸馏
Q15 进阶 容量差距与教师助理 视觉模型蒸馏
Q16 进阶 稠密预测蒸馏 视觉模型蒸馏
Q17 进阶 DINO 自监督蒸馏 视觉模型蒸馏
Q18 基础 在线 vs. 离线蒸馏 前沿与开放问题
Q19 进阶 再生网络与软标签正则化 前沿与开放问题
Q20 进阶 无数据知识蒸馏 前沿与开放问题

参考文献