0

0

Python 模型蒸馏的知识蒸馏实践

舞姬之光

舞姬之光

发布时间:2026-02-16 16:38:55

|

908人浏览过

|

来源于php中文网

原创

应根据教师输出选择损失:若为概率分布则用kl散度,需教师softmax后取log、学生log_softmax;若为logits则可用mse但丢失温度平滑效应;kl在小数据或类别不平衡时更稳,但需梯度裁剪。

python 模型蒸馏的知识蒸馏实践

知识蒸馏中 KL散度损失MSE损失 怎么选?

看教师模型输出的是概率分布还是 logits —— 如果用 torch.nn.KLDivLoss,必须确保学生模型也经过 log_softmax,而教师输出是 softmax;直接拿 raw logits 算 MSE 虽简单,但温度系数 T 没起作用,软标签的平滑效应就丢了。

  • 常见错误:把教师的 logits 直接喂给 KLDivLoss,报错 Expected input tensor to have log probabilities
  • 正确链路:教师 logits / T → softmax → log(),学生 logits / T → log_softmax,再进 KLDivLoss
  • 小数据或类别不平衡时,KLDivLoss 通常比 MSELoss 更稳;但训练初期梯度可能爆炸,建议搭配 torch.nn.utils.clip_grad_norm_

PyTorch 里怎么让教师模型不更新梯度?

不是只加 with torch.no_grad(): 就够了 —— 如果教师模型里有 BatchNorm 层,它默认会继续更新 running_mean / running_var,导致蒸馏过程中的统计量漂移,学生学的其实是“动起来的教师”。

  • 必须显式调用 teacher.eval(),哪怕你没开 dropout
  • 如果教师用了 SyncBatchNorm 或自定义 BN,还要确认是否在多卡下被 torch.nn.parallel.DistributedDataParallel 包裹,此时 eval() 可能不生效
  • 更稳妥的做法:在蒸馏循环开头加 teacher.train(False),并手动冻结 BN 参数:for m in teacher.modules(): if isinstance(m, torch.nn.BatchNorm2d): m.track_running_stats = False

temperature 设太高或太低会怎样?

temperature 不是越大越好。设成 20,教师输出几乎变成均匀分布,学生学不到区分性;设成 1,软标签和硬标签没区别,蒸馏失去意义。

Grammarly
Grammarly

Grammarly是一款在线语法纠正和校对工具,伟大的AI辅助写作工具

下载
  • 典型取值在 3~7 之间,CV 任务常用 4,NLP 任务(如 BERT 蒸馏)倾向 1~2(因 logits 差异本身已较大)
  • 如果学生模型比教师小很多(比如 TinyBERT 蒸馏 BERT-base),可以先用 T=5 预热 1–2 个 epoch,再降到 T=2 细调
  • 注意:T 同时影响 KL 散度计算和学生输出的梯度尺度,所以学习率得相应调低(经验上除以

蒸馏时要不要保留原始任务 loss?

要,而且不能简单加权平均。学生模型如果只学软标签,会在验证集上出现“高置信、低准确”现象 —— 对教师认为模糊的样本过度自信。

立即学习Python免费学习笔记(深入)”;

  • 标准做法是混合 loss:total_loss = alpha * ce_loss(student_logits, labels) + (1 - alpha) * kl_loss(student_log_soft, teacher_soft)
  • alpha 别设成 0.5:初始阶段建议 0.2~0.3,等学生 logits 接近教师后再逐步提高到 0.5
  • 如果下游任务 label 噪声大(比如弱监督数据),可把 ce_loss 换成 label_smoothing=0.1 的版本,避免学生过拟合错误硬标签

事情说清了就结束。真正难的不是调通蒸馏流程,而是发现学生模型在某个子集上始终比教师差 —— 这时候得回过头看教师自己在这个子集上的预测是否稳定,而不是急着改 loss 权重。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
if什么意思
if什么意思

if的意思是“如果”的条件。它是一个用于引导条件语句的关键词,用于根据特定条件的真假情况来执行不同的代码块。本专题提供if什么意思的相关文章,供大家免费阅读。

814

2023.08.22

点击input框没有光标怎么办
点击input框没有光标怎么办

点击input框没有光标的解决办法:1、确认输入框焦点;2、清除浏览器缓存;3、更新浏览器;4、使用JavaScript;5、检查硬件设备;6、检查输入框属性;7、调试JavaScript代码;8、检查页面其他元素;9、考虑浏览器兼容性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

193

2023.11.24

Python 自然语言处理(NLP)基础与实战
Python 自然语言处理(NLP)基础与实战

本专题系统讲解 Python 在自然语言处理(NLP)领域的基础方法与实战应用,涵盖文本预处理(分词、去停用词)、词性标注、命名实体识别、关键词提取、情感分析,以及常用 NLP 库(NLTK、spaCy)的核心用法。通过真实文本案例,帮助学习者掌握 使用 Python 进行文本分析与语言数据处理的完整流程,适用于内容分析、舆情监测与智能文本应用场景。

186

2026.01.27

pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法
pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法

本专题系统整理pixiv网页版官网入口及登录访问方式,涵盖官网登录页面直达路径、在线阅读入口及快速进入方法说明,帮助用户高效找到pixiv官方网站,实现便捷、安全的网页端浏览与账号登录体验。

249

2026.02.13

微博网页版主页入口与登录指南_官方网页端快速访问方法
微博网页版主页入口与登录指南_官方网页端快速访问方法

本专题系统整理微博网页版官方入口及网页端登录方式,涵盖首页直达地址、账号登录流程与常见访问问题说明,帮助用户快速找到微博官网主页,实现便捷、安全的网页端登录与内容浏览体验。

118

2026.02.13

Flutter跨平台开发与状态管理实战
Flutter跨平台开发与状态管理实战

本专题围绕Flutter框架展开,系统讲解跨平台UI构建原理与状态管理方案。内容涵盖Widget生命周期、路由管理、Provider与Bloc状态管理模式、网络请求封装及性能优化技巧。通过实战项目演示,帮助开发者构建流畅、可维护的跨平台移动应用。

38

2026.02.13

TypeScript工程化开发与Vite构建优化实践
TypeScript工程化开发与Vite构建优化实践

本专题面向前端开发者,深入讲解 TypeScript 类型系统与大型项目结构设计方法,并结合 Vite 构建工具优化前端工程化流程。内容包括模块化设计、类型声明管理、代码分割、热更新原理以及构建性能调优。通过完整项目示例,帮助开发者提升代码可维护性与开发效率。

19

2026.02.13

Redis高可用架构与分布式缓存实战
Redis高可用架构与分布式缓存实战

本专题围绕 Redis 在高并发系统中的应用展开,系统讲解主从复制、哨兵机制、Cluster 集群模式及数据分片原理。内容涵盖缓存穿透与雪崩解决方案、分布式锁实现、热点数据优化及持久化策略。通过真实业务场景演示,帮助开发者构建高可用、可扩展的分布式缓存系统。

22

2026.02.13

c语言 数据类型
c语言 数据类型

本专题整合了c语言数据类型相关内容,阅读专题下面的文章了解更多详细内容。

29

2026.02.12

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
最新Python教程 从入门到精通
最新Python教程 从入门到精通

共4课时 | 22.4万人学习

Django 教程
Django 教程

共28课时 | 4.3万人学习

SciPy 教程
SciPy 教程

共10课时 | 1.6万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号