SDFT: Self-Distillation Enables Continual Learning — 用自蒸馏解决灾难性遗忘

> 一句话版本:MIT 团队发现,让大模型自己教自己(自蒸馏)可以有效解决灾难性遗忘问题——模型学新技能时不忘记旧技能,不需要专门标注奖励函数,只需提供示范样本就行。

核心挑战:灾难性遗忘

当前大模型部署后是静态的——不会自动学习新知识或技能。要让模型持续学习(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 的行为模式,但不丢失原有能力

为什么有效?

核心实验

1. 技能学习

2. 连续学习

3. 推理模型训练(关键发现)

4. 泛化能力

优势对比

维度SFTSDFT
学习方式Off-policy(离线模仿)On-policy(在线蒸馏)
灾难性遗忘❌ 严重✅ 基本消除
新任务准确率
分布外泛化
是否需要奖励函数
是否需要示范样本
计算开销1× (一次前向)~2× (Student + Teacher 前向)

理论洞察

SDFT 可以理解为隐式逆强化学习(Implicit IRL)

技术细节

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 能力——基础模型不够强时效果可能打折扣(论文自己承认这个限制)

评分

维度评分说明
**创新性**★★★★☆ICL + Distillation 做持续学习思路新颖,但方法本身不复杂
**实用性**★★★★★实现简单,无需额外标注,直接替换 SFT 即可
**理论深度**★★★★☆与 IRL 的理论联系深刻,实验设计严谨
**可复现性**★★★★★方法简洁,代码和数据已公开
**影响力潜力**★★★★★持续学习是大模型落地的核心瓶颈,SDFT 提供了可行路径

综合评分: 9.0/10

延伸阅读