数据蒸馏(Knowledge Distillation,KD)是一种从2015年开始业内常见的技术做法,是指通过一系列算法和策略,将原始的、复杂的模型进行去噪、降维、提炼等操作,从而得到更为精炼、有用的模型。
数据蒸馏旨在压缩模型规模、降低计算成本,同时尽可能保持模型性能。目的是将复杂模型(教师模型)的知识提炼到简单模型(学生模型)。
1. 核心原理
-
知识迁移:教师模型通过自身的预测输出(软标签)或中间特征,指导学生模型学习其决策逻辑,而非单纯模仿输入-输出映射。
-
软标签(Soft Labels):教师模型输出的概率分布(通常经过温度缩放)包含类别间的关系信息(如“猫”与“老虎”的相似性),比硬标签(One-hot编码)更丰富。
-
温度参数(Temperature):在Softmax函数中引入温度参数,调整概率分布的平滑度。高温使分布更平滑,凸显类别间关系;低温恢复原始分布。
2. 关键技术
(1) 模型结构设计
-
教师模型:通常为参数量大的预训练模型(如BERT、GPT、ResNet)。
-
学生模型:结构更简单的