MiniLM V2 深度自注意力蒸馏: Multi-Head Self-Attention Relation Distillation for Compressing Pretrain

建议先阅读MiniLM V1:蒸馏预训练模型架构:深度自注意力蒸馏(NeurIPS 2020) MINILM - 知乎

论文个人理解

目的

与V1一样,本篇paper也是在预训练阶段蒸馏模型(跟任务无关的蒸馏架构),下游任务直接load蒸馏预训练好的student模型,使用任务相关数据finetuning。

方法

  1. 深度自注意力蒸馏: 蒸馏query-query矩阵、key-key矩阵和value-value矩阵(V1采用的是attention矩阵和V-V矩阵)
  2. 如果teacher模型过大,可以从teacher的中上层(upper-middle layer)蒸馏到student的最后一层(V1采用的是助手机制)

结论

超越了MiniLM V1的效果

论文精读

摘要

如下图所示,MiniLM V1提出的深度自注意力提出了与层数、hidden_size无关的蒸馏架构,但是仍然需要attention head的数目一样(一般为12)

MiniLM V2 深度自注意力蒸馏: Multi-Head Self-Attention Relation Distillation for Compressing Pretrain_第1张图片

本文(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)的思路有相同的结论)

模型结构

MiniLM V2 深度自注意力蒸馏: Multi-Head Self-Attention Relation Distillation for Compressing Pretrain_第2张图片

paer的核心就全在这两张图里了,左图是最后一层或者中上层蒸馏,右图是q、k和v的多头自注意力关系蒸馏的计算过程

多头自注意力关系蒸馏

上面右图从下而上把计算过程梳理的很清楚

  1. 映射:隐层经过映射得到queries、keys和values(跟BERT一一致)
  2. Concat:将queries、keys和values相同concat到一起 (那么teacher concat后size为 seq_len*teacher_hidden_size,同理student concat后size为seq_len * student_hidden_size)
  1. Split:再将上面concat后进行split(这里为了teacher和student获得相同维度的relation矩阵)
  2. 最后在计算自注意力关系矩阵、这Q和Q自己计算attention矩阵(BERT中是Q和K计算),这也是为什么叫做自注意力关系

最后一层或者中上层蒸馏

有很多论文介绍,将teacher最后一层蒸馏给student通常不会取得最好的结果,主要原因是student很难学会最后一层的语义信息。不谋而合,当student蒸馏模型参数相差很大的teacher时,论文抛弃了V1版本蒸馏最后一层的思路,也采用了从中上层蒸馏的方法。但是当student和teacher参数相差不是很大时,还是会采用最后一层蒸馏的方法。

论文成果

消融实验

主要验证了少了任何一个注意力关系蒸馏都不行,其实发现跟V1版本效果差不多

MiniLM V2 深度自注意力蒸馏: Multi-Head Self-Attention Relation Distillation for Compressing Pretrain_第3张图片

下游任务

基本都是最好的,这里就不贴了

Paper地址:https://arxiv.org/pdf/2012.15828.pdf

你可能感兴趣的:(每天一篇自然语言顶会paper,BERT蒸馏,人工智能,深度学习,机器学习)