返回栏目
首页人工智能 • 正文

000斤,如何将自然语言的预训练加快10倍

发布时间:  来源:河洛网

近年来,自然语言处理方面的预训练成为研究领域的热点,著名的GPT-3也掀起了新的浪潮。 但是众所周知,训练这么大规模的模型是非常耗费资源的:即使对维基数据训练简单的BERT-Base模型,也需要使用很多GPU训练1-2周,所谓购买GPU的开销, 这种消费只有工业界的几家大企业才能实现,极高的门槛限制了相关方向的探索和整体发展。

000斤,如何将自然语言的预训练加快10倍

为了降低培训准入门槛,微软亚洲研究院机器学习组的研究人员从机器学习中的不同角度,分别针对培训的不同侧面提出了加速方法。 具体来说,研究者们提出了基于Transformer的新结构TUPE,针对BERT设计了数据的高效利用战略,扩展了类似人类学习的预训练任务。

前两项工作已被新出炉的ICLR 2021接受。 这些方法可以独立使用,也可以组合使用,可以达到更大的加速比。 本来需要十天的训练,现在一天就能完成!

基于转换器的新结构TUPE(ICLR 2021 )

位置表达( Positional Embedding )大家都知道,这个设计真的高效合理吗?

由于Transformer无法识别来自结构不同位置的词,所以模型一般需要位置表示。 其中最简单的方法是直接在输入词向量上加入位置表达,但是词向量和位置向量相加是正确的选择吗?

词向量的加减操作可以保持意义,但位置向量本身没有意义,将两者相加不是更难模型吗? 在第一层展开Transformer的注意力分布( attention weight ),可以得到以下结果。

从上面展开的公式可以看出两个问题。

第一,中间2项引入了词与位置信息的交叉,但没有理由说某个位置和某个词一定有很强的关联(论文中有详细的实验分析,说明中间2项也有一定的冗余性)。 。

第二,第一项和第四项分别计算词与词、位置和位置的关联,但他们采用了相同的参数化函数( W^Q和W^K ),限制了注意力表达能力。

为了解决这两个问题,微软亚洲研究所的研究人员做了简单的改变。

简单地说,就是消除了位置( position )和文本( token )的交叉,同时建立了不同的变换矩阵。

请注意,在多层转换器模型(如BERT )中,上式的第二项在不同的层间共享。 因此,这里只需要计算一次,几乎没有引入额外的计算成本。

图1 :整体传输需求编码( tupe )结构

图2 :实验结果

另外,研究者们对[CLS] token的位置进行特殊处理,避免过于关注局部而忽视句子整体的信息,整体的tupe ( transformerwithuntiedpositionalencoding )结构如图1所示。

实验结果表明,如图2所示,该方法最终不仅比基线好得多,而且在30% (300k-step )时可以得到基线为1000k-step时的效果。

有关TUPE的完整行为,请参阅https://open review.net/forum。id = 09-528 y2fgf

高效利用数据:让BERT像人一样做笔记( ICLR 2021 )

众所周知,在语言数据集中,单词通常分布非常长尾,即大量单词在整个数据集中的出现频率很低。 这些低频词的词向量,训练质量往往很差。

这些低质量的词向量给理解整个模型的训练句子带来了困难,延缓了整个模型事前训练的速度。

例如,如图3所示,如果“COVID-19”是低频语,完全填写空的人不知道其含义,则填写恰当的词就非常困难,同样的问题也会在自然语言的事前训练过程中发生。

图3 :低频词示例

因此,微软亚洲研究院的研究者们提出了为低频词动态做笔记的方法Taking Notes on the Fly(TNF ),记录历史上稀有词出现的句子的信息,可以更好地理解模型再次看到该低频词时的情况

如图3所示,研究人员从模型为笔记本“the COVID-19 Pandemicisanongoingglobalcrisis”( co vid-19是持续发生的全球危机)到“co vid-19”

具体来说,TNF维持着笔记本词典。 在这本笔记本词典中,每个低频词都存储有一个上下文表达向量( Contextual representation )作为笔记本。

该词出现后,TNF从笔记本词典中取出其上下文特征矢量,与该词矢量一起构成模型在该位置的输入,同时也更新笔记本上对该词的内容,如图4所示

图4:TNF的培训过程

研究人员将TNF应用于两种有名有效的语言预训练方法BERT和ELECTRA进行了实验,同时对GLUE预训练的模型进行了微调和比较。

实验结果表明,在两种预备训练方法中,如果TNF和基线达到相同的实验结果,则TNF的训练时间仅为基线的40% (参见图5 )。 。

图5:TNF的训练曲线

如果TNF的迭代更新次数与基线训练相同,则GLUE上的TNF在平均GLUE Score和大多数子任务上的表现形式都超出了基线。

有关TNF的完整工作,请参阅https://openreview.net/forum。标识id=lU5Rs_wCweN

合理的预训练目标: BERT喜欢做ABCD的单选题

目前,许多预训练模式使用的是面具语言模式任务。 也就是说,隐藏输入语句的一部分,将隐藏的部分恢复到模型中。 这个任务实际上相当于“完整形填料空”的问题,但与考试中常见的完整形填料空不同,自然语言预训练中的完整形填料空选项是整个词典。

当然,对人类来说,在没有替代方案的开放环境中,正确完成这个“完全形填充空”任务也是非常困难的。

图6 :单选题任务

事实上,人类更容易完成选择题和判断题。 在给出有限选择的条件下,任务难度将大幅降低。 有名的“ELECTRA”模式使用的是判决问题任务,前期设计中的判决问题容易,训练效率高。

随着模型的训练,判决问题的设计越来越困难,模型总是能得到有效的反馈。 与ELECTRA略有不同,微软亚洲研究院的研究人员赋予模型设计的预训任务是ABCD单选题,希望能够动态调整单选题的难度。

在早期学习中,设计了简单的选题,使模型完成了比较简单的任务,加速了学习过程,后期逐渐提高了任务难度,取得了更为细致的结果。

在这里,通过设计难易度不同的任务和选项的数量,可以调节任务的难易度(选项越多,任务就越困难)。 。

图7 :使用元控制器进行预培训

为了从训练任务的容易度上达到难的效果,提出了可以出问题的“元控制器”,可以自适应地改变多选问题的难度。

特别是,该元控制器是一个小BERT,根据掩码语言模型进行预训练,并与主模型一起训练迭代。

每句话屏蔽这个句子,元控制器将屏蔽的句子作为输入,输出与屏蔽的对象词相关的用例,这些用例用于候补解的构建。

图8 :基于自适应多项选择任务的预训练实验结果

可以看出,在训练初期,由于元控制器的训练不充分,生成替代方案的质量不高,主模型可以在这些容易的任务中很快学习到正确的知识。

在训练后期,元控制器的训练基本完成,可以生成高质量的替代答案,主模型可以在这些困难的任务中进一步升级。

如果将该元控制器应用于BERT,您会发现与原来的BERT相比,训练速度提高了80%。 也就是说,在下游任务GLUE中,经过20%计算开销训练的模型与训练时间为5倍的BERT模型一致。

有关完整的工作信息,请访问https:/ arxiv.org/ABS/2006.05744

【编辑推荐】

    相关文章Related

    返回栏目>>

    河洛网首页

    Copyright © 2019 河洛网 版权所有 dahuimr@163.com