如何把集成模型蒸馏成单模型?
简化版
从集成蒸馏到单模型,是让学生同时学习真实标签和教师集成的软输出,以较低在线成本逼近教师。温度揭示类别相对关系,损失权重平衡监督与模仿;学生容量、数据覆盖和输出校准决定可达上限。
详细版
-
先冻结教师并生成 logits,避免在线重复计算。
-
温度 T>1 软化分布,蒸馏 KL 常乘 T²保持梯度尺度。
-
真实标签损失防止学生只复制教师错误。
-
可用无标签同域数据扩大教师知识覆盖。
-
验收同时比较精度、延迟、模型大小和校准。
完整版教学
一、蒸馏把多模型函数压缩进单个学生
集成平均的暗知识不仅是正确类,还包括错误类之间的相对概率。
软标签比 one-hot 提供更密集训练信号。
学生受容量限制,不保证复现所有局部边界;蒸馏是带任务约束的函数逼近,不是无损压缩。
二、底层机制与公式
L = alpha*CE(y,p_s)+(1-alpha)*T^2*KL(softmax(z_t/T)||softmax(z_s/T))
三、带数字的推演
教师 logits [6,3,0]:T=1 分布很尖,T=3 后类别间差异更可见。
若 α=0.3,学生损失由 30% 真标签和 70% 蒸馏项组成。
四、方案对比
| 方案/对象 | 核心特点 | 代价或边界 |
|---|---|---|
| Logit distillation | 实现简单、输出对齐 | 只传最终行为 |
| Feature distillation | 传中间表示 | 层对齐复杂 |
| 硬伪标签 | 存储简单 | 丢失类别关系 |
五、执行流程
冻结教师 -> 缓存 logits/特征 -> 选择学生与 T/alpha
-> 联合损失训练 -> 对比教师和单模型基线 -> 线上压测
六、边界条件与工程代价
教师若在某切片系统性错误,学生可能更稳定地复制错误;需保留真标签并做切片误差分析。
缓存 logits 时必须绑定教师版本、预处理和样本 ID,否则数据更新后会错配软标签。
记忆钩子:蒸馏记成“真标签守底线,软教师传关系,温度放大暗知识”。
七、常见误区与追问
-
误区:蒸馏学生一定达到教师精度。 容量和数据覆盖限制逼近能力。
-
追问:为什么乘 T²? 补偿温度使 softmax 梯度缩小的量级。
-
误区:只用教师 argmax 就等于蒸馏。 硬标签丢掉非目标类相对信息。
-
追问:无标签数据有何价值? 教师可为同域样本提供密集软监督。
-
追问:如何判断蒸馏值得? 看精度损失是否换来足够延迟、成本和运维收益。
八、加强记忆
蒸馏记成“真标签守底线,软教师传关系,温度放大暗知识”。
最终目标是精度—成本 Pareto,不是学生逐点复制教师。