什么是 知识蒸馏?

知识蒸馏(Knowledge Distillation)是一种让学生模型学习教师模型所产生信号的训练方法,信号可以是概率分布、Logit、中间表示、样本关系或生成回答,常用于构建更小或成本更低的模型。

快速了解

创建时间2015 年由 Hinton 等人提出
规范文档官方规范

工作原理

经典 Logit 蒸馏

对教师和学生 Logit z_t 与 z_s,Temperature T 通过 softmax(z/T) 产生软化分布。常见目标把硬标签 Cross-Entropy 与 T^2 * KL(p_teacher || p_student) 组合,平方缩放用于补偿 Temperature 对梯度量级的影响。Temperature 与损失权重都需调参,没有跨任务和容量差距通用的固定值。

迁移信号决定蒸馏变体

Response Distillation 匹配最终输出,Feature Distillation 对齐中间表示,Relation Distillation 保留样本间或结构关系。生成模型还可以匹配 Token 分布、使用教师生成序列训练,或组合两者。只使用生成文本通常称为 Sequence 或 Black-Box Distillation,但它看不到教师完整的概率分布。

更强教师不保证更强学生

学生可能继承教师的错误、偏差、Calibration 问题和策略缺陷。容量或 Tokenizer 差距过大会让目标难以表示,狭窄的 Transfer Data 也会遗漏重要行为。必须同时比较未修改学生与相同预算的普通监督基线,否则无法把表观提升归因于蒸馏。

评测最终部署产物

先测量目标任务质量、Calibration、安全与子群回归,再在目标硬件上测试模型字节数、峰值内存、冷启动与热路径延迟、吞吐和成本。蒸馏不保证固定压缩比或保真率;还应记录师生模型修订版、数据来源、生成配置、许可证,以及教师输出是否允许用于训练。

主要特点

  • 把教师输出或表示作为额外训练信号
  • 常把蒸馏目标与真实标签监督组合
  • 可以迁移 Logit、特征、关系、Token、序列或多种信号
  • 通常优化质量与资源权衡,而不是精确复制教师
  • 可能继承教师错误,并丢失迁移数据未覆盖的行为
  • 需要基线以及产物级质量、延迟、内存与策略评测

常见用途

  1. 从高容量集成模型或教师训练更小的分类器
  2. 在满足任务质量前提下降低推理延迟或内存
  3. 把选定语言模型行为迁移到可部署学生模型
  4. 结合剪枝或量化执行恢复训练
  5. 在明确数据和许可证控制下创建任务专用学生模型

示例

loading...
Loading code...

常见问题

知识蒸馏与剪枝、量化有什么区别?

知识蒸馏训练学生模仿教师的选定信号;剪枝从现有模型移除参数或结构;量化改变数值精度。三者可以组合,但失败模式不同,必须在相同质量与资源目标下分别评测。

知识蒸馏为什么使用温度参数?

把 Logit 除以大于一的 Temperature,会得到更平滑的概率分布,暴露最高类别之外的相对偏好。蒸馏项对教师和学生使用相同 Temperature。过度平滑也会抹掉有效区分,因此必须通过验证选择,不能照搬配方。

用教师生成的回答训练等于 Logit 蒸馏吗?

不等于。生成回答训练只观察采样或解码后的序列,常称 Sequence 或 Black-Box Distillation;Logit Distillation 匹配更丰富的 Token 或类别分布,通常需要访问教师内部输出或相应 API。两者可以组合,但监督信息不同。

蒸馏模型能保留多少教师能力?

没有通用百分比。保真度随任务、指标、数据覆盖、学生架构与容量、Tokenizer 兼容性、目标函数和教师行为变化。应逐任务报告教师、基础学生和相同预算非蒸馏基线,而不是给出单一聚合比例。

蒸馏模型上线前需要检查什么?

冻结模型、Tokenizer、数据和解码修订版,评测目标质量、安全、Calibration 与回归切片;在目标硬件上测量延迟、吞吐、内存与成本;同时验证数据来源、教师输出使用权限、许可证、监控和回滚条件。

相关术语

相关文章