经典论文阅读(7)——ALBERT

经典论文阅读(7)——ALBERT

在对自然语言表示进行预训练时,增加模型大小通常可以提高下游任务的性能。然而,在某些情况下,由于GPU/TPU内存的限制和更长的训练时间,进一步增加模型变得更加困难。ALBERT提出了两种参数减少技术,以降低内存消耗,提高BERT的训练速度,并且利用了一种自我监督的loss对句子连贯性构建。第一个是分解的embedding参数化。通过将大的词汇表嵌入矩阵分解为两个小的矩阵,将隐藏层的大小与词汇表嵌入的大小分开。这种分离使得在不显著增加词汇表嵌入的参数大小的情况下更容易增加隐藏大小。第二种技术是跨层参数共享。

模型架构

ALBERT的框架类似于BERT,用了一个连接GLEU激活函数的transformer encoder。ALBERT相较于BERT有三个主要贡献:

分解embedding参数

在BERT和后续的Roberta、XLNET中的wordpiece的embedding大小和隐藏层的大小相等,这并不是最优的。原因如下:

从建模的角度看,wordpiece的embedding需要学习与上下文无关的表征,而隐藏层需要学习与上下文相关的表征,可以将wordpiece的embedding大小E从隐藏层大小H中分离出来,这可以让我们更有效的利用所有模型参数。

从实践的角度看,自然语言处理通常需要比较大的词汇量V,若E=H,则H的增加将会增大embedding矩阵的大小,即V*E。这会容易导致生成有上亿参数的模型,而在大多数参数在训练时只进行了稀疏的更新。

因此,我们在ALBERT中将一个embedding参数分解为两个小的矩阵,即不直接将one-hot向量映射到H大小的隐藏空间中去,而是先将它映射到低维E大小的embedding空间,再映射到隐藏空间中。

跨层参数共享

共享参数的方法有很多种,例如,仅跨层共享前馈网络(FFN)参数,或仅共享注意参数。ALBERT的默认决定是跨层共享所有参数。

句子间相干损失

我们推断,NSP效率低下的主要原因是相较于MLM它的难度较低。NSP将主题预测和连贯预测两个单一任务合并在一起,然而,主题预测相较于连贯预测更容易学习,也有更多的与MLM loss学到的重叠了。

对于ALBERT,提出了句子词序预测SOP,避免了主题预测,而是专注于句子间连贯性的建模。SOP loss使用与BERT(来自同一文档的两个连续段)相同的技术作为积极的例子,而使用相同的两个连续段作为消极的例子,但顺序互换了。这迫使该模型学习更细粒度的关于话语层次的连贯性属性的区别。

模型设置

ALBERT-large比BERT-large少了约18倍的参数,18M vs 334M。H=2048的ALBERT-xlarge仅有60M的参数,H=4096的ALBERT-xxlarge仅有233M的参数,是BERT-large参数量的70%。

实验

在BOOKCORPUS和English Wikipedia中与BERT设置相同,最大输入长度设置为512。与BERT相同,使用的词汇量是30000,与XLNET一样用SentencePiece分词。我们用n-gram masking生成MLM任务所需的掩码输入,每个n-gram掩码的长度随机生成,设置n最大为3。所有的模型更新都使用4096的batch大小和学习率为0.00176的LAMB优化器。

ALBERT-xxlarge相较于BERT-large的提升有:SQuAD v1.1 (+1.9%), SQuAD v2.0 (+3.1%), MNLI (+1.4%), SST-2 (+2.2%), and RACE (+8.4%)。

经典论文阅读(7)——ALBERT

由于通信量和计算量更少,与相应的BERT模型相比,ALBERT有更高的数据吞吐量。与BERT-large相比,ALBERT-large的速度快1.7倍,而ALBERT-xxlarge由于更大的结构慢3倍。

  • 分解embedding参数:在非共享条件(BERT风格)下,更大的embedding大小表现的更好。在共享条件下(ALBERT风格)下,embedding大小为128表现的最好。
  • 跨层参数共享:比较了全共享策略(ALBERT-style)、非共享策略(BERT-style)和只共享注意参数(但不共享模糊神经网络参数)或只共享FFN参数(但不共享注意参数)的中间策略。全共享策略会降低模型性能,但E=128的表现没有E=768时严重。除此之外,大部分性能下降似乎来自于FFN层参数共享,共享注意参数在E=128时没有下降,E=768时略微下降。
  • 句子词序预测:NSP loss对SOP任务没有任何区分能力,也即只对主题转移进行建模。SOP loss可以解决NSP问题,且SOP在多句编码的下游任务中提升了性能。

经过大致相同的训练时间,ALBERT-xxlarge明显优于BERT-large。虽然ALBERT-xxlarge比BERT-large具有更少的参数并得到更好的结果,但由于其更大的结构,计算成本更高。

Original: https://blog.csdn.net/fmf1287/article/details/122184809
Author: fmf1287
Title: 经典论文阅读(7)——ALBERT

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/531023/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球