WhiteDLG's

Self-Distillation (自蒸馏)

2025-05-20 AI / Deep Learning

思考

教师模型如果与学生模型同步更新,可能出现模型不选择让学生变好,而是把教师也拉低到学生的水平,以此降低 KL 散度的情况,那么如何设计一个保证教师模型性能同步更新提升却能避免落到这种糟糕情况的方法也是一个值得思考的点。

1. SELF-DISTILLATION ENABLES CONTINUAL LEARNING (SDFT) [MIT, 2026]

问题:如何在只有专家演示数据(demonstrations)而无显式奖励函数的情况下,实现模型的持续学习,同时避免灾难性遗忘。

方法:给予教师模型 query(问题)+Demonstration(演示),得到答案概率分布,学生模型的答案概率分布基于 KL 散度去拟合教师模型的答案概率分布。

Demonstration:

  • 1. Tool Use: ToolAlpaca 数据集中自带的调用工具解决问题的完整记录。
  • 2. Science Q&A: 使用 GPT-4o 为每个问题生成了高质量的思考过程和答案作为演示。
  • 3. Knowledge Acquisition: 使用 GPT-5 基于维基百科文章生成了问答对。教师模型的演示是针对具体问题的“包含新事实信息的正确答案”。
  • 4. Medical: 临床推理问题的正确医疗答案。

损失:KL 散度。

教师模型:

  • 初始化:第 1 行设置教师权重 $\phi$ 等于学生权重 $\theta$。 ("1: Set teacher weights $\phi = \theta$")
  • 更新规则:在每个训练步骤的最后(第 19 行),会更新教师参数:$\phi \leftarrow \alpha\theta + (1 - \alpha)\phi$

这表明教师模型是学生模型的慢速移动版本。它追踪学生的进度,但变化更平滑。

Base Model:

实验设置使用的模型
主实验Qwen2.5-7B-Instruct
模型缩放研究Qwen 2.5 系列:3B / 7B / 14B
推理模型实验Olmo-3-7B-Think

2. SELF-DISTILLATION ENABLES CONTINUAL LEARNING (SDPO) [MIT, 2026]

问题:目前的强化学习(如 GRPO)通常只能拿到一个二值反馈,这在长程推理中会导致严重的「信用分配」问题。此外,如果模型全军覆没(奖励均为 0),学习信号就会消失。

方法:学生模型生成多个候选答案 $y$,送入环境获得反馈 $f$。教师模型根据 $x+f$ 得到概率分布,计算 KL 散度作为损失:

Self-Distillation Methods Overall

反馈:程序运行结果、错误类型、成功的答案。

教师模型:冻结基本模型不参与参数更新。

3. Self-Distilled Reasoner (OPSD) [2016]

问题:复杂推理任务中搜索空间过大、奖励信号稀疏。在没有外部“强教师”辅助时,模型很难找到深层逻辑路径。

方法:教师模型基于 query 以及正确答案输出分布,学生仅看到 query。衡量每一步推理的损失:

Self-Distillation Methods Overall

教师模型:固定。

4. CODI: Compressing CoT into Continuous Space [EMNLP, 2025]

问题:如何让 LLM 在不使用自然语言的情况下进行高效的链式推理(CoT)?

方法:教师模型(query+显式 CoT),学生模型(query+隐式 CoT),结合交叉熵+KL 散度。推理时仅使用学生任务,自回归生成固定的连续思维 token,大幅提升速度。

教师模型:与学生模型共享参数,动态更新。

5. Intra-class progressive and adaptive self-distillation [2025]

教师模型:$m$ 轮的学生模型以 $m-1$ 轮的模型作为教师模型。

6. Diffusion Self-Distillation for Zero-Shot Customized Image Generation

问题:如何让 AI 绘画模型既能保持特定主体身份,又能灵活控制新背景/姿态。

$$ \mathcal{L} = \mathcal{L}_{\text{recon}} + \mathcal{L}_{\text{edit}} $$

教师模型:固定。Base Model: FLUX1.0 DEV

7. DISD-Net: 多模态情感识别 [IEEE, 2025]

方法:提出动态交互网络。每个单模态分支作为“学生”,模仿完整多模态融合网络(教师)的输出分布。

$$ \mathcal{L} = \mathcal{L}_y + \lambda \mathcal{L}_s + \gamma \mathcal{L}_d + \omega \mathcal{L}_2 $$

教师模型:动态更新,Teacher 和 Student 共享同一主干网络。

8. 四种经典自蒸馏方法

Self-Distillation Methods Overall

1. PS-KD

用上一个 Epoch 的预测结果教当前模型。损失:交叉熵 + KL。

PS-KD

2. LWR (Learning with Retrospection)

用过去所有 Epoch 的预测平均值来教当前模型,信号更稳定。

LWR

3. DLB

用上一个 Batch 的预测结果教当前 Batch。Batch 层面操作,即时监督。

DLB

4. LFB (Learn From the Best)

动态挑选“最优”历史模型。提出 HLC Loss,不再是简单的 KL 散度。

LFB

9. Unilogit: 机器遗忘 (Machine Unlearning)

方法:构造“遗忘后”的均匀分布。利用反向 KL 散度,迫使遗忘集输出接近均匀分布。

$$ \mathcal{L}_{\text{Unilogit+KL}}(\theta) = \mathbb{E}_{D_f} [\text{KL}(p(y_f|x_f; \theta) \,||\, \tilde{p}(y_f|x_f; \theta))] + \lambda \mathbb{E}_{D_r} [\text{KL}(p(y_r|x_r; \theta_o) \,||\, p(y_r|x_r; \theta))] $$

10. Be Your Own Teacher [张林峰]

方法:将 CNN 从前往后切分。让深层部分(老师)指导浅层部分(学生)。浅层部分提前学到抽象特征,提升资源受限设备上的表现。

Be Your Own Teacher Loss

由交叉熵、KL 散度、L2 损失组成。教师模型动态更新。

11. Towards Efficient and Compact Neural Networks [张林峰]

问题:解决教师模型选择困难和训练效率低的问题。在同一个网络的不同深度添加多个浅层分类器,深层指导浅层,实现单阶段自蒸馏。

Self-Distillation Framework