论文
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维的输出。
训练目标