SDFT: Self-Distillation Enables Continual Learning — 用自蒸馏解决灾难性遗忘
> 一句话版本:MIT 团队发现,让大模型自己教自己(自蒸馏)可以有效解决灾难性遗忘问题——模型学新技能时不忘记旧技能,不需要专门标注奖励函数,只需提供示范样本就行。
- 来源: arXiv 2601.19897
- 项目页: https://self-distillation.github.io/SDFT
- 代码: http://idanshenfeld.com/SDFT
- 作者: Idan Shenfeld, Mehul Damani, Jonas Hübotter, Pulkit Agrawal (MIT, Improbable AI Lab, ETH Zurich)
- 日期: 2026-01-27 (提交), 2026-05-17 (研究)
核心挑战:灾难性遗忘
当前大模型部署后是静态的——不会自动学习新知识或技能。要让模型持续学习(Continual Learning),有两个主要路径:
| 方法 | 问题 |
|---|---|
| **监督微调 (SFT)** | 学新东西时**严重遗忘旧能力**(灾难性遗忘) |
| **在线强化学习 (On-policy RL)** | 能抗遗忘,但需要**奖励函数**,大多数场景没有 |
SDFT 解决了二者之间的矛盾:从示范样本中获取在线学习信号,不需要奖励函数。
核心方法:Self-Distillation Fine-Tuning
SDFT 利用了 LLM 自身的上下文学习(ICL)能力:
同一个模型扮演两个角色:
Teacher = 模型 + 示范样本条件 → π(·|x, c)
Student = 模型本身(无条件) → π_θ(·|x)
训练流程:
1. Student 自己生成回答轨迹(on-policy)
2. Teacher(被示范样本条件化的同一模型)评估 Student 的回答
3. 最小化两者概率分布之间的反向 KL 散度:D_KL(π_θ || π)
4. Student 学到 Teacher 的行为模式,但不丢失原有能力
为什么有效?
- SFT 是用固定的离线数据"猜答案"(off-policy → 推理时偏差累积)
- SDFT 是在自己生成的轨迹上学习(on-policy → Teacher 实时纠正偏差)
- Teacher 的条件化本质上是隐式奖励函数,避免了显式 IRL 的复杂性
核心实验
1. 技能学习
- 科学问答、工具使用、医疗领域
- SDFT 在所有场景显著优于 SFT
- 新任务准确率更高,旧能力遗忘大幅减少
2. 连续学习
- 依次学 3 个不同技能
- SDFT:每个新技能都学会,旧技能不掉分
- SFT:每学一个新技能,之前的就崩塌
3. 推理模型训练(关键发现)
- 用不含推理过程的示范样本训练推理模型
- SDFT 成功教会模型推理能力——Teacher 示范中没有显式思维链,但模型被条件化后自行理解了示范背后的推理意图,Student 通过蒸馏学到了这种推理风格
4. 泛化能力
- SDFT 不仅在分布内数据更好,分布外泛化也更强
- 符合在线学习的理论预期(Ross et al. 2011 DAgger 理论)
优势对比
| 维度 | SFT | SDFT |
|---|---|---|
| 学习方式 | Off-policy(离线模仿) | On-policy(在线蒸馏) |
| 灾难性遗忘 | ❌ 严重 | ✅ 基本消除 |
| 新任务准确率 | 中 | 高 |
| 分布外泛化 | 差 | 优 |
| 是否需要奖励函数 | ❌ | ❌ |
| 是否需要示范样本 | ✅ | ✅ |
| 计算开销 | 1× (一次前向) | ~2× (Student + Teacher 前向) |
理论洞察
SDFT 可以理解为隐式逆强化学习(Implicit IRL):
- 传统 IRL:从示范推断奖励函数 → 在线 RL → 计算量大、需要强先验
- SDFT:利用 ICL 绕过了显式奖励推断,直接把"被示范条件化的行为"蒸馏到策略中
- 不需要对奖励结构做假设,依赖模型本身的理解能力
技术细节
Teacher 的 Prompt 设计:
<Question>
This is an example for a response to the question:
<Demonstration>
Now answer with a response of your own, including the thinking process:
这个 prompt 防止模型直接复制示范文本,而是让模型展示其对示范背后意图的理解。
梯度估计:使用逐 token 的反向 KL 梯度:
∇θL(θ) = E_y~πθ [ Σ_t Σ_{yt∈V} log(πθ(yt)/π(yt|x,c)) · ∇θ log πθ(yt|y 1. 模型持续学习策略:如果我们部署的 Agent(如 researcher agent)需要不断学习新知识,SDFT 提供了比 SFT 更好的训练范式 2. 推理蒸馏低成本方案:SDFT 证实了"没有推理数据也能训练推理模型"——这对想提升模型推理能力但没有标注数据的场景有直接参考价值 3. 上下文学习+蒸馏的范式:ICL + distillation 的组合可能比纯 RLHF 或纯 SFT 更实用 4. 风险提示:SDFT 依赖模型已有 ICL 能力——基础模型不够强时效果可能打折扣(论文自己承认这个限制) 综合评分: 9.0/10与我们的项目的关联
评分
维度 评分 说明 **创新性** ★★★★☆ ICL + Distillation 做持续学习思路新颖,但方法本身不复杂 **实用性** ★★★★★ 实现简单,无需额外标注,直接替换 SFT 即可 **理论深度** ★★★★☆ 与 IRL 的理论联系深刻,实验设计严谨 **可复现性** ★★★★★ 方法简洁,代码和数据已公开 **影响力潜力** ★★★★★ 持续学习是大模型落地的核心瓶颈,SDFT 提供了可行路径 延伸阅读