一句话定义
知识蒸馏(KD)是用教师模型的输出(软标签/概率分布,或中间特征)指导学生模型训练;学生通常更小、更快,但会继承教师的偏差。
为什么需要它
大模型效果好但部署贵。蒸馏把教师的知识压到小模型,降低延迟/成本;也可用于领域适配、模型合并前的能力迁移。
怎么工作
- 教师模型对样本输出 logits/概率。
- 用温度 T 软化分布,保留类别间相似性。
- 学生同时学硬标签(真实答案)和软标签(教师分布)。
- 加权求和 KD loss,反向传播。
- 变体:特征/注意力/中间层蒸馏、在线蒸馏、自蒸馏。
软标签是教师 logits 经温度 softmax;KD loss 常是 KL 散度 + 交叉熵。变体包括 response/feature/attention/online/self-distillation,选择取决于学生容量和任务。
数据可以用无标注/伪标签/合成样本,但教师推理有成本。评测要对比学生、教师和同尺寸 baseline,看任务效果、延迟和成本。风险包括继承教师偏差、过拟合教师输出和版权/许可问题。部署时可与量化/剪枝叠加,先小规模验证。
LLM Distillation
用强 LLM 生成/标注/评分数据,再蒸馏到小模型;数据质量和教师偏差是关键。
关键取舍
- 学生容量太小会学不动;容量差距要匹配。
- 温度太高/太低都影响软标签信息量。
- 教师偏差/错误会被学生继承。
- 蒸馏不等于量化:一个换模型,一个换数值精度。
常见误区
- 蒸馏就是复制答案:软标签包含类别间关系。
- 学生一定比教师差:特定任务/数据上可能更专精。
- 蒸馏能替代预训练:通常仍需基础训练/数据。
- 教师越大越好:容量差距过大时收益有限。
用在哪里
- 小模型/端侧部署。
- 领域模型压缩、推理加速。
- 合成数据/伪标签管线。