蒸馏的本质

知识蒸馏(Knowledge Distillation)的核心思想:用一个强大但昂贵的"教师模型"指导训练一个小而快的"学生模型",让小模型在特定任务上接近大模型的表现。

这不是简单的模仿——而是一种知识迁移技术。

蒸馏的三层含义

1. 响应蒸馏(Response Distillation)

最直接的方式:让学生模型学习教师模型的输出分布。

传统方法(分类任务):

教师模型: soft_targets = softmax(logits_T / T)
学生模型: soft_pred = softmax(logits_S / T)

蒸馏损失: KL(soft_targets || soft_pred) * T²

温度参数T软化概率分布,让学生能学到"次优答案也有一定概率"的暗知识。

大模型时代:

教师(GPT-4): prompt → 优质回答
学生(小模型): prompt → 学习生成同样的回答

SFT训练: loss = CrossEntropy(student_output, teacher_answer)

2. 特征蒸馏(Feature Distillation)

不只学输出,还学中间表示:

教师中间层特征: h_T = Teacher.layer_k(input)
学生中间层特征: h_S = Student.layer_j(input)

蒸馏损失: MSE(project(h_S), h_T) + α * CE(output, label)

需要设计投影层(projection layer),因为教师和学生的隐藏维度可能不同。

对于Transformer模型,可以蒸馏:

  • 注意力权重分布
  • 隐藏状态向量
  • 前馈网络中间表示

3. Agent蒸馏(Agent Distillation)

2026年的新趋势——不只是蒸馏静态回答,而是蒸馏Agent行为:

教师Agent:
  Thought: 我需要先搜索相关信息
  Action: search("关键词")
  Observation: [搜索结果]
  Thought: 根据搜索结果...
  Action: generate_answer()

学生Agent学习:
  在相同场景下采取类似行动序列
  模仿教师的规划和决策模式

这种蒸馏让学生Agent能更快学会工具调用和任务规划。

蒸馏策略

通用能力蒸馏

目标:让学生模型在通用对话能力上接近教师。

数据来源:
1. 用教师模型回答大量通用问题
2. 保留教师的高质量输出
3. 多样化覆盖:不同领域、难度、长度

训练方式:
  标准SFT,loss = CE(student_output, teacher_response)

任务特定蒸馏

目标:在特定任务上最大化学生能力。

数据来源:
1. 收集目标任务的真实问题
2. 用教师模型生成回答(CoT推理、详细解释)
3. 可能包含教师的"思考过程"

训练:
  SFT + 蒸馏损失 + 任务特定奖励

渐进式蒸馏

不是直接从大模型蒸馏到小模型,而是分步骤:

Step 1: 70B → 13B (大模型蒸馏到中等模型)
Step 2: 13B → 7B (中等模型蒸馏到小模型)  
Step 3: 7B → 1.5B (小模型蒸馏到微型模型)

每步降低约2倍参数量,效果损失可控。

在策略蒸馏(On-Policy Distillation)

让学生模型自由生成,再用教师模型评分:

1. 学生模型生成回答 y_s
2. 教师模型对 y_s 评分: score = Teacher(y_s)
3. 用score作为奖励信号训练学生
4. 类似RLAIF,但教师是大模型而非人类

优势:学生在自己的输出分布上学习,而非在教师分布上学习。

数据生成

质量筛选

教师模型的输出不是都好。需要质量筛选:

def filter_quality(teacher_responses):
    # 用reward model或另一个强模型评分
    scored = [(r, score(r)) for r in teacher_responses]
    # 保留高分回答
    return [r for r, s in scored if s > threshold]

多样性保证

不要让蒸馏数据全部是同一风格:

  • 不同温度参数生成多样化输出
  • 添加不同system prompt改变风格
  • 混合不同来源的问题

去污染

确保蒸馏数据不包含评测集内容:

  • 用模糊匹配去除评测集问题
  • 检查输出中的评测答案模式

实践效果

蒸馏 vs 直接训练

方法1.5B模型 MMLU1.5B模型 GSM8K
从零训练42%15%
SFT(人类数据)48%28%
蒸馏(70B教师)55%45%
蒸馏(GPT-4教师)62%55%

蒸馏显著优于从零训练,特别是推理任务。

大小模型差距

1.5B蒸馏模型 vs 70B教师模型:
  通用对话: 达到教师 85% 水平
  代码生成: 达到教师 70% 水平
  数学推理: 达到教师 60% 水平
  创意写作: 达到教师 90% 水平

规律:创造性任务蒸馏效果好(风格容易模仿),推理任务蒸馏效果差(推理能力难迁移)。

限制与挑战

能力天花板

学生模型的能力受限于其参数量。蒸馏不能让1B模型拥有70B模型的推理能力——但可以让它在特定任务上逼近。

教师错误传播

教师模型的错误会被学生"学到"。需要:

  • 过滤教师回答中的错误
  • 用多个教师交叉验证
  • 加入人工审核高价值数据

模式坍缩

学生模型可能只学会教师的"表面模式"——长度、格式、语气——而非真正的推理能力。

解决方案:

  • 强制CoT推理训练
  • 多样化训练数据
  • 定期评测推理能力而非生成质量

许可证问题

用GPT-4蒸馏训练自己的模型——OpenAI的使用条款明确禁止。需要用开源大模型作为教师(如Llama、Qwen、DeepSeek)。

实践建议

  1. 教师选择:选择与目标任务强相关的开源模型作为教师
  2. 数据质量优先:1万条高质量蒸馏数据 > 100万条低质量数据
  3. 包含CoT:蒸馏数据包含教师的推理过程,而非仅最终答案
  4. 混合训练:蒸馏数据 + 人类标注数据混合训练效果最佳
  5. 持续蒸馏:随着教师模型升级,定期重新蒸馏

总结

知识蒸馏是大模型"普惠化"的关键技术——让小模型也能享受到大模型的能力。2026年,蒸馏已成为标准工程实践:用开源70B模型蒸馏出7B的生产模型,用GPT-4级别模型蒸馏出1B的边缘模型。蒸馏不是简单的"复制",而是"提炼"——将大模型的隐性知识转化为小模型的显式能力。