建议先阅读MiniLM V1:https://zhuanlan.zhihu.com/p/462285261
与V1一样,本篇paper也是在预训练阶段蒸馏模型(跟任务无关的蒸馏架构),下游任务直接load蒸馏预训练好的student模型,使用任务相关数据finetuning。
超越了MiniLM V1的效果
如下图所示,MiniLM V1提出的深度自注意力提出了与层数、hidden_size无关的蒸馏架构,但是仍然需要attention head的数目一样(一般为12)
本文(MiniLM V2)连attention head数目都不需要一样了,通过蒸馏query、key和value的多头自注意力关系;另外不同于V1版本的助手机制(teacher蒸馏给助手、助手再蒸馏给student),本文直接将teacher模型的中上层(upper-middle layer)蒸馏到student(这点和Marginal Utility Diminishes: Exploring the Minimum Knowledge for BERT Knowledge Distillation(ACL 2021)的思路有相同的结论)
paer的核心就全在这两张图里了,左图是最后一层或者中上层蒸馏,右图是q、k和v的多头自注意力关系蒸馏的计算过程
上面右图从下而上把计算过程梳理的很清楚
有很多论文介绍,将teacher最后一层蒸馏给student通常不会取得最好的结果,主要原因是student很难学会最后一层的语义信息。不谋而合,当student蒸馏模型参数相差很大的teacher时,论文抛弃了V1版本蒸馏最后一层的思路,也采用了从中上层蒸馏的方法。但是当student和teacher参数相差不是很大时,还是会采用最后一层蒸馏的方法。
主要验证了少了任何一个注意力关系蒸馏都不行,其实发现跟V1版本效果差不多
基本都是最好的,这里就不贴了