知识蒸馏用教师模型的输出分布训练更小的学生模型

说明软目标、温度和教师学生训练如何传递模型行为,并从容量、数据覆盖、真实硬件和发布谱系评价压缩收益。

知识蒸馏用教师模型的输出分布训练更小的学生模型

知识蒸馏解决的不是简单的“把大模型缩小”,而是怎样把一个模型或多个模型已经学到的行为,转移给参数量、延迟或内存占用更受约束的学生模型。普通监督训练只把正确类别作为目标,其他类别通常都被记作零;教师模型给出的完整概率分布却保留了类别之间的相似关系。例如一张猫的图像可能同时对“猫科动物”给出较高概率,对“车辆”给出极低概率,这些相对关系包含了标签本身没有表达的结构。

Hinton、Vinyals 和 Dean 在 Distilling the Knowledge in a Neural Network 中系统说明了软目标、温度和学生训练的组合方式。蒸馏的价值来自行为转移,而不是文件格式转换;学生仍需在目标数据、真实硬件和业务阈值下独立验证。

软目标携带类别之间的关系

分类模型通常先产生 logits,再经 softmax 转为概率。若直接使用常规 softmax,最大 logit 往往占据绝大部分概率,其他类别之间的差别很难进入损失。蒸馏在教师和学生的 softmax 中引入温度参数:温度升高后,概率分布变得平缓,非目标类别的相对大小更清楚。学生通过匹配这个分布,学习教师在类别空间中的判断方式。

训练损失一般同时包含两部分:一部分匹配教师软目标,另一部分使用真实标签。前者传递教师行为,后者防止学生只复制教师错误。两部分权重、温度和损失尺度需要一起调节;温度改变会缩小梯度,实践中常按温度平方修正蒸馏项的量级。对于回归、检测、分割或生成任务,知识也可以来自中间特征、注意力图、边界分布或序列级结果,但每种表示都引入新的对齐假设。

教师不必是单一模型。多个模型的平均预测可以先形成集成教师,再蒸馏到一个学生中,从而把推理时的多模型开销折叠进单模型。反过来,若教师本身校准很差、依赖偶然相关或不覆盖部署环境,学生也会继承这些问题。

学生容量决定能够接收多少知识

学生模型不是越小越好。容量过低时,即使训练损失设计合理,也无法逼近教师函数;容量足够但结构不适合目标硬件时,参数减少也未必带来延迟改善。卷积、注意力、稀疏算子和内存访问在不同芯片上的代价不同,因此架构选择要与批量大小、序列长度、算子支持和功耗限制一起评估。

蒸馏可以与剪枝、量化配合。常见顺序是先获得稳定学生,再进行量化感知训练,或在量化阶段继续以教师输出约束学生。无论顺序如何,都要分别记录教师基线、学生未蒸馏基线、蒸馏学生和最终压缩模型,才能判断收益究竟来自架构、训练时间还是教师信息。

数据覆盖同样重要。教师软标签只在输入样本上被观察到;若蒸馏集缺少长尾、边界样本和真实噪声,学生无法凭空得到教师在这些区域的行为。使用无标签数据生成教师输出能够扩大覆盖,但应检查数据授权、隐私和分布偏移。

不只比较平均准确率

蒸馏评估首先要与同结构、同训练预算的非蒸馏学生比较。若只拿学生与大教师比较,无法确认蒸馏是否真正贡献。分类任务除总体准确率外,还应查看长尾类别、校准误差、置信度分布、拒识阈值和关键子群表现;生成任务则要检查事实性、安全边界和输出多样性是否被过度压缩。

部署指标必须在目标环境测量,包括冷启动、稳定延迟的分位数、峰值内存、吞吐、能耗和模型加载时间。参数量与 FLOPs 只是代理指标。某些小模型因为算子碎片化或内存带宽瓶颈,实际延迟可能不降反升。

蒸馏还可能使错误更集中。学生对教师的决策边界做平滑近似后,少数困难样本可能整体退化;如果训练标签也含偏差,软目标和硬标签会共同强化偏差。评估应保留错误配对分析,比较教师正确而学生错误、两者共同错误以及学生偶尔修正教师错误的情形。

发布时保留教师、数据与参数谱系

可回溯的蒸馏产物至少记录教师版本、教师集成方式、学生架构、训练数据快照、温度、损失权重、随机种子和压缩步骤。教师升级后不能默认旧学生仍然等价,应重新运行行为差异测试。对于高风险决策,还要记录教师输出是否经过过滤、哪些样本被排除以及人工复核规则。

发布策略可以先影子运行,再小流量替换。线上同时采集学生与教师在关键样本上的分歧,但不要把原始敏感输入长期留存。若学生的效率收益达标而某些子群退化,可以保留路由机制,将低置信度或高风险请求交给教师处理;这种级联方式的容量、隐私和故障降级也必须纳入设计。

《Deep Learning》对模型训练、softmax 与泛化背景有系统说明,可作为蒸馏损失的基础参考:https://www.deeplearningbook.org/。知识蒸馏最终是一项受约束的模型迁移工程:它以教师行为扩充监督信号,但不能替代数据覆盖、独立评价和真实部署测量。