一、模型蒸馏(Knowledge Distillation)
1. 什么是模型蒸馏?
模型蒸馏是一种模型轻量化技术/模型压缩技术,让大模型(BERT,教师)教小模型(BiLSTM,学生),把大模型(教师模型 Teacher)学到的知识迁移到小模型(学生模型 Student)。不只迁移硬标签(真实类别),还要迁移软标签(类别之间的关联概率分布),让小模型在保持较小体积的同时,尽可能接近大模型的效果、具备大模型的推理能力。
2. 软标签 vs 硬标签
硬标签(Hard Label):真实one-hot 标签(只有目标类别为 1,其余全为 0),只学到类别边界,学不到类别间的相似性。(硬标签损失计算:通过 学生硬输出与真实标签的交叉熵;学生学习教师的最终答案。)
软标签(Soft Label):教师模型输出经过温度 T 平滑后的概率分布,包含类别间关系信息。(软标签损失计算:通过 学生软分布与教师软分布的KL散度;学生学习教师的概率分布。)
总结:KL散度计算软标签损失(学生软分布与教师软分布的 KL 散度)、交叉熵损失计算硬标签损失(学生硬输出与真实标签的交叉熵)、MSE计算中间隐藏层损失(学生隐藏层,与教师隐藏层的MSE);
3. 温度T的作用
用高温T将硬输出平滑为软标签,压低最高类别概率,抬高非目标类别的概率,释放类别间的暗知识。推理阶段把 T 重置为 1。
4. 总损失
1. 公式:(经验取值:α=0.7∼0.9)
2. 描述:先用高温 T 把教师输出平滑为软标签,用 KL 散度让学生拟合这个软分布,再叠加原始数据集的分类交叉熵,同时学习类别关联知识与真实任务标签。
3. 损失函数由两部分加权组成:
① 蒸馏损失:学生软分布与教师软分布的 KL 散度(T>1),学习暗知识。
② 真实标签损失:学生硬输出与真实标签的交叉熵(T=1),保证拟合真实数据。
5. 整体流程