ACL 2020 | MobileBERT:一种与任务无关的模型压缩方法

2020 年 7 月 24 日 PaperWeekly


©PaperWeekly 原创 · 作者|蔡杰
学校|北京大学硕士生
研究方向|问答系统


论文标题: MobileBERT: a Compact Task-Agnostic BERT for Resource-Limited Devices
论文来源: ACL 2020
论文链接: https://arxiv.org/abs/2004.02984


引言
目前很多预训练模型的压缩方法都是和下游任务相关的,一般做法都是把 pre-train 的模型在下游任务上 fine-tune 之后,进行缩小操作(蒸馏,裁剪等等)。据作者说目前还没有与任务无关的轻量级预训练模型,他们要填补这个领域的空白。实验结果上看,这个空白填补的还是很成功的。


Insights

要做一个预训练的小模型,用蒸馏?蒸馏完的模型要么浅,要么窄,但是这两种模型都有自己的缺点,浅的表示能力不足,窄的不好训练(毕竟还是要考虑后续 fine-tune 的)。

MobileBERT 采用的和 BERT-large 一样深的层数,在每一层中的 transformer 中加入了 bottleneck 机制使得每一层 transformer 变得更窄,但是并没有丢失其与 self-attention 和 Feed-Forward 之间的平衡。

作者先训练了一个带有 bottleneck 机制的 BERT-large(IB-BERT),然后把 IB-BERT 中的知识迁移到 Mobile-BERT 中,在这个迁移的策略中,作者做了很多尝试。最后 Mobile-BERT 比 BERT-base 小 4.3 倍,快 5.5 倍,而且在 GLUE 上的效果没怎么降,还是很牛的。

可以看到 Table1 中,MobileBERT 就是作者之前说的那种窄的模型,会很难训练。所以作者采用的方法就是先训练一个 IB-BERT-large,然后把 IB-BERT-large 学到的知识迁移到 MobileBERT 中去。

采用了 bottleneck 机制的 IB-BERT-large 也存在问题,bottleneck 机制会打破原有的 MHA(Multi Head Attention)和 FFN(Feed Forward Network)之间的平衡,原始 bert 中的两部分的功能不同,参数比大概为 1:2。采用了 bottleneck 机制会导致 MHA 中的参数更多,所以作者在这里采用了一个堆叠 FFN 的方法,增加 FFN 的参数,Table1 中也能看出。

为了让模型更快,作者发现最耗时间的是 Layer-Norm 和 gelu,将这两个部分进行替换。把需要均值和方差的 Layer-Norm 替换为 NoNorm 的线性操作,把 gelu 替换为 ReLU,word-embedding 降为 128,然后用一个 3 核卷积操作提高到 512。


迁移策略

3.1 Feature Map Transfer (FMT)
由于在 BERT 中的每一层 transformer 仅获取前一层的输出作为输入,layer-wise 的知识转移中最重要的是每层都应尽可能靠近 teacher。特别是两模型每层 feature-map 之间的均方误差:

3.2 Attention Transfer (AT)

注意机制极大地提高了 NLP 的性能,并且成为 transformer 中至关重要的组成部分。作者使用从经过优化的 teacher 那里得到 self_attention map,帮助训练 MobileBERT。作者计算了 MobileBERT 和 IB-BERT 之间的自注意力之间的 KL 散度:

3.3 Pre-training Distillation (PD)

除了 layer-wise 的知识转移外,作者还在对 MobileBERT 进行预训练时使用知识蒸馏损失。作者使用原始的线性组合掩码语言模型(MLM),下一句预测(NSP)和新的 MLM 知识蒸馏(KD)是我们的预训练蒸馏损失:

鉴于上述 target,在训练中可以有各种组合策略。作者讨论了三种策略。

辅助知识迁移

在这个策略中将中间知识转移视为知识蒸馏的辅助任务。使用 single 损失,这是来自所有层的知识转移损失以及预训练蒸馏损失。
联合知识迁移
IB-BERT 的中级知识(即attention map和feature map)可能不是 MobileBERT 学生的最佳解决方案。因此,作者建议将这两个 Loss 分开。首先在 MobileBERT 上训练所有 layer-wise 知识转移损失,然后通过预训练蒸馏进一步训练它。
渐进知识转移
作者也担心如果 MobileBERT 无法完美模仿 IB-BERT,下层可能会影响更高的层次的知识转移。因此,作者建议逐步培训知识转移的每一层。渐进式知识转移分为 L 个阶段,其中 L 是层数。


实验结果

表格还是很清晰的,就不多做解释了。


结论

本文介绍了 MobileBERT,它是 BERT 的与任务无关的紧凑型变体。流行的 NLP 基准测试 GLUE 的经验结果表明,MobileBERT 与 BERT-base 相当,但体积更小,速度更快。




更多阅读





#投 稿 通 道#

 让你的论文被更多人看到 



如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。


总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。 


PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学习心得技术干货。我们的目的只有一个,让知识真正流动起来。


📝 来稿标准:

• 稿件确系个人原创作品,来稿需注明作者个人信息(姓名+学校/工作单位+学历/职位+研究方向) 

• 如果文章并非首发,请在投稿时提醒并附上所有已发布链接 

• PaperWeekly 默认每篇文章都是首发,均会添加“原创”标志


📬 投稿邮箱:

• 投稿邮箱:hr@paperweekly.site 

• 所有文章配图,请单独在附件中发送 

• 请留下即时联系方式(微信或手机),以便我们在编辑发布时和作者沟通



🔍


现在,在「知乎」也能找到我们了

进入知乎首页搜索「PaperWeekly」

点击「关注」订阅我们的专栏吧



关于PaperWeekly


PaperWeekly 是一个推荐、解读、讨论、报道人工智能前沿论文成果的学术平台。如果你研究或从事 AI 领域,欢迎在公众号后台点击「交流群」,小助手将把你带入 PaperWeekly 的交流群里。



登录查看更多
1

相关内容

专知会员服务
114+阅读 · 2020年8月22日
【KDD2020-UCLA-微软】GPT-GNN:图神经网络的预训练
专知会员服务
62+阅读 · 2020年8月19日
Transformer文本分类代码
专知会员服务
116+阅读 · 2020年2月3日
BERT进展2019四篇必读论文
专知会员服务
67+阅读 · 2020年1月2日
深度神经网络模型压缩与加速综述
专知会员服务
128+阅读 · 2019年10月12日
模型压缩 | 知识蒸馏经典解读
AINLP
10+阅读 · 2020年5月31日
基于知识蒸馏的BERT模型压缩
大数据文摘
18+阅读 · 2019年10月14日
论文浅尝 | 面向知识图谱补全的共享嵌入神经网络模型
开放知识图谱
31+阅读 · 2019年4月7日
3分钟看懂史上最强NLP模型BERT
机器学习算法与Python学习
8+阅读 · 2019年2月27日
论文浅尝 | 基于深度强化学习的远程监督数据集的降噪
开放知识图谱
29+阅读 · 2019年1月17日
自然语言处理中的语言模型预训练方法
PaperWeekly
14+阅读 · 2018年10月21日
【干货】ACL 2018 鲁棒、无偏的NLP训练方法
专知
4+阅读 · 2018年7月25日
已删除
Arxiv
32+阅读 · 2020年3月23日
Arxiv
15+阅读 · 2019年9月11日
Arxiv
6+阅读 · 2019年8月22日
Arxiv
6+阅读 · 2019年4月8日
Arxiv
21+阅读 · 2019年3月25日
VIP会员
相关VIP内容
专知会员服务
114+阅读 · 2020年8月22日
【KDD2020-UCLA-微软】GPT-GNN:图神经网络的预训练
专知会员服务
62+阅读 · 2020年8月19日
Transformer文本分类代码
专知会员服务
116+阅读 · 2020年2月3日
BERT进展2019四篇必读论文
专知会员服务
67+阅读 · 2020年1月2日
深度神经网络模型压缩与加速综述
专知会员服务
128+阅读 · 2019年10月12日
相关资讯
模型压缩 | 知识蒸馏经典解读
AINLP
10+阅读 · 2020年5月31日
基于知识蒸馏的BERT模型压缩
大数据文摘
18+阅读 · 2019年10月14日
论文浅尝 | 面向知识图谱补全的共享嵌入神经网络模型
开放知识图谱
31+阅读 · 2019年4月7日
3分钟看懂史上最强NLP模型BERT
机器学习算法与Python学习
8+阅读 · 2019年2月27日
论文浅尝 | 基于深度强化学习的远程监督数据集的降噪
开放知识图谱
29+阅读 · 2019年1月17日
自然语言处理中的语言模型预训练方法
PaperWeekly
14+阅读 · 2018年10月21日
【干货】ACL 2018 鲁棒、无偏的NLP训练方法
专知
4+阅读 · 2018年7月25日
Top
微信扫码咨询专知VIP会员