蒸馏的本质
知识蒸馏(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模型 MMLU | 1.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万条高质量蒸馏数据 > 100万条低质量数据
- 包含CoT:蒸馏数据包含教师的推理过程,而非仅最终答案
- 混合训练:蒸馏数据 + 人类标注数据混合训练效果最佳
- 持续蒸馏:随着教师模型升级,定期重新蒸馏
总结
知识蒸馏是大模型"普惠化"的关键技术——让小模型也能享受到大模型的能力。2026年,蒸馏已成为标准工程实践:用开源70B模型蒸馏出7B的生产模型,用GPT-4级别模型蒸馏出1B的边缘模型。蒸馏不是简单的"复制",而是"提炼"——将大模型的隐性知识转化为小模型的显式能力。