ALBERT 论文翻译和阅读笔记

Abstract

在预训练无言模型中,增加网络参数的规模能带来在下游任务的性能的提升,但是随着参数量的增加,会带来一些困难:GPU内存的限制和训练时间长的问题。

本文提出两种减少参数的技术,来降低内存开销、增加训练速度,能够解决内存限制问题,并且较少交互开销。

ALBERT联合两只中采参数降低技术来消散放缩预训练模型的主要阻碍。

  • 因子分解embedding 参数

    通过分解大的vocabulary embedding matrix变成两个小的矩阵,这种方法使得增加hidden_size但是不会显著地增加vocabulary embedding的参数量

  • 层间参数共享

    这项技术阻止了随着网络层的加深,参数量也成正比的问题。

为了更好地提升ALBERT的性能表现,介绍了一种自监督损失(SOP),SOP主要关注于内部句子的共现,同时解决原始bert的NSP算是的无效性。

1 Related Work

1.1 自然语言表征学习的缩放

学习自然语言的表示对于各种各样的NLP任务来说都是非常重要的,这几年最大的变化就是从预训练Word Embedding到预训练语言模型。

增加模型的规模对于模型效果的提升很重要,但是由于==计算的限制(尤其是GPU内存的限制)==,很难去实验更大得模型。为了解决这个问题,很多学者提出了自己的方法,一些学者提出方法缩小内存消耗的速度;一些学者提出利用并行化获得更大地模型。

通过对比,本文的方法不仅能降低内存开销,而且能够增加训练速度。

1.2 层间参数共享

层间层数共享的方法在TRansformer被探索过,但是其主要工作专注于标准的encoder-decoder架构的训练而不是预训练/微调的设置。

1.3 设置顺序目标

ALBERT在预测一段文本的两个连续的片段的顺序来构建预训练损失。

本文的损失与句子顺序目标相似,其句子的嵌入为了决策出两个连续语句的先后顺序被学习,不太像以前的工作那样只是局限于句子之间,本文的损失定义在文本片段之间的先后顺序的判定。

bert所使用的的第二个segment可能会来自其他的文档。

2 ALBERT

展示ALBERT的设计并与原始的bert作比较。

ALBERT的基本结构与bert一样都是使用transformer的encoder,使用GELU非线性激活函数。

2.1 Embedding parameterization

在bert、XLNET、RoBERTa中,embedding_size(E)和hidden_size(H)一致,也即:\large H\equiv E,这种做法使得建模和实际使用中都是不理想的。

从模型的角度去考虑,embedding的目的是学习上下文独立的表示,而hidden_size是要学习上下文依赖的表示,类Bert的文本表示的能力来自于基于上下文依赖所学习到的上下文表示,也即hidden_size更加重要。

松开E=H的限制,使得可以更加有效地利用建模所需求的模型参数,也即\large H\gg E

从实用角度去看,NLP通常要求比较大的词典大小\Large V,如果E\equiv H,那么增加H也会增加嵌入矩阵\large \in \mathcal{R}^{V\times E}的大小,这会使得模型很容易就达到了百万级的参数,而且其中大多数在训练期间更新都很少。

因此,在ALBERT中实用embedding参数的分解,将其分解成为两个小矩阵。不在将one-hot向量直接映射到H大小的隐层参数空间,首先将其映射到一个低维的嵌入空间E,之后将其映射到hidden space,通过使用这种分解方法,降低了embedding的参数从\large O(V \times H)\large O(V\times E+E \times H)这种参数降低方法在\large H \gg E时,时==非常显著==的。

2.2 层间参数共享

存在着很多的参数共享方法,如仅仅共享全连接的参数、仅仅共享attention的参数等。对于ALbert来说,默认设置是共享层之间的所有参数。


Snipaste_2022-02-14_15-41-44.png

从上图可看到,albert的参数共享方法相比较bert层到层之间的变换更加地平滑。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容