模型蒸馏Distillation
今天参考这篇文章:
https://zhuanlan.zhihu.com/p/71986772
transformer系列模型的进展,从BERT到GPT2再到XLNet。然而随着模型体积增大,线上性能也越来越差,所以决定开一条新线,开始follow模型压缩之模型蒸馏的故事线。
0. 名词解释
- teacher - 原始模型或模型ensemble
- student - 新模型
- transfer set - 用来迁移teacher知识、训练student的数据集合
- soft target - teacher输出的预测结果(一般是softmax之后的概率)
- hard target - 样本原本的标签
- temperature - 蒸馏目标函数中的超参数
- born-again network - 蒸馏的一种,指student和teacher的结构和尺寸完全一样
- teacher annealing - 防止student的表现被teacher限制,在蒸馏时逐渐减少soft targets的权重
1.1 为什么蒸馏可以work
好模型的目标不是拟合训练数据,而是学习如何泛化到新的数据。所以蒸馏的目标是让student学习到teacher的泛化能力,理论上得到的结果会比单纯拟合训练数据的student要好。另外,对于分类任务,如果soft targets的熵比hard targets高,那显然student会学习到更多的信息。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
2019-03-07 迁移tf1.0.1程序到tf1.12.0的过程
2019-03-07 机器学习平台使用第二块GPU的方法
2018-03-07 【tensorflow】最近一段时间好好学学这个-google的视频教程
2018-03-07 pip安装离线包的经验
2018-03-07 【DNN】非常好的一篇文章,讲了google最新的两个模型,wide-deep,deep-cross - 还有这个人的系列博客
2018-03-07 检索模型复习 - BM25,BIM, 向量空间模型,TFIDF
2017-03-07 str2int的代码(复习)