self-distillation

分类: 知识蒸馏

Self-Distillation

定义

无需外部教师模型的蒸馏范式,模型使用自身的输出(soft labels、特征、或采样结果)作为监督信号来提升自身性能

核心要点

与传统知识蒸馏的区别:不需要额外训练一个更大的教师模型,教师和学生是同一个网络(或其不同版本)

主要变体包括:

  • Born-Again Networks / Be Your Own Teacher: 用相同架构的前一轮模型作为教师,迭代训练
  • 内部蒸馏: 深层特征指导浅层特征(如 BYOT、Tf-KD)
  • 采样自蒸馏(SSD): 用模型自身采样的输出做 SFT,Apple 在代码生成上验证有效

核心假设:模型输出的分布(包括错误分布)包含有价值的”暗知识”,可用于重新校准模型

在代码生成等有可验证性的任务上效果显著,在开放域生成上的效果仍待验证

数学形式

Lself-KD=αLtask+(1α)KL(pθ(t)pθ(t1))\mathcal{L}_{\text{self-KD}} = \alpha \cdot \mathcal{L}_{\text{task}} + (1-\alpha) \cdot \text{KL}(p_\theta^{(t)} \| p_\theta^{(t-1)})

代表工作

Born-Again Neural Networks (Furlanello et al., 2018): 自蒸馏的早期代表

Be Your Own Teacher (Zhang et al., 2019): 网络内部的自蒸馏

SSD (Apple, 2026): 采样式自蒸馏提升代码生成

相关概念

FitNet

LoRA