MobileBERT a Compact Task-Agnostic BERT for Resource-Limited Devices

论文
MobileBERT: a Compact Task-Agnostic BERT for Resource-Limited Devices

introduction

MobileBERT被设计成和$BERT_{large}$一样深,而每一层都通过采用bottleneck结构和平衡注意力机制和前馈网络进而使其变得更加狭窄(下图)。为了训练MobileBERT,我们首先训练了一个特殊设计的教师模型,一个包含$BERT_{large}$模型(IB-BERT)的inverted-bottleneck模型。然后,我们将知识从IB-BERT迁移到MobileBERT。我们在实证研究中仔细研究了各种知识迁移策略。

实证评估表明,MobileBERT比BERT(BASE)小4.3倍、快5.5倍,并且可以在知名的NLP基准上获得可观的结果。在GLUE的自然语言推理任务中,MobileBERT的GLUE得分为77.7,仅比BERT(BASE)低0.6,在Pixel 4手机上的延迟为62ms。在SQuAD v1.1/v2.0问答任务中,MobileBER获得的dev F1得分为90.3/80.2,甚至比BERT(BASE)高出1.5/2.1。

MobileBERT

瓶颈层和倒瓶颈层

MobileBERT的体系结构如图1(c)所示。它和$BERT_{large}$一样深,但每个构建块都小得多。如表1所示,每个构建块的隐状态大小仅为128。另一方面,我们为每个构建块引入两个线性变换,以将其输入和输出维度调整为512。根据(He等人,2016)中的术语,我们将这种架构称为瓶颈层。

训练这样一个深并且瘦小的网络是很大的挑战。为了解决这一问题,我们首先构建了一个教师网络,并对其进行训练直至收敛,然后将知识从这个教师网络迁移到MobileBERT。我们发现这比从头开始直接训练MobileBERT的效果要好得多。各种训练策略将在后面的章节中讨论。这里,我们介绍教师网络的架构设计,如图1(b)所示。事实上,教师网络就是$BERT_{large}$,同时增加了倒瓶颈结构(Sandler等人,2018),将其feature map大小调整为512。在下文中,我们将教师网络称为IB-BERT(LARGE)。请注意,IB-BERT和MobileBERT具有相同的feature map大小,即512。因此,我们可以直接比较IB-BERT和MobileBERT的layer-wise输出的差异。我们的知识迁移战略需要这样一种直接的比较。

值得指出的是,同时引入瓶颈和倒瓶颈结构使得体系结构设计具有相当的灵活性。我们可以只使用MobileBERT的瓶颈(相应地,教师变为BERT)或者只使用IB-BERT的倒瓶颈(MobileBERT中没有瓶颈)来对齐它们的特征映射。然而,当使用这两种方法时,我们可以允许IB-BERT(LARGE)在保证MobileBERT足够紧凑的同时保持$BERT_{large}$的性能。

堆叠式前馈网络

MobileBERT的瓶颈结构带来的一个问题是,多头注意力(MHA)模块和前馈网络(FFN)模块之间的平衡被打破。MHA和FFN在Transformer结构中扮演着不同的角色:前者允许模型共同处理来自不同子空间的信息,而后者增加了模型的非线性。在原始的BERT中,MHA和FFN中的参数之比总是1:2。但在瓶颈结构中,MHA的输入来自更宽的特征映射(块间大小),而FFN的输入来自更窄的瓶颈(块内大小)。这导致MobileBERT中的MHA模块相对包含更多的参数。

为了解决这个问题,我们建议在MobileBERT中使用堆叠式前馈网络来重新平衡MHA和FFN之间的相对大小。如图1(c)所示,每个MobileBERT层包含一个MHA,但多个堆叠的FFN。在MobileBERT中,我们在每个MHA之后使用4个堆叠FFN。

操作优化

移除层归一化 将n-channel的隐状态h的层归一化替换为element-wise的线性变换:
$\text{NoNORm(h)} = \gamma \circ h+β$
使用relu激活 我们用更简单的relu激活代替了gelu激活(Nair和Hinton,2010)。

Embedding因子分解

BERT模型中的嵌入表占模型大小的很大一部分。为了压缩嵌入层,如表1所示,我们将MobileBERT中的嵌入维度减少到128。然后,我们对原始token嵌入应用核大小为3的一维卷积来产生512维的输出。

训练目标


   转载规则


《MobileBERT a Compact Task-Agnostic BERT for Resource-Limited Devices》 yao 采用 知识共享署名 4.0 国际许可协议 进行许可。
 上一篇
deepspeed deepspeed
deepspeed config 键值使用 train_batch_size:设置训练时的批量大小。 gradient_accumulation_steps:设置梯度累积的步数,以减少通信开销和内存占用。 fp16:设置是否使用混合精
下一篇 
Distilling Task-Specific Knowledge from BERT into Simple Neural Networks Distilling Task-Specific Knowledge from BERT into Simple Neural Networks
论文Distilling Task-Specific Knowledge from BERT into Simple Neural Networks 1 介绍2 相关工作模型压缩 一项突出的工作致力于压缩大型神经网络以加速推理.早期的开创性
  目录