NLP实操手册: 基于Transformer的深度学习架构的应用指南(综述)
人工智能算法与Python大数据 致力于提供深度学习、机器学习、人工智能干货文章,为AI人员提供学习路线以及前沿资讯23篇原创内容公众号点上方人工智能算法与Python大数据获取更多干货在右上方 ··· 设为星标 ★,第一时间获取资源仅做学术分享,如有侵权,联系删除转载于 :翻译来自:百分点认知智能实验室 易显维 桂安春论文:The NLP Cookbook: Modern Recipes for Transformer based Deep Learning Architectures编辑:zenRRan(深度学习自然语言处理公众号)摘要近年来,自然语言处理(Natural Language Processing, NLP)模型在文本分类、机器翻译、认知对话系统、自然语言理解(Natural Language Understanding, NLU)信息检索和自然语言生成(Natural Language Generation, NLG)等语言和语义任务中取得了显著的成功。这一壮举主要归功于开创性的Transformer架构,导致了诸如BERT、GPT (I、II、III)等设计。尽管这些大尺寸模型取得了前所未有的性能,但它们的计算成本很高。因此,一些最近的NLP架构已经使用了迁移学习、剪枝、量化和知识蒸馏的概念来实现适度的模型规模,同时保持与前人取得的性能几乎相似。此外,为了从知识抽取的角度缓解语言模型带来的数据量挑战,知识检索器已经被构建,以更高的效率和准确性从大型数据库语料库中提取显式数据文档。最近的研究也集中在通过对较长的输入序列提供有效注意的高级推理上。在本文中,我们总结并检验了目前最先进的(SOTA) NLP模型,这些模型已被用于许多NLP任务,以获得最佳的性能和效率。我们提供了对不同体系结构的详细理解和功能、NLP设计的分类、比较评估和NLP的未来发展方向。关键词:深度学习,自然语言处理,自然语言理解,自然语言生成,信息检索,知识提炼,剪枝,量化I.导言自然语言处理(NLP)是机器学习的一个领域,处理建立和发展语言模型的语言学。语言建模(LM)通过概率和统计技术确定单词序列在句子中出现的可能性。由于人类语言涉及单词序列,最初的语言模型是基于循环神经网络(RNNs)。由于rnn会导致长序列的消失和爆炸梯度,因此改进的循环网络(如lstm和gru)被用来提高性能。尽管lstm有增强作用,但研究发现,当涉及相对较长的序列时,lstm缺乏理解。这是由于称为上下文的整个历史是由单个状态向量处理的。然而,更大的计算资源导致新的架构的涌入,导致基于深度学习[1]的NLP模型迅速崛起。2017年,突破性的Transformer[2]架构通过注意力机制克服了LSTM的上下文限制。此外,它提供了更大的吞吐量,因为输入是并行处理的,没有顺序依赖关系。随后在2018年推出的基于改进的Transformer模型,如GPT-I[3]和BERT[4],成为了NLP世界的转折点。这些架构是在大型数据集上训练的,以创建预训练模型。随后,迁移学习被用于针对特定任务特征的微调这些模型,从而显著提高了几个NLP任务[5],[6],[7],[8],[9],[10]的性能。这些任务包括但不限于语言建模、情感分析、问答和自然语言推理。这一成就未能实现迁移学习的主要目标,即用最小的微调样本实现高模型精度。此外,模型性能需要跨多个数据集通用,而不是特定于任务或数据集的[11]、[12]、[13]。然而,由于越来越多的数据被用于训练前和微调目的,高泛化和迁移学习的目标受到了影响。这使得是否应该合并更多的训练数据或改进的体系结构来构建更好的SOTA语言模型的决定变得模糊。例如,随后的XLNet[14]体系结构拥有新颖而复杂的语言建模,这比仅用XLNet数据的10% (113GB)进行训练的简单BERT体系结构提供了微小的改进。之后,通过引入RoBERTa[15],一个大型的基于BERT的模型训练了比BERT (160GB)更多的数据,表现优于XLNet。因此,一个更一般化的体系结构,并在更大的数据上进行进一步训练,就会产生NLP基准测试。上述架构主要是语言理解模型,其中自然方言被映射到正式解释。这里的初始目标是将输入用户的话语翻译成传统的短语表示。对于自然语言理解(NLU),上述模型的最终目标的中间表示由下游任务决定。与此同时,对于NLU模型中的特定任务角色来说,微调逐渐成为一种挑战,因为它需要更大的样本容量来学习特定的任务,这使得这种模型从泛化[16]中失去了。这引发了自然语言生成(NLG)模型的出现,与NLU训练相反,它从相应的被掩盖或损坏的输入语义中学习生成方言话语。这种模型与常规的粗略语言理解的下游方法不同,对于序列到序列的生成任务(如语言翻译)是最优的。T5[17]、BART[18]、mBART[19]、T-NLG[20]等模型在大量的损坏文本语料上进行预训练,并通过去噪目标[21]生成相应的净化文本。这种转换很有用,因为NLU任务的额外微调层对于NLG来说并不需要。这进一步提高了预测能力,通过零或几次射击学习(one-shot learning),使序列生成与最小或没有微调。例如,如果一个模型的语义嵌入空间预先训练了动物识别“猫”、“狮子”和“黑猩猩”,它仍然可以正确预测“狗”,而无需微调。尽管NLG具有优越的序列生成能力,但随着GPT-III[22]的后续发布,NLG的模型规模呈指数级增长,这是GShard[23]发布之前最大的模型。由于NLU和NLG的超大型模型需要加载几个gpu,这在大多数实际情况下变得昂贵和资源限制。此外,当在GPU集群上训练几天或几周时,这些巨大的模型需要耗费大量的能量。为了减少计算成本[24],我们引入了基于知识蒸馏(KD)[25]的模型,如蒸馏BERT[26]、TinyBERT[27]、MobileBERT[28],并降低了推理成本和规模。这些较小的学生模型(student model)利用较大的教师模型(teacher model,如:BERT)的归纳偏见来实现更快的培训时间。类似地,剪枝和量化[29]技术在建立经济规模模型方面得到了广泛的应用。剪枝可以分为3类:权重剪枝、层剪枝和头部剪枝,即将其中某些最小贡献的权重、层和注意头从模型中删除。像剪枝一样,训练感知的量化被执行以实现不到32位的精度格式,从而减少模型的大小。为了获得更高的性能,需要更多的学习,这将导致更大的数据存储和模型大小。由于模型的庞大和隐性知识存储,其学习能力在有效获取信息方面存在缺陷。当前的知识检索模型,如ORQA[30]、REALM[31]、RAG[32]、DPR[33],通过提供对可解释模块知识的外部访问,试图减轻语言模型的隐式存储问题。这是通过用“知识检索器”来补充语言模型的预训练来实现的,它有助于模型从像维基百科这样的大型语料库中有效地检索和参与明确的目标文档。此外,Transformer模型无法处理超出固定标记范围的输入序列,这限制了它们从整体上理解大型文本主体。当相关单词的间隔大于输入长度时,这一点尤其明显。因此,为了增强对语境的理解,我们引入了Transformer-XL[34]、Longformer[35]、ETC[36]、Big Bird[37]等架构,并修改了注意机制,以处理更长的序列。此外,由于对NLP模型的需求激增,以实现经济上的可行性和随时可用的边缘设备,创新的压缩模型推出了基于通用技术。这些是前面描述的蒸馏、修剪和量化技术之外的技术。这些模型部署了广泛的计算优化程序,从散列[38]、稀疏注意[39]、因式嵌入参数化[40]、替换标记检测[41]、层间参数共享[42],或上述的组合。II. 相关综述/分类我们提出了一种新的基于NLP的分类法,从六个不同的角度对当前的NLP模型进行了独特的分类:(一)NLU模型:NLU善于分类,结构化预测或查询生成任务。这是通过由下游任务驱动的预培训和微调来完成的。(二)NLG模型:与NLU模型不同,NLG模型在顺序生成任务中表现突出。他们通过少量的、一次性的学习,从相应的错误话语中生成干净的文本。(三)减少模型尺寸:采用KD、剪枝、量化等基于压缩的技术,使大型模型更经济实用。它对于在边缘设备上操作的大型语言模型的实时部署很有用。(四)信息检索(Information Retrieval, IR):上下文开放域问答(Contextual open domain question answer, QA)依赖于有效、高效的文档检索。因此,IR系统通过优越的词汇和语义提取物理来自大型文本语料库的文档在QA领域中创建SOTA,其性能优于当代语言模型。(五)长序列模型:基于注意力的Transformers模型的计算复杂度与输入长度成二次关系,因此通常固定为512个tokens。这对于受益于较小输入长度[43]的共引用解析任务来说是可以接受的,但是对于需要跨多个冗长文档(例如HotpotQA数据集[44])进行推理的问答(QA)任务来说是不够的。(六)有效率的计算架构:为了减少大型语言模型的高训练时间,我们构建了精度与大型语言模型相当的内存效率架构。
上述分类是一种广义分类,而不是硬分类,一些模型可以互换使用,可能有双重目的,但有明确的划分,尽管不具有普遍性。图1描述了这种分类法,给出了属于不同类别的重要模型及其发布年份的可视化分类。III.现代NLP体系结构的雏形传统的RNN编码器-解码器模型[45]由两个递归神经网络(RNN)组成,其中一个生成输入序列的编码版本,另一个生成其解码版本到一个不同的序列。为了使输入序列的目标条件概率最大化,该模型与以下语言建模联合训练:
通过在机器翻译、序列到序列映射或文本摘要任务中实现相位对的条件概率,这种系统得到了优于普通rnn、lstm[46]或gru[47]的结果。
在上述架构(图2)中,编码器的最后一层 +1从其最终隐藏的 +1层向解码器传输信息,该层包含了通过概率分布对之前所有单词的整个上下文理解。所有单词的组合抽象表示被输入到解码器,以计算所需的基于语言的任务。就像它的前一层一样,最后一层是相应的可学习参数为 +1和 +1在输入和输出分别在编码器和 ' +1, ' +1在解码器。结合隐含状态和偏差的权重矩阵,可以用数学表示为:
此后,在2014-15年注意力[48],[49]的导入克服了RNN编码器-解码器的限制,即先前的输入依赖,使其难以推断更长的序列,并遭受消失和爆炸梯度[50]。注意机制通过最后一个Encoder节点禁用整个输入上下文来消除RNN依赖关系。它单独权衡提供给解码器的所有输入,以创建目标序列。这导致了更大的上下文理解,也导致更好的预测目标序列的生成。首先,对齐决定了 th输入和 th输出之间的匹配程度,可以将其确定为
更准确地说,对齐得分以所有编码器输出状态和之前解码的隐藏状态为输入,表示为:
解码器的隐藏状态和编码器输出通过它们各自的线性层及其可训练权值传递。每个编码的隐藏表示h 的权重 计算为
这一注意机制中产生的上下文向量由以下因素决定:
注意机制本质上是根据不同位置的对齐分数计算出上下文向量的生成,如图3所示。Luong的注意机制在对齐得分计算方面与上述的Bahdanau不同。它同时使用全局和局部注意,其中全局注意使用所有编码器输出状态,而局部注意关注单词的一个小子集。这有助于实现较长的序列的高级翻译。这些注意力设计导致了现代Transformer架构的开发,该架构使用了一种增强的注意力机制,如下一节所述。
IV.NLU架构NLU的神经语言表征传输方法表明,与从头学习[51],[52]相比,预训练的嵌入可以改善下游任务的结果。随后的研究工作加强了学习,以捕获上下文化的单词表示,并将它们转移到神经模型[53],[54]。最近的努力不仅限于[55]、[56]和[57],通过为下游任务添加端到端语言模型微调,以及提取上下文单词表示,进一步构建了这些思想。这种工程进展,加上大量计算的可用性,使得NLU的最先进的方法从转移词嵌入到转移整个数十亿参数语言模型,在NLP任务中取得了前所未有的成果。现代NLU模型利用Transformer进行建模任务,并根据需求专门使用基于编码器或解码器的方法。这样的模型将在下一节中进行生动的解释。IV-A TRANSFORMERSIV-A.1. The Architecture最初的Transformer是一个6层的编码器-解码器模型,它通过编码器从源序列中通过解码器生成目标序列。编码器和解码器在较高的层次上由自注意层和前馈层组成。在Decoder中,中间的额外关注层使其能够将相关标记映射到Encoder,以实现转换目的。“自我注意”可以在不同的位置查找剩余的输入单词,以确定当前处理的单词的相关性。这是为所有输入的单词执行的,这有助于实现一个高级编码和上下文理解所有单词。在RNN和LSTM的顺序数据中,输入标记被即时输入,并通过编码器同时生成相应的嵌入,构建了Transformer架构来引入并行性。这种嵌入将一个单词(标记)映射到一个可以实时预训练的向量,或者为了节省时间,实现了一个类似GloVe的预训练嵌入空间。但是,不同序列中的类似标记可能有不同的解释,这些解释通过一个位置编码器来解决,该编码器生成关于其位置的基于上下文的单词信息。然后,将增强的上下文表示反馈给注意层,注意层通过生成注意向量来进一步语境化,注意向量决定了 h单词在一个与其他单词相关的序列中的相关性。然后这些注意向量被输入前馈神经网络,在那里它们被转换成更容易理解的形式,用于下一个“编码器”或解码器的“编码器-解码器注意”块。后者与编码器输出和解码器输入嵌入,执行注意两者之间。当解码器在源和目标映射之间建立实际的向量表示时,这将确定Transformer的输入标记与其目标标记的相关性。解码器通过softmax预测下一个单词,softmax在多个时间步长内执行,直到生成句子标记的末尾。在每个Transformer层,有剩余连接,然后进行层归一化[58]步,以加快反向传播过程中的训练。图4展示了所有Transformer体系结构的细节。
IV-A.2. Queries, Keys, and ValuesTransformer的注意机制的输入是目标tokens查询向量 ,其对应的源tokens密钥向量 和值 ,它们都是嵌入矩阵。在机器翻译中,源标记和目标标记的映射可以通过内点积来量化每个标记在序列中的相似程度。因此,要实现准确的翻译,关键字应与其对应的查询,通过两者之间的高点积值。假设 ⋵{ , }和 ⋵{ , },其中 , 表示目标长度和源长度, 表示单词嵌入维度。Softmax的实现是为了实现一个概率分布,其中所有查询,密钥相似点加起来为一个,并使注意力更集中于最佳匹配的密钥。
查询为键分配匹配的概率,值通常与键相似,因此
IV-A.3. Multi-Headed Attention (MHA) and MaskingMHA通过多次并行实现注意力,增强了模型强调序列不同标记位置的能力。由此产生的个人注意输出或头部通过一个线性层连接和转换到预期的维度。每个头部都可以从不同的角度参与序列部分,为每个标记提供类似的表示形式。这是执行,因为每个标记的自我注意向量可能权衡它所代表的词比其他由于高的结果点积。这是没有效率的,因为目标是实现与所有tokens进行类似的评估交互。因此,计算8次不同的自我注意,得到8次单独的注意用于计算最终结果的每个标记的向量注意向量通过所有8个向量的加权和tokens。由此产生的多重注意力载体是并行计算,馈给前馈层。每个后续目标tokens 都使用 +1生成编码器中的许多源标记( 0,..., + )。然而,在自回归解码器中,只有前一个时间步进考虑目标tokens( 0,. ., t),为未来目标0 预测的目的被称为因果掩蔽。提供此功能是为了最大限度地学习随后转换的目标标记。因此,在通过矩阵运算进行并行化的过程中,保证了后续的目标词被屏蔽为零,从而使注意网络无法预见未来。上面描述的Transformer导致了NLP领域的显著改进。这导致了我们将在后续部分中描述的大量高性能体系结构。IV-B EMBEDDINGS FROM LANGUAGE MODELS: ELMoELMo[59]的目标是生成一个深度上下文的单词表示,可以建模(i)单词复杂的句法和语义特征(ii)一词多义或词汇歧义,发音相似的单词在不同的上下文或位置可能有不同的含义。这些增强带来了上下文丰富的单词嵌入,这在以前的SOTA模型(如GloVe)中是不可用的。与使用预先确定的嵌入的模型不同,ELMo考虑所有 个tokens的出现( 1, 2,. . )为每个token 在创建嵌入之前的整个序列。作者假设该模型可以通过任务特定的双向LSTM提取其体系结构顶层的抽象语言属性。这可以通过组合正向和反向语言模型实现。在时间步 −1时,前向语言模型根据(13)所示的输入序列的前一个观察到的标记,预测下一个标记 _ 。同样,在(14)中,倒序后向语言模型在给定未来标记的情况下预测之前的标记。
这是通过最终LSTM层之上的softmax进一步实现的,如图5所示。
ELMo对每个令符表示 _ 在LSTM模型的每一层 上计算其中间双向向量表示h_ , 为:
数学上h^{ }_{k,o}= _k将是最低级别的标记表示,可以概括为:
ELMo通过softmax ^{ }_{j}学习关于L层的归一化权重层表示。这就产生了一个特定于任务的超参数 ^ ,它支持任务的可伸缩性优化。因此,对于一个特定的任务,不同层中的单词表示差异表示为:
IV-B GENERATIVE PRE-TRAINING MODEL: GPT-I在第一阶段,通过无监督学习,基于解码器的GPT-I在一个大数据集上进行预训练。这促进了原始数据计算,消除了监督学习的数据标注瓶颈。第二阶段在具有边际输入变化的相当小的监督数据集上执行任务特定的微调。结果表明,与ELMo、ULMFiT[60]等SOTA模型相比,该模型在更复杂的任务(如常识推理、语义相似性和阅读理解)中表现出更强的性能。GPT-I的预训练可以被建模为一个无监督标记的最大化函数{ ,…, }。
其中 为上下文窗口大小,条件概率通过 参数化。利用多头注意和前馈层,通过softmax生成了基于目标标记的概率分布。
这里( = − ,. ., −1)为上下文标记向量集, 为层数, 和 分别为标记和位置嵌入矩阵。训练后,对监督结束任务进行参数调整。这里输入序列( ^1,. ., ^ ),将标记数据集 输入到先前的预训练模型,以获得Transformer块最终激活h^{ }_{l},输入到参数化( _y)线性输出层进行预测 。另外,目标 2( )是最大化如下
在微调过程中结合二级语言建模目标,通过更好地泛化监督模型来增强学习,并加速收敛:
GPT执行分类、蕴涵、相似度指数、选择题(MCQ)等任务,如图6所示。提取阶段从文本主体中提取特征,然后在文本预处理过程中通过' Delimiter '标记将文本分离。分类任务不需要这个tokens,因为它不需要测量多个序列之间的关系。此外,问答或文本蕴涵任务涉及定义输入,如文档中的有序句子对或三联体。对于MCQ任务,需要在输入时更改上下文以获得正确的结果。这是通过基于Transformer的Decoder训练目标来实现的,其中输入转换针对各自的答案进行了微调。IV-C BIDIRECTIONAL ENCODER REPRESENTATIONS FROM TRANSFORMER: BERTBERT是一组预训练的Transformer编码器克服了先前模型的限制性表达,如:GPT缺乏双向语境和ELMo的浅薄双重上下文的连接。BERT的更深层次的模型提供具有多个上下文的tokens层和双向模型提供了更丰富的学习环境。然而,双向性引起了人们的关注,认为tokens可以隐式地预见未来的tokens在训练期间,从而导致最少的学习和导致琐碎预测。为了有效地训练这样一个模型,BERT实现掩码语言建模(MLM)每个输入序列中随机输入标记的15%。这种掩码词的预测是新要求不一样的在单向LM中重建整个输出序列。BERT在训练前的掩码,因此[MASK]标记在微调期间不显示,从而产生不匹配的“masked”tokens不会被替换。为了克服这个差异,精细的建模修改被执行在训练前阶段。如果一个token _i 被选择为掩码,那么80%的情况下它会被[MASK]替换token,10%的情况下选择一个随机token,剩下的10%没有改变。此后 _i的交叉熵损失会预测原始的tokens,使用不变的token步长来保持对正确预测的偏差。这种方法为Transformer编码器创造了一种随机和不断学习的状态,它必须维护每个token的分布式上下文表示。此外,由于随机替换仅占所有tokens的1.5%(15%中的10%),这似乎不会损害语言模型的理解能力。语言建模不能明确地理解多个序列之间的关联;因此,它被认为是推理和问答任务的次优选择。为了克服这一问题,我们使用单语语料库对BERT进行了预训练,以完成二值化的下一句预测(NSP)任务。如图7所示,句子 (He came [MASK] from home)和 (Earth [MASK] around Sun)没有形成任何连续性或关系。由于 不是 后面实际的下一个句子,输出分类标签[NotNext]将被激活,而[IsNext]将在序列一致时被激活。
IV-D GENERALIZED AUTOREGRESSIVE PRETRAINING FOR LANGUAGE UNDERSTANDING: XLNeTXLNet在这两个方面都取得了最好的效果,它保留了自回归(AR)建模和双向上下文捕获的优点。为了更好地理解XLNet为什么优于BERT,请考虑5-tokens的序列(San, Francisco, is, a, city)。这两个标记选择预测(圣弗朗西斯科),因此BERT和XLNet最大化 ( | )如下:
对于目标( )和非目标标记集( ),以上可进一步一般化,BERT和XLNet将最大化日志 ( | ),并具有以下不同的可解释性:
XLNet考虑用于预测的目标标记和其余标记,而BERT只考虑非目标标记。因此,XLNet捕获对间依赖[San, Francisco],这与BERT不同,在BERT中[San]或[Francisco]都会导致正确的预测。此外,通过AR XLNet对所有可能的tokens排列执行因式排序( !)= 5)的序列长度 设置即{(1、2、3、4、5),(1、2、5、4、3 ],. . ., [ 5、4、3、2、1]}≅[,城市,圣弗朗西斯科)等。
其中set _ 包含所有长度的置换序列 [1,2,. ., ], _ 是引用标记。因此,目标学习从无数的组合获得更丰富更符合实际的学习。此外,对于所有可置换的因子分解顺序,模型参数被共享,以从所有因子中构建知识和双向上下文,如公式27所示。IV-D.1. Masking由于不考虑决定自回归的标记( _ ),因此很难确定序列中的词序。这个词序部分是通过位置编码实现的,但是为了上下文理解XLNet使用了屏蔽。考虑一个在3-token序列中生成的排列[2,1,3],其中第一个token(即,2)没有上下文,因此所有屏蔽结果都在3×3屏蔽矩阵的第二行[0,0,0]中。类似地,第2和第3个掩码将导致查询流(QS)掩码矩阵的第1行和第3行中[0,1,0]和[1,1,0],tokens不能看到自己。带有一个对角包含的QS矩阵构成了内容流(CS)屏蔽矩阵,每个标记都可以看到自己。这个3-token序列屏蔽如下面的图8所示。
第一个引用' 2 '没有上下文,它是从对应的'mem块'中收集的,这是一个基于transformer-xl的扩展缓存内存访问。此后,它从tokens' 3 '和' 1 ',' 3 '接收上下文,用于后续排序。IV-D.2. Model Architecture图9展示了模型的双流注意框架,它由内容和查询流注意过程组成,通过上下文实现更好的理解。这个过程是通过目标感知的表示开始的,其中目标位置被烘烤到输入中,用于后续的tokens生成目的。
(i)目标感知表示:一种普通的实现基于参数化的Transformer是不够的复杂的基于排列的语言建模。这是因为下一个记号分布 ( ∣ )是 < 独立于目标位置,即 。随后,产生冗余分布,无法发现有效表示,因此,我们提出了下一个tokens分布的目标位置感知重参数化方法:
其中 (x < , )是一个修改过的表示,它另外将目标位置 视为输入。(ii)two stream自我注意:尽管有上述解决方案,但 的表述仍然是一个挑战,因为目标是依靠目标位置 通过注意来收集语境信息 < ,因此:预测其他token _ ,其中 > , 应该编码上下文 _ 提供完整的语境理解。为了进一步解决上述冲突,作者提出了以下两组隐含表示:1)该隐藏内容表示h ( < )≅h that对上下文和内容进行编码2)查询表示 ( < , )≅ 哪个单独访问上下文信息 < 和位置 ,没有内容以上两个注意课程对每个自我注意层进行参数化共享和更新 为:
这种双重关注如图9所示。为简单起见,考虑不允许从上一层访问其对应嵌入的tokens 的预测。然而,为了预测 +1,tokens 需要访问其嵌入,并且这两个操作必须在一次传递中发生。因此,实现了两个隐藏表示,其中h_ ( )通过令币嵌入初始化, _ ( )通过加权转换初始化。由上式h( )可以访问包括当前位置在内的历史,而gzt(m)只能访问以前的hzt(m)位置。tokens预测通过 ( )发生在最后一层。为了进行更大的序列长度处理,内存块来自Transformer-xl,它可以处理比标准Transformer输入序列长度更长的数据。上面提到的隐藏表示也存储在内存块中。IV-E A Robustly Optimized BERT Pretraining Approach: RoBERTa这篇论文声称,BERT是相当缺乏训练,因此,RoBERTa入了一个更大的训练密集制度。这是为基于bert的模型,可以匹配或超过以前的方法。他们的改进包括:(i)更长的训练时间和更大的数据和批量(ii)消除BERT的NSP目标(iii)更长的序列训练(iv)动态修改的训练数据掩蔽模式。作者声称,对于更多样化和更大量的CC-News数据集,下游任务的性能优于BERT。此外,BERT实现了一个低效的静态屏蔽实现,以避免冗余屏蔽。例如,在40个训练时期,一个序列以10种不同的方式被掩蔽,训练数据重复10次,每个训练序列用相同的掩蔽被看到4次。RoBERTa通过合并动态掩蔽提供了略微增强的结果,在预训练更大的数据集时,每次给模型输入一个序列时都会生成一个掩蔽模式。最近的研究质疑BERT的NSP[61]角色,该角色被推测在语言推理和问答任务中发挥关键作用。RoBERTa合并了这两种假设,并提供了许多类似BERT的补充训练格式,并且在不考虑NSP损失的完整句子训练中表现优于BERT。在GLUE基准测试以及RACE和SQUAD数据集上,RoBERTa提供的结果与BERT类似,但稍好于BERT,而无需对多个任务进行微调。IV-E MEGATRON LANGUAGE MODEL (LM)Megatron在发布时是最大的模型,尺寸为24 × BERT和5.6 × GPT-2,不适合单独的GPU。因此,关键的工程实现是归纳其8和64路模型,以及参数在(~512)gpu上拆分的数据并行版本。它保持了高性能(15.1千万亿次)和可伸缩效率(76%),而BERT则导致性能随尺寸增长而下降。这一壮举主要归功于层的规范化和Transformer层内剩余连接的重新排序。这导致在增加模型规模的下游任务上单调地优越性能。Megatron通过将模型拆分到几个加速器上,克服了先前模型的内存限制。这不仅解决了内存使用问题,而且增强了模型的并行性,与批处理大小无关。它将分布式张量计算集成到涌流模型的大小或加速度中,并将注意头计算并行化。这不需要新的编译器或重写代码,并且可以通过一些参数实现。首先,多层感知器(Multi-Layer Perceptron, MLP)块在两列中并行划分GEMM,使GeLU非线性独立应用于每个划分的GEMM。这个GeLU输出被直接发送到行并行化的GEMM, GEMM的输出在传递到dropout层之前通过一个前进和后退的all-reduce算子(g和f)来减少。自我关注块中的并行性是通过按列为每个键、查询和值集划分GEMMs来实现的。因此,由于每个注意力头在单个GPU上执行矩阵乘法,工作负载被分散到所有GPU上。生成的GEMM输出,像MLP一样,经过了全reduce操作,并跨行并行化,如图10所示。这种技术消除了MLP和注意块gem之间的同步需求。
V. NLG ARCHITECTURES在NLU模型中,学习大量经过训练的“微调”任务所需要的大量数据计算在参数上是低效的,因为每个任务都需要一个全新的模型。这些模型可以作为狭隘的专家而不是精通的多面手的例证。因此,NLG模型提供了一个向构建通用系统的过渡,它可以完成几个任务,而不必为每个任务手动创建和标记一个训练数据集。此外,NLU模型中的传销不能捕获多个序列之间的丰富关系。此外,最有效的NLU模型从传销模型变体中派生出其方法,传销模型变体是经过文本重构训练的去噪自动编码器,其中单词的随机子集被屏蔽掉。因此,在过去的几年中,NLG模型在文本翻译和摘要、问答、NLI、会话参与、图片描述等方面取得了巨大的进展,其准确性达到了前所未有的水平。V-A LANGUAGE MODELS ARE UNSUPERVISED MULTI- TASK LEARNERS: GPT-IIGPT-II[62]可能是随着NLG模型的兴起而出现的第一个模型。它在无监督的情况下接受训练,能够学习包括机器翻译、阅读理解和摘要在内的复杂任务,而无需进行明确的微调。其数据集对应的任务特异性训练是当前模型泛化不足的核心原因。因此,健壮的模型可能需要各种任务领域的培训和绩效衡量标准。GPT-II集成了一个通用的概率模型,在该模型中可以执行与 ( | , )相同的输入的多个任务。随着模型规模的扩大,训练和测试集的性能得到了提高,结果,它在巨大的WebText数据集上得到了匹配。在前面提到的零射击环境下的任务中,具有15亿个参数的GPT-2在大多数数据集上都优于它的前辈。它是GPT-I解码器体系结构的扩展,训练了更大的数据。V-B BIDIRECTIONAL AND AUTOREGRESSIVE TRANSFORMERS: BART去噪自动编码器BART是一个序列到序列[63]模型,它包含两个阶段的预处理训练:(1)通过随机噪声函数破坏原始文本,(2)通过训练模型重建文本。噪声的灵活性是该模型的主要好处,其中不限于对原始文本的长度更改的随机转换应用。两个这样的噪声变化是原始句子的随机顺序重组和填充方案,其中任何长度的文本被随机替换为一个mask标记。BART部署了所有可能的文档损坏方案,如图11所示,其中最严重的情况是所有源信息丢失,BART的行为就像一个语言模型。
这迫使模型在整个序列长度上开发更大的推理,从而实现更大的输入转换,从而得到比BERT更好的泛化。BART是通过优化被破坏的输入文档上的重构损失来进行预训练的,即解码器的输出和原始文档之间的交叉熵。对于机器翻译任务,BART的编码器嵌入层被替换为一个任意初始化的编码器,该编码器使用预先训练的模型进行端到端训练,如图12所示。这个编码器将它的外语词汇映射到BART的输入,然后去噪到它的目标语言英语。源编码器的训练分为两个阶段,这两个阶段共享BART输出的交叉熵损失的反向传播。首先,对大部分BART参数进行冻结,仅对任意初始化的编码器、BART的位置嵌入以及编码器的自注意输入投影矩阵进行更新;其次,对所有模型参数进行联合训练,迭代次数较少;BART在几个文本生成任务上取得了最先进的性能,为NLG模型的进一步探索提供了动力。与RoBERTa相比,它在区分性任务上取得了比较结果。
V-C MULTILINGUAL DENOISING PRE-TRAINING FOR NEURAL MACHINE TRANSLATION: mBARTV-C.1. Supervised Machine TranslationmBART表明,通过自回归预处理训练BART,通过从公共爬行(CC-25)语料库中对25种语言的去噪目标进行序列重构,与之前的技术相比,取得了相当大的性能增益[64]。mBART的参数微调可以是有监督的,也可以是无监督的,适用于任何没有特定任务修改的语言对。例如,对语言对进行微调,即(德语-英语),使模型能够从单语训练前集中的任何语言,即(法语-英语)进行翻译,而无需进一步训练。由于每种语言都包含具有显著数字变化的标记,语料库通过对每种语言 进行文本上/下采样,其比例为 来进行平衡
其中 是数据集中每一种语言的百分比平滑参数 = 0.7。培训数据包含 语言: ={ 1,−, },其中每个 是 h语言的单语文档集合。考虑一个文本破坏噪声函数 ( ),其中训练模型预测原始文本 ,因此损失L 最大为:
其中语言 有一个实例 和以上的分布 是通过序列到序列模型定义的。V-C.2. Unsupervised Machine TranslationmBART是在目标双文本或文本对在这三种不同格式中不可用的任务上进行评估的。1)没有任何形式的双文本是可用的,这里后面-翻译(BT)[67],[68]是一个熟悉的解决方案。mBART提供了一个干净而有效的初始化方案这样的技术。2)目标对的双文本是不可用的,然而,在目标语言的bi-text中可以找到这一对其他语言对的文本语料库。3)bi-text文本对目标pair是不可用的可从不同语言翻译到目标语言。这一新的评价方案显示了mBART在缺乏源语言双文本的情况下的迁移学习能力mBART是针对所有25种语言进行的预培训,并针对目标语言进行了微调,如图13所示。V-D EXPLORING THE LIMITS OF TRANSFER LEARNING WITH A TEXT-TO-TEXT TRANSFORMER: T5该模型是通过对最有效的迁移学习实践的调查和应用建立的。在这里,所有的NLP任务都安排在同一个模型中,超参数被重新定义为一个统一的文本到文本设置,其中文本字符串是输入和输出。需要一个高质量的、多样化的、庞大的数据集来测量在110亿个参数T5中训练前的放大效果。因此,开发了巨型清洁爬行语料库(C4),是维基百科的两倍大。作者的结论是,因果掩蔽限制了模型的能力,只在 _ h输入一个序列,这是有害的。因此,T5在序列的前缀部分(前缀LM)包含完全可见掩蔽,而因果掩蔽则用于训练目标的预测。通过对迁移学习现状的调查,我们得出以下结论。1)模型配置:通常带有编码器-解码器架构的模型优于基于解码器的语言模型。2)预训练目标:去噪对于填空的角色是最有效的,在这个角色中,模型被预先训练以一个可接受的计算成本来检索输入的遗漏词域内数据集:域内数据训练是有效的,但是预处理小数据集通常会导致过拟合。3)训练方法:一个训练前的、微调的多任务学习方法可能是有效的,但是,每个任务的训练频率需要被监控。4)经济缩放:为了有效地访问有限的计算资源,对模型尺寸缩放、训练时间和集成模型数量进行了评估。
V-E TURING NATURAL LANGUAGE GENERATION: T- NLGT-NLG是一个基于78层变形器的生成语言模型,拥有170亿个可训练参数,比T5更大。它拥有比英伟达的威震天(Megatron)更快的速度,威震天是基于通过低延迟总线互连多台机器。T-NLG是一个逐渐变大的模型,它预先训练了更多种类和数量的数据。它通过较少的微调示例在通用下游任务中提供优越的结果。因此,它的作者概念化训练一个巨大的集中多任务模型,它的资源在不同的任务之间共享,而不是为一个任务分配每个模型。因此,该模型可以在没有背景的情况下有效地进行问答,从而增强了零射击学习。零冗余优化器(Zero)同时实现了模型和数据并行,这可能是训练T-NLG高吞吐量的主要原因。V-F LANGUAGE MODELS ARE FEW-SHOT LEARNERS: GPT-IIIGPT族(I、II和III)是基于Transformer解码器块的自回归语言模型,不像基于去噪自编码器的BERT。GPT-3从用于生成模型训练示例的3000亿个文本标记的数据集中训练1750亿个参数。由于GPT-3的大小是以前任何语言模型的10倍,并且对于所有任务和目的,它采用了通过文本界面的少量学习,没有梯度更新或微调,它实现了任务竞争。它采用无监督的预训练,语言模型获得广泛的技能和模式识别能力。这些都是在运行中实现的,以快速适应或识别所需的任务。GPT-3在几个NLP任务中实现了SOTA,尽管它的几次学习在其他任务中无法复制类似的结果。V-G SCALING GIANT MODELS WITH CONDITIONAL COMPUTATION AND AUTOMATIC SHARDING: GShardGShard允许扩展超过6000亿个参数通过稀疏门控混合的多语言机器翻译在低计算的情况下,采用自动分片的方法对专家(MoE)进行分类成本和编译时间。变形金刚的规模很小引入一个由 前馈网络 ,。, E组成的位置混合专家层,通过其Transformer得到
其中 和 是MoE层的标记化输入和平均加权输出, 和 是专家(前馈层)的输入和输出投影矩阵。门控网络通过矢量 , 表示专家对最终输出的贡献。这将获取tokens的非零值,这些tokens被分派给最多两个专家,这些专家在稀疏矩阵中为非零值做出贡献。为了实现跨TPU集群的高效并行化:(i)并行化的关注层沿着批处理维度被分割,权重被复制到所有设备上。(ii)由于大小的限制,不可能在所有设备上复制MoE层专家,因此专家需要在多个设备上分片,如下图所示。
决定模型质量的两个因素是(i)具有大量训练数据的高资源语言(ii)对数据有限的低资源语言的增强。在翻译模型中,增加任务或语言对会对低资源语言产生积极的语言迁移[69]。对大量语言进行合理的培训时间和效率的三个方面的策略是:(i)通过堆叠更多层来增加网络深度(ii)通过复制专家来增加网络宽度(iii)通过学习到的路由模块将tokens稀疏地分配给专家。在一个12层的深度模型中,当每层的专家数量从128增加到512时,在100种语言的BLEU评分中发现了3.3的显著性能提升。此外,宽度从512增加四倍到2048会导致BLEU增益减少1.3。将前面提到的专家宽度的层深度进一步增加三倍,从12到36,可以显著提高低资源语言和高资源语言的性能。然而,除非模型的容量约束(MoE宽度)不放松,否则增加模型深度并没有效果。VI. MODEL SIZE REDUCTIONVI-A DISTILLATION知识蒸馏(KD)的目标是在一个更大、更准确的教师模型的监督下,通过修正的损失函数训练一个较小的学生模型,以在未标记样本中实现类似的准确性。我们提供了预测的教师模型样本,使学生能够通过较软的班级概率分布进行学习,同时通过一个单独的损失函数通过硬目标分类进行预测。这种硬标签到软标签的转换使学生学习的信息变化更大,例如,硬目标将狗分类为{ , , , ∈0,1,0,0},软目标为{10−6,0.9,0.1,10−9}。对于硬分类计算,深度神经网络的最后一个完全连接层是一个logits 向量,其中 是 h类的logit。因此,可以通过(35)中的softmax函数评估输入符合 h类的概率 ,并引入温度元件 来影响(36)中要转移到学生模型学习中的每个软目标的重要性。
对于类上较软的概率分布,需要较高的温度( = )。实验发现,除了教师的软标签外,对学生模型进行正确(硬/地面真理)标签的训练是有效的。虽然学生模型不能完全匹配软目标,但硬标签训练进一步帮助它不绊倒在不正确的预测。软目标精馏损失( = )的计算方法是将教师模型与学生模型的对数匹配为:
其中 和 分别表示教师模型和学生模型的对数。蒸馏机理如图15所示。ground truth label 和学生模型的软对数之间的交叉熵构成了学生损失:
知识蒸馏的标准模型将蒸馏物和学生损失结合起来,如下图所示,
其中 ∈student参数 。在最初的平均用于 和 ,即 =1− ,为了得到最好的结果,观察到 ≫ 。VI-A.1. DistilBERTBERT的老师版本保留了BERT 97%的语言理解能力,推理时间更轻、更快,所需的培训成本更低。通过KD,蒸馏BERT将BERT大小减少了40%,速度提高了60%,压缩后的模型足够小,可以在边缘设备上运行。与BERT相比,蒸馏BERT的层深度被削减了一半,因为两者具有相同的维度,并且通常具有相同的架构。将其归一化后进行层约简,最终层线性优化计算无效。为了最大化大型预训练模型的归纳偏差,蒸馏器引入了三重损失函数,将蒸馏(L )与监督训练(L )或掩体语言建模损失线性结合。我们观察到用嵌入余弦损失(L )来补充先前的损失是有益的,因为它可以定向对齐教师和学生的隐状态向量。VI-A.2. TinyBERT为了克服训练前-微调范式的提炼复杂性,TinyBERT引入了一个清晰的知识转移过程,通过引入3个损失函数:(i)嵌入层输出(ii)注意矩阵,(ii)Transformer的隐藏状态(iii)输出Logits这不仅使得TinyBERT在大幅缩减尺寸的情况下保留了BERT的96%以上的性能,而且在所有基于BERT的精馏模型中只部署了28%的参数和31%的推理时间。此外,它利用了BERT的已学习注意力权重中未挖掘的可提取潜力[70],对于( + 1) h层,通过最小化:
L 是Transformer或an的损耗函数嵌入层和超参数 表示 h层精馏的重要性。在TinyBERT中,BERT基于注意力的语言理解增强可以被合并为:
其中h表示正面次数, 表示注意力矩阵对应学生或老师的 h头, 表示输入文本长度和均方误差(MSE)损失函数。此外,TinyBERT提炼了知识从Transformer输出层,可以表示为:
在这里 隐藏的状态的学生和教师 ( )分别隐藏大小的教师模型和学生模型是通过标量值 '和 表示, 是一个可学习的h将学生网络的隐藏状态转化为教师网络的空间状态。同样,TinyBERT还对埋层进行蒸馏:
其中 和 分别是学生网络和教师网络的嵌入矩阵。除了模拟中间层的行为,TinyBERT通过学生和教师的对数之间的交叉熵损失实现KD来拟合教师模型的预测。
这里 和 分别是教师和学生模型预测的logit。VI-A.3. MobileBERT与之前的蒸馏模型不同,MobileBERT从BERT中实现任务不可知压缩,通过预测和蒸馏损失实现训练收敛。为了训练这样一个非常瘦的模型,设计了一个独特的倒置瓶颈教师模型,该模型结合了BERT (IB- BERT),知识转移从BERT提炼到MobileBERT。它比BERT小4.3倍,快5.5倍,在基于glue的推理任务中,其竞争分数比BERT低0.6个单位。此外,Pixel 4手机上62毫秒的低延迟可归因于用更简单的Hadamard乘积(薄膜)线性转换取代层归一化和gelu激活。
对于知识转移,均方误差之间将MobileBERT和bert的特征映射实现为迁移目标。
其中 是层索引, 是序列长度, 是特征地图的大小。为了让TinyBERT利用BERT的注意力能力,两种模型的人均分布之间的KL-divergence最小,其中 表示注意头的数量。
或者,在MobileBERT的预训练过程中,通过BERT的传销和NSP损失的线性组合,可以实现新的KD损失,其中 是(0,1)之间的超参数。
为实现上述目标,现提出3项培训战略:(i)辅助知识转移:通过所有层转移损失和蒸馏前训练损失的线性组合进行中间转移。(ii)联合知识转移:为了获得更好的结果,提出了2个单独的损失,其中MobileBERT与所有层联合转移损失并进行预先训练的蒸馏。(iii)渐进式知识转移:为了最大限度地减少自上而下的错误转移,提出将知识转移分为 分层 阶段,每一层逐步训练。VI-B PRUNING修剪[71]是一种将不再是模型反向传播的一部分的某些权重、偏差、层和激活置零的方法。这引入了这些元素的稀疏性,它们是可见的后ReLU层,将负值转换为零(( ( ): (0, ))。迭代剪枝学习关键权值,根据阈值消除最不关键的权值,并重新训练模型,使其能够通过适应剩余的权值从剪枝中恢复。像BERT、RoBERTa、XLNet这样的NLP模型被修剪了40%,并保留了98%的性能,这与蒸馏BERT相当。VI-B.1 LAYER PRUNINGVI-B.1-A STRUCTURED DROPOUT该体系结构[72]在训练和测试时随机丢弃层,使子网络能够选择任何期望的深度,因为网络已经被训练为具有修剪健壮性。这是对当前技术的升级,需要重新训练一个新模型,而不是训练一个网络,从中提取多个浅层模型。这种子网络抽样,如Dropout[73]和DropConnect[74],如果聪明地选择了同时权值组,就会构建一个高效的健壮修剪网络。形式上,正则化网络的修剪鲁棒性可以通过伯努利分布独立地降低每个权值来实现,其中参数p > 0控制着跌落率。这相当于权矩阵 与任意采样的{0,1)掩码矩阵 , = ⨀ 的点积。最有效的降层策略是每隔一层降一层,其中修剪率为 ,降层深度为 ,使 ≡0( ⌊1/ ⌋)。对于具有固定跌落比率 的 组,网络训练期间所利用的平均组数为 (1− ),因此对于 组的修剪大小,理想跌落率将为 ∗= 1− / 。这种方法在许多NLP任务中都非常有效,并且已经产生了与BERT精馏版本相当的模型,并且表现出更好的性能。VI-B.1-B POOR MAN’S BERT由于深度神经网络的过度参数化,在推理时不需要所有参数的可用性,因此策略性地减少了几个层,导致下游任务的竞争结果[75]。在所有任务中,奇数替代删除策略的结果优于顶部,甚至在间隔为 = 2的情况下进行替换。例如,在一个12层网络中,删除:top - {11,12};偶数交替- {10,12};奇交替-{9,11},得出的结论是(i)连续丢弃最后两层比消除交替层更有害(ii)保留最后一层比保留顶层其他层更重要。
在 的较高值处,交替删除方法表示性能下降很大,假设这是由于消除了较低的层造成的。对称的方法强调顶层和底层的守恒,而中间层被去掉。这对BERT的影响很小,但却大大降低了XLNet的性能,从而导致BERT的次优策略即使去掉4层后也能给出健壮的结果。通过观察,XLNet显示出比BERT更大的修剪鲁棒性,因为它的学习在接近其第7层时变得成熟,而BERT则一直学习到第11层。因此(i)与BERT相比,XLNet在较低的层收集面向任务的知识,(ii) XLNet的最终层可能会变得相当冗余,容易在性能没有显著下降的情况下被删除。作者进一步对蒸馏器进行了下降实验,在这里下降30%的层导致了最小的性能下降。像以前的模型一样,顶层下降被证明是最可靠的,因为RoBERTa被证明比BERT更健壮,因为6层的RoBERTa表现出了与蒸馏RoBERTa相似的性能。所有的弃层策略都可以从上面的图16中可视化。VI-B.2 WEIGHT PRUNING先前的工作主要集中在非结构化的个体权剪枝[76],[77],尽管其产生的有效的非结构化稀疏矩阵在传统硬件上处理具有挑战性。这使得尽管模型减小了,但仍难以保证推理加速。相反,结构化剪枝强制高度结构化的权矩阵,当通过密集线性代数实现优化时,会导致显著的加速,但由于更大的约束,性能低于非结构化剪枝。VI-B.2-A STRUCTURED PRUNING为了克服上述缺点,本文采用了新颖的结构引入了低秩剪枝范式[78]因式分解保留了稠密矩阵的结构和 0规范,放松了通过结构化强制执行的约束修剪。权重矩阵被分解成乘积两个小矩阵的对角掩模修剪而训练通过 0正则化控制模型的末端稀疏性。这个泛型方法FLOP(Factorized 0 Pruning)可用于任何矩阵乘法。对于神经网络 (; )参数化 ={ } ,其中每个 表示单个重量 =1 或者一个权重块(例如,列矩阵), 表示块的数量。考虑一个精简二值化变量 = ̃̃{ }其中 ∈{0,1}, ={ }表示模型 =1 参数集,通过 0规范化后修剪。
考虑一个矩阵 被分解成两个的乘积较小的矩阵 和 ,其中 = 。和 表示 列数或 行数。每个组件的结构化剪枝是通过剪枝变量 实现的
VI-B.3 HEAD PRUNING虽然某些模型在多头注意力环境中对多头注意力有更大的依赖性,但最近的研究表明,可以删除相当一部分注意力头,从而形成一个具有更高记忆效率、速度和准确性的精简模型。在之前的研究中[79],[80]通过对特定位置所有头部的注意力权重进行平均,或者根据最大注意力权重值来判断头部的重要性。然而,这两种方法都没有明确考虑不同头部的波动意义。VI-B.3-A Analyzing Multi-Head Self-Attention: Specialized Heads Do the Heavy Lifting, Rest Can Be Pruned这个模型[81]发现了三个不同层次的头部角色:(i)位置头:用于处理相邻标记(ii)句法头:注意那些有句法的人(iii)稀有词头:最少指示序列中频繁的标记。基于上述角色[81]这些总结为:(a)头的一小部分是翻译的关键(b)关键头拥有一个单一,通常更专门化和可解释的模型功能(c)头部角色对应于相邻标志的注意在显式语法依赖关系中。高水头基于层次关联传播(LRP)的可信度[82]与标记的注意力定义的比例有关作为其最大关注权值的中值计算总的来说,这对于任务来说是至关重要的。通过每个产品修改的Transformer架构磁头的计算表示h 和标量门 , ( , )= ( .h ) ,这里 是输入独立头部特定参数, 0正则化适用于 ,用于较不重要的头需要被禁用,h∈( h )。
然而, 0 norm是不可微的;因此,它不能作为目标函数中的正则项归纳。因此,应用随机松弛,每个门 从头分布中随机选取,头分布是通过拉伸(0,1)到(−∈,1+∈),并将概率分布(−∈,1)坍塌到[1,1 +∈)到奇异点0和1得到的。这种修正的拉伸结果在[0,1]上的分布是离散-连续混合的。头像非零的概率和可以实现为一个宽松的L0范数。
修改后的训练方案可以表示为L( ,∅)= L ( ,∅)+ L (∅),其中 为原Transformer参数,L ( ,∅)为平移模型的交叉熵损失,L (∅)为正则器。VI-B.3-B ARE 16 HEADS REALLY BETTER THAN ONE?在多头注意力(MHA)中,考虑 的序列 -dimensional vectors = 1,. ., ∈R ,查询向量 ∈R 。MHA层参数 h, h h h∈R h× 和 h∈R × h,当 = 。h为了掩蔽注意头,原Transformer方程修改为:
其中 h用值介于{0,1}之间的变量屏蔽, h( )是输入 的头h的输出。以下实验在测试时间修剪不同的头数上获得了最好的结果[83]:(i)仅修剪一个头部:如果模型在屏蔽头部h时性能显著下降,则h为关键头部,否则在给定模型的其余部分时,它是冗余的。当被从模型中移除时,仅仅8次(总共96次)正面就会引起表现的显著变化,其中一半的结果是更高的BLEU分数。(ii)除1个注意头外的所有注意头修剪:在测试时间内,大多数层只修剪一个注意头就足够了,即使对于有12或16个注意头的网络,也会导致显著的参数减少。然而,多个注意头是特定层的需求,即编码器-解码器注意的最后一层,在单个注意头上性能会降低13.5个BLEU点。模型对掩蔽的期望敏感性 被评估为头部显著性的代理评分。
其中 为数据分布,L( )为样本 上的损失。如果 h很高,那么修改 h可能会对模型产生显著影响,因此,对 h值较低的头进行迭代修剪。VI-C QUANTIZATION32位浮点数(FP32)一直是深度学习的主要数字格式,然而当前减少带宽和计算资源的浪潮推动了更低精度格式的实现。已经证明通过8位整数(INT8)的权值和激活表示不会导致明显的精度损失。例如,BERT量化为16/8位权值格式导致4×模型压缩,精度损失最小,因此,一个扩展的BERT每天服务十亿CPU请求。VI-C.1 LQ-NETS该模型[84]通过深度神经网络的联合训练引入了简单的网络权值和激活机制。它具有可变比特精度的量化能力,这与固定或手动方案不同[85],[86]。一般来说,一个量化函数可以用几个比特来表示浮点权重 ,激活 :
这里 和( , )是量化级别和区间, +1分别。为了保持快速的推理时间,量化函数需要与位操作兼容,这是通过均匀分布来实现的用规范化因子将浮点数映射到它们最近的定点整数。LQ可学习量化函数可以表示为:
其中 ∈R 为可学浮点基, ∈{−1,1} for =(1,. .)。, )枚举 -bit二进制编码从[−1,..−1],[1 . . 1]。量化权值和激活值的内积计算由以下权值位宽为 的按位操作来计算。
, ∈R 由向量编码 , ∈{−1,1} , = 1,……, and = 1,…, 和 ∈R , ∈R ,⨀表示位内积 操作。VI-C.2 QBERTQBERT[87]通过基于交叉熵的损失函数部署了输入 ∈ 的双向BERT量化,其对应的标号y∈
在这里 是嵌入表,编码器层 , … 和分类器 。分配相同的位大小12 对不同结构[5]不同编码层不同灵敏度的表示是次优的,对于要求超低精度的小目标尺寸(2/4位),它变得复杂。因此,通过Hessian Aware quantification (HAWQ),更多的比特被分配到更大的敏感层,以保持性能。Hessian矩阵是通过计算经济的无矩阵迭代技术计算的,其中第一层编码器梯度 1为任意向量 :
其中 1为第一个编码器的Hessian矩阵, 独立于 1,该方法确定不同层的顶部特征值,对特征值较小的层进行更积极的量化。为了进一步利用分组量化的方法进行优化,将每个密集矩阵作为一个分组,并根据其量化范围对每个连续输出神经元进行划分。VI-C.3 Q8BERT为了将权值和激活量化为8位,实施了对称线性量化[88],其中 是输入 的量化缩放因子,( = 2 −1−1)是量化为 位时的最高量化值。
实现伪量化[89]和直通式估计器(STE)[90],推断时间在训练过程中以完全精度实现量化反向传播使FP32权值克服错误。⃗ 这里 = 1,其中 是虚假量化 的结果。VII. INFORMATION RETRIEVAL对于高效的数据更新和检索等知识密集型任务,需要大量的隐性知识存储。标准语言模型不擅长这些任务,也不匹配特定任务的架构,而这些架构对于开放领域的问答是至关重要的。例如,BERT可以预测句子中缺失的单词,“the __ is the currency of the US”(答案是“dollar”)。然而,由于这些知识隐式地存储在其参数中,因此大小会大幅增加,以存储更多的数据。由于网络的大小限制,存储空间有限,因此这种约束会增加网络延迟,并且存储信息的代价非常昂贵。VII-A GOLDEN RETRIEVER传统的基于多跳的开放域QA涉及问题 和包含相关上下文 (gold)文档 1,. .,通过文本相似性形成一系列推理,最终得到首选答案 。然而,GoldEn retriver[91]的第一个跳生成一个搜索查询 1,该查询为给定的问题 检索文档 ,然后进行后续推理步骤( = 2,. .)。查询 由问题( )和可用上下文( 1,. .)生成。, −1)。GoldEn迭代地检索上下文更大的文档,同时将检索到的上下文连接起来,以供QA模型回答。它独立于数据集和特定于任务的IR模型,在这些模型中,对附加文档或问题类型的索引会导致效率低下。采用轻量级RNN模型,从上下文数据中提取文本范围,以潜在地减少庞大的查询空间。目标是生成一个搜索查询 ,它可以根据上下文的文本跨度为下面的推理步骤检索 , 是从受过训练的文档读者中选择的。h = ( )[ ](65), ( )= h h(66)其中 和 矩阵将BERT输出投射到 128 -维的向量。类似地,读者是BERT的阅读模型的跨度变体。h = ( )[ ( )],(67)H = ( , )[ ( )],(68)( , , ) ([h ;h ])(69)检索模型使用反向完形任务(ICT)进行预先训练,其中句子上下文在语义上是相关的,并用于推断序列 中缺失的数据。( | )= exp( ( , ))(70)∑ '∈ exp( ( ', ))其中 被视为伪问题, 是包围 的文本, 是用于抽样否定的一组证据块。除了学习单词匹配特征外,它还学习抽象表示,比如伪问题可能会出现在证据中,也可能不会。ICT之后,学习被定义为在答案推导上的分布。( | )=exp( ( ))∑ '∈ ( )∑ '∈ 的exp( ( ”、 ” ))(71)= ( )(62), + 1 = ( )在 查询生成器和 ( )检索文档通过 。VII-B ORQA组件读取器和检索器以端到端方式联合训练,其中实现BERT参数评分。它可以从开放的语料库中检索任何文本,而且不受像典型的IR模型那样返回固定的文档集的限制。检索分数的计算是问题的 与证据块 的密集内积。
其中 和 矩阵将BERT输出投射到 128 -维的向量。类似地,读者是BERT的阅读模型的跨度变体。
检索模型使用反向完形任务(ICT)进行预先训练,其中句子上下文在语义上是相关的,并用于推断序列 中缺失的数据。
其中 被视为伪问题, 是包围 的文本, 是用于抽样否定的一组证据块。除了学习单词匹配特征外,它还学习抽象表示,比如伪问题可能会出现在证据中,也可能不会。ICT之后,学习被定义为在答案推导上的分布。
这里, ( )高级检索模块基于 。在这个框架中,从完整的维基百科中检索证据是作为一个潜在变量来实现的,这是不可能从头开始训练的,因此使用ICT对检索犬进行预先训练VII-C REALM这个框架明确地关注像Wikipedia这样的庞大语料库,然而,它的检索器通过反向传播学习,并通过余弦相似度执行最大内积搜索(MIPS)来选择合适的文档。检索器的设计目的是缓存和异步更新每个文档,以克服检索候选文档的数百万次订单的计算挑战。在训练前,模型需要通过 和 (MIPS)之间向量嵌入的内积,即知识检索相关度 ( , )来预测随机隐藏token。为了实现基于知识的编码器,将输入 和来自语料库Ƶ的检索文档 组合为一个序列,以对Transformer ( ∣ , )进行微调,如图17所示。这使得 和 之间能够完全交叉关注,从而能够预测输出y在哪里:
与ORQA一样,BERT也是为嵌入而实现的:
在BERT掩码语言建模任务的预训练中,需要将tokens 中的每个掩码预测为:
在 ( )代表了Transformer输出对应于 h屏蔽tokens的向量。是总数[ ]符号的数量在 , 是学习词 嵌入tokens 。对于开放式的Q&A微调任务,答案 以目标文档 中的跨标记序列的形式出现。匹配 中 的span集 ( , )可以被建模为:
在 ,跨度 和 的起始标记和结束标记对应的Transformer输出向量表示前馈神经网络。
VII-D RETRIEVAL AUGMENTED GENERATION: RAGRAG是“闭卷”(即参数化模型)和“开卷”(即检索模型)方法的灵活组合,优于当前的语言模型。参数记忆是一个序列到序列的预训练模型,而维基百科表示通过一个密集的向量索引构成非参数记忆,它是通过一个预训练的神经检索器访问。由于RAG是作为两者的顶点而构建的,它不需要预先训练,因为与以前的非参数结构不同,知识可以通过检索的预先训练数据获得[92]。为了在输出序列中实现更大的上下文( )生成,通用的RAG将检索到的文本段落 用于给定的输入 ,这涉及两个主要组件:( )猎犬 Ƞ( ∣ ),通过Ƞ参数化,它返回最匹配的文本段落的内容查询 这 检索架构的通道作为潜变量边缘达到最大概率 ( ∣ )在top-K近似。
( )发电机 ( ∣ , , 1: −1),通过θ参数化,生成当前tokens 之前的基于上下文表示 −1tokens 1: −1,输入通道 和检索。模型基于不同的潜在通道预测每个目标tokens,同时使生成器能够从各种文档中选择主题。
检索模块 Ƞ( ∣ )基于密集通道检索(DPR),其中 ( )是通过BERT生成的文档密集表示, ( )是通过另一个BERT生成的查询表示。
有效计算 − ( ɳ(。∣ )元素 with the highest probability Ƞ( ∣ )DPR采用MIPS指数在巴特用作发电机 ( ∣ , , 1: −1)。检索器和生成器结合训练,以半无监督的方式检索目标文档。VII-D DENSE PASSAGE RETRIEVAL: DPRDPR使用双编码器方法增强开放域QA检索,不像计算密集型ICT。它的密集编码器 (·)在一个连续的、低维的( )空间中索引所有 段落,可以在运行时有效地检索查询的顶级相关段落。部署了一个单独的编码器 (·),用于在运行时映射查询和d维向量,它检索与问题向量最相关的 段落。查询和段落之间的点积计算决定了它们的相似度。( , )= ( ) 。( )。目标是通过训练编码器学习更优的嵌入函数,该编码涉及到创建向量空间,其中相关的问题,通道对具有更小的距离,即比不相关的更大的相似性。假设训练数据与 实例 ={⦑ , + −,−−, −⦒} ,1 , =1每个实例包含一个查询 ,一个积极的(相关的)段落 +和 消极的(无关的)段落 −。损耗函数可优化为正通道的负对数似然。
VIII. LONG SEQUENCE MODELS这种64层的Transformer[93]是基于对更长的序列具有更大的字符级建模的发现而建立的。与RNN的一元阶跃级数相比,该信息在随机距离上快速传输。然而,以下三个支持损耗参数被添加到普通的Transformer,加速收敛并提供训练更深的网络的能力。
(i) :一般因果预测发生在最后一层的一个位置,然而在这种情况下,所有的位置都是用于预测。这些辅助损失迫使模型在较小的背景下进行预测,并在没有权重衰减的情况下加速训练。(ii) :除最后一层外,对给定序列添加所有中间层的预测,随着训练的进行,较低层的权重逐渐减少。对于 层,在完成培训 /2 后, h中间层的贡献不再存在。(iii) :对模型进行修改,以生成两个或更大的未来字符预测,其中每个新目标引入一个单独的分类器。在添加到相应的层损失之前,额外的目标损失被称量一半。上述3种实现如图19所示。为序列长度 ,语言模型计算联合标记序列上的概率自回归分布。
VIII-B TRANSFORMER-XL为了减轻普通transformer中的上下文碎片,XL集成了更长的依赖关系,在这些依赖关系中,它重用并缓存了先前的隐藏状态,数据从这些状态通过递归传播。给定标记语料库 =( 1, 2…), ),一个语言模型自回归计算联合概率 ( ),其中上下文 < 被编码成一个固定大小的隐藏状态。
假设两个连续的句子长度为 , =[ 1…, , ]and +1 =[ +1,1,…], +1, ]其中 h层由 h段 as产生的隐藏状态序列H ⋵ × ,其中 是隐藏的维度。的 h 段 +1的隐藏层状态计算为如下:
其中 (·)表示停止梯度,[h·h]是两个 隐藏序列拼接,并将 作为模型参数。与原始Transformer的主要区别在于对密钥 和价值 +1 +1进行建模关于扩展上下文h~ −1,因此在前面 +1 h −1被缓存。这可以从图20 中演示出来在上面,后者缓存了先前的注意广度形成一个延长的缓存机制。这种递
归适用于每两个连续段创建段级递归通过隐藏州。在原来的Transformer注意力得分内查询( )和键向量( )之间的相同段是:
从相对位置编码的角度来看,以上方程以以下方式重新构造
VIII-C LONGFORMER该体系结构在识别相互关注的输入位置对时提供了完整注意矩阵的稀疏性,并实现了三种注意配置:(i) :对于一个固定的窗口大小 ,每个tokens关注每一边 /2的序列长度(n)。这导致 ( × )的计算复杂性随输入序列长度线性扩展,为了提高效率, < 。一个堆叠的“ ”分层Transformer使大小为“ × ”的接收能力超过整个输入“ ”跨越所有层。可以根据效率或性能选择不同的“ ”值。(ii) :为了节省计算和扩展接受域大小的 × × ’,' 大小可变的差距在哪里引入窗口大小“ ”相呼应。增强的性能是通过允许少数无膨胀头(较小的窗口大小)关注本地上下文(较低的层)和其余膨胀头(增加窗口大小)关注较长的上下文(较高的层)来实现的。(iii) :前面的两种实现对任务精确学习没有足够的灵活性。因此,“ ”是在少数预先指定的输入tokens( )上实现的,其中tokens关注所有序列tokens,所有此类tokens也关注它。这使得本地和全球对 ( )的关注更加复杂。它的注意复杂度是局部和全局注意与RoBERTa的二次复杂度的总和,二次复杂度可以用下面的数学表达式来解释。
全局关注使无块文档处理成为可能,但是,如果序列长度超过了窗口大小,那么它的时空复杂性将大于RoBERTa。
VIII-D EXTENDED TRANSFORMER CONSTRUCTION: ETCETC是Longformer设计的改良版,可接受全球( )和长( )输入,其中 ≪ 。它计算四种全球-本地注意力变体:从全球到全球( 2 )、从全球到长( 2 )、从长到全球( 2 )和从长到长( 2 ),以实现长序列处理。全局输入和其他三种变化具有无限的关注,以补偿 2 ' 固定半径跨度,以实现性能和计算成本之间的平衡。此外,它用相对位置编码取代了绝对编码,后者提供有关彼此的输入标记的信息。VIII-E BIG BIRD在数学上,大鸟证明了随机稀疏注意可以是图灵完备的,并且表现得像一个辅助随机注意的朗格尔人。它被设计为(i)一个全局tokens组 关注所有序列部分(ii)存在一组 随机键,每个查询 关注(iii)一个本地邻居窗口 块,每个本地节点关注。Big Bird的全局tokens是使用一种双重方法构造的(i) Big Bird-ITC:实现内部Transformer构造(ITC),其中当前tokens在整个序列中都是全局的。(ii) Big Bird-ETC:实现扩展Transformer构造(ETC),关键的额外全球tokens 包括[ ],涉及所有现有tokens。它的最终关注过程包括以下属性:查询关注 随机键,每个查询关注 /2tokens在其位置的左右,并有 全局tokens,它从当前tokens派生或在需要时可以补充。IX. COMPUTATIONALLY EFFICIENT ARCHITECTURESIX-A SPARSE TRANSFORMER该模型的经济性能是由于从完全自我注意程序的异化,该程序通过几个注意步骤进行修改。模型的输出结果来自完整输入数组的一个因子,即(√ ),其中 ⋵ h如图22所示。这导致了与Transformer的 ( 2)相比, ( √ )的关注复杂性更低。此外,它能破译的序列比之前的长30倍。它的因子化自我关注由 不同的头组成“ h头”的实质是注意力指数的一个子集 ( )的实质是“ ∶ ≤ ”的实质。“Ai(m)”的实质是“Ai(m)”的实质是“ ”的实质。跨越式注意在两个维度上实现其中一个负责人负责以前的 地点和另一个关注每一个 h地点,在那里步幅 价值接近√ 。这表示为 (1)={ , + 1,.., }for = (0, − )和 (1)={ :( − ) = 0}。这 线性变换导致了这种密集的注意:
其中 是post - attention矩阵。同样, 实现因子化注意头,一种注意类型交替使用每个残留块或交错或超参数决定比率。
其中 是当前剩余块索引, 是映像员工。另一种合并磁头的方法包括一个磁头处理两个因数分解的磁头处理的目标位置。这种方法在计算上要贵一个常数因子。
第三种选择是使用多头注意力,其中注意力产品( )是并行计算的,并沿特征维度连接。
多个头给出了更好的结果,而对于注意力决定计算的较长的序列,顺序注意力是首选。IX-B REFORMERReformer通过局部敏感散列(LSH)将Transformer的注意复杂度降低到 (L log L)。这将每个向量 赋值给一个哈希h( ),其中相邻的向量在大小相似且概率高的哈希桶中获得相同的哈希,而远程的向量则不会。修正的LSH注意方程:
属于 h职位查询关注的集合, 是 一种配分函数,它包含一个查询要处理的邻近键的范围。为了进行批处理,注意 ={0,1− }⪾ ,其中 是~ 的子集,不在 中的元素被屏蔽。
解码器实现屏蔽,以防止访问未来的查询位置。通过在单个散列桶中启用关注,设置的 目标项只能由位于 h位置的查询参与。为了进一步降低相似项落在不同桶中的概率,使用不同的哈希函数{h(1), h(2), . .进行多次并行哈希( )。}
注意力集中在已排序的键查询块和要批量处理的键
从(96)和(97)我们可以得到
下面图23的例子全面地展示了改革者的各种工作机制。可逆残差网络[94]是Reformer经济内存消耗背后的另一个驱动力,其中激活值是在反向传播期间动态重建的,不包括存储中保存激活的要求。从图24中,下面每一层的可逆块从下一层的激活重新计算为:
IX-C A LITE BERT: ALBERTALBERT在一个单一模型中集成了以下两参数缩减技术,结果仅得到12M参数,如图25所示。与BERT-base相比,这几乎减少了90%的参数,同时保持了具有竞争力的基准性能。(i) :为获得最佳的结果,NLP任务需要大量词汇 ,(嵌入大小) ≡ (隐层)和嵌入矩阵 × 大小可以规模数十亿参数。ALBERT将嵌入空间 分解为两个更小的矩阵,其中嵌入参数从 ( × )导出为 ( × + × )。(ii) − h :阿尔BERT是建立跨层通过前馈网络共享注意参数(FFN)。因此,它的层间过渡相当平滑,因为结果表明权值共享对网络参数的稳定作用。
与BERT的NSP一样,ALBERT的句子顺序预测(SOP)损失包含了从两个正的连续文本片段中进行的双分叉学习,其中也包括其相应的顺序颠倒的负样本,如图26所示。这影响了模型在上下文中学习任何话语中更细粒度的差异,从而获得更好的连贯性能。它的传销目标实现 -gram掩蔽,包括多达3个字符序列,如“世界杯足球”或“自然语言处理”。
IX-D ELECTRA它的优势在于通过有效的区分来进行情境学习,从所有的事物中学习。不同于BERT的输入标记,BERT只从15%的屏蔽子集学习。ELCTRA实现了“被替换的tokens检测”,如图27所示,通过Generator( ),一个小的“屏蔽语言模型”,用有概率意义的替换替换少数随机tokens,从而发生污染。
同时,通过二值分类,联合预训练一个更大的模型Discriminator( )来预测每个标记是否通过生成器正确恢复。
这两个基于编码器的网络( , )转换输入tokens序列 =[ 1,. .]h = [h1, . .]。h ]。通过Softmax, 产生 h位置令符 的可能性,其中 =[ ]。
在一个大语料 上的联合损失最小化为:
IX-E LINFORMER证明了[95],注意权值由少数关键项支配,通过低秩自注意将序列长度投影到目标输出矩阵,实现了线性的时间和空间复杂度 (1)。在键和值的计算过程中,两个线性投影矩阵相加 , ∈R × ,其中( × )− 尺寸键,值层 和 被投影 进入( × )−维度键,值层,之后结果( × )-维度上下文计算使用缩放的点积注意力。
如果 << ,则内存和空间显著减少消费是实现。为了进一步有效优化,投影之间的参数共享在3处执行(i) Headwise Sharing:每一层有两个投影矩阵 和 通过 = , = 共享所有头 。(ii)键值共享:包括(i)键值投影是共享的,每一层的单一投影为每个键值投影 创建矩阵 = =(iii)层共享:一个单一的投影矩阵 实现所有层,头,键和值。对于12层12头Transformer(i), (ii), (iii)将分别包含24,12,1个不同的线性投影矩阵。IX-E PERFORMER结果优于 ( 2 ),其中 ≫ 。然而,在实现了softmax非线性函数后,将查询键产品的注意力分解为原始形式是不可能的。然而,通过近似较低级别的查询和键启用,pre softmax注意力分解是可能的更高的效率,特别是' ≅ ( )≅ √ exp( )。通过核近似函数 ( , )=∅( ) ∅( ),高维特征图点积∅。与增加维度的内核技巧相反,Performer[96]分解注意力矩阵 ( , )= ( , )= ( , )∅映射到低维特征。X. MODELING CLASSIFICATION OF LMs从建模的角度来看,基于Transformer的语言模型(LM)可以分为3类[97]:(i)自回归:这些是预先训练的前馈模型,可以根据token的历史预测未来的token。这里的输出 依赖于即时 的输入和以前的时间步长输入 < 。这些主要是基于解码器的变形金刚,合并了因果掩蔽,注意头被阻止关注未来的代币。这种模型通常用于文本生成目的进行微调,并在GPT系列中部署零目标学习。(ii)自动编码:这些基于编码器的模型可以完全访问输入数组,没有任何屏蔽。通过合并输入tokens屏蔽方案对它们进行预训练,然后进行微调,以再现被屏蔽tokens作为输出。这些模型(BERT)通常适用于序列或标记分类任务。(iii)序列到序列:这些基于编码器-解码器的生成模型从海量数据集创建数据后学习。与判别分布 ( | )不同,它们对输入 和目标 的联合分布 ( , )建模,其中输入可能在几种方案上被破坏。基于解码器的因果掩蔽被部署以最大化后续目标生成的学习。像BART和T5这样的模型在NMT、总结或QA任务上表现最好。图29给出了上述建模分类的全面概述。XI. LANGUAGE MODEL PERFORMANCE COMPARISON基于Glue和SuperGlue基准的少数几个主要NLP模型的定量性能如图28所示。这些基准测试包含各种数据集,这些数据集可以在几个NLP任务中判断模型。GPT-3的可训练参数最多,是本次比较中最大的型号。因为GPT-3是这里最新的模型,所以它不参与旧的Glue基准测试。从定性的角度来看,同一模型中的T5在不同的任务中使用相同的损失函数和超参数,从而形成一个多任务学习环境。这种可扩展的文本到文本生成(NLG)模型在训练时将去噪目标与大量的未标记数据相结合,因此效果最好。相比于像RoBERTa这样的NLU模型,这导致了更好的学习和更广泛的表现,而RoBERTa模型是在预处理后针对个别下游任务进行微调的。
在NLU模型中进行几轮微调的主要动机是为了在多个任务上实现强大的性能。它的主要缺点是每个任务都需要一个新的、通常比较大的数据集。这放大了不合理的非分布泛化的可能性,导致与人类水平的能力进行不公平的比较。GPT-3不进行微调,因为它的重点是提供任务不确定的执行。然而,在GPT-3中有最小微调的范围,这会导致一次或几次学习。这个想法是在一个庞大的数据集上对一个巨大的模型进行预训练后执行零或最小的梯度更新。虽然GPT-3在SuperGlue基准测试中排名不高,但关键是这个生成模型在推理时学习任何任务的速度都是最快的。在一些NLP任务中,它匹配了SOTA微调模型在零、一和几镜头设置下的性能。它还生成高质量的样本,并在动态定义的任务中提供可靠的定性性能。XII. CONCLUSION AND FUTURE DIRECTIONS我们提供了导致当前SOTA在NLP性能方面的主要语言模型的全面和详细的总结。自从Attention机制和Transformer架构推出以来,NLP已经取得了指数级的进步。我们提出了一种通过分类法进行模型分类的高级思维导图。这些分类主要基于Transformer派生架构,用于特殊任务,如语言理解和生成、通过蒸馏、量化和剪枝缩小模型尺寸、信息检索、长序列建模和其他广义模型缩减技术。最近的语言模型主要是为了获得更高的NLP性能,这需要大量的计算资源。因此,模型缩放已经成为工业上的自然途径。这种指数级的扩展加上更高的注意力复杂性使得这些模型无法在全球范围内访问。随后,在设计合理规模的模型和高效注意力计算方面做出了重大努力,以加快模型收敛速度,降低模型延迟。结合Mixture of Expert (MoE)[98]方法是大型模型实现计算效率的有效方法,因为每个输入只激活神经网络的一个子集。因此,这导致稀疏性,虽然稀疏性训练是一个活跃的研究领域,目前的gpu更适合密集矩阵计算。虽然MoE模型在训练稀疏矩阵方面已经显示出了前景,但它们的通信成本和复杂性阻碍了大规模部署。此外,较大的模型容易记忆训练数据,导致过拟合和学习减少[99]。为了克服这一点,模型只在巨大数据集上的重复数据删除实例上训练一个epoch,因此显示出最小的过拟合。因此,MoE设计与健壮的训练范式相结合,在未来可能会产生高度可伸缩和高效的模型。这些模型将具有优越的语言理解能力,因为数据记忆将被最小化。当前的SOTA模型方法依赖于大型数据集的监督学习。在未来的自然语言处理中,一个很有前途的改进领域将是在机器翻译、文本摘要和问答任务中结合强化学习。模型描述任务语言建模类型GPT-I, II, III·大型数据集的无监督预训练·自回归语言建模和因果掩蔽问答,网络机器翻译,阅读理解,文本总结,常识推理,zero-shot基于Transformer的自回归解码器XLNET·通过对输入序列长度进行因式排序,提高语境学习效果·双向上下文语言建模阅读理解,自然语言推理,情感分析,问答基于Transformer的自回归解码器REFORMER·注意通过本地敏感散列减少内存占用·通过可逆剩余网络重新计算权重和激活,绕过各自的存储减少注意复杂性,使对实用记忆需求进行长时间的序列处理基于Transformer的自回归解码器LONGFORMER·注意矩阵的稀疏性用于长序列加速和高效计算·对附近的tokens进行本地化关注,并对少数预选tokens进行全球化关注,以增强接受能力共引用决议,问答,文件分类。基于Transformer的自回归解码器BERT·深度双向语境化·用于持续学习的掩蔽语言建模(MLM)句子分类、问答、自然语言推理、基于Transformer的自动编码-解码器RoBERTa·通过动态屏蔽的多样化学习,每个时间布的token都被不同的屏蔽·更大的训练前批量情感分析,问答,自然语言推理基于Transformer的自动编码-解码器DistilBERT·生成与其较大的教师模型BERT相似的目标概率分布·生成学生和教师模型的隐藏状态之间的余弦相似度语义文本相似性,语义关联,问答,文本蕴涵基于Transformer的自动编码-解码器ALBERT·通过嵌入参数约简,即因式参数化,更小、更高效的模型·通过跨层参数共享将层划分为组,减少内存占用阅读理解,语义文本相似性,问答,语言推理基于Transformer的自动编码-解码器ELECTRA·预测重新生成的损坏tokens是原始的还是通过预培训生成器替换·通过替换标记检测,有效且低成本的区分学习在情感分析、自然语言推理任务中提供具有竞争力的性能,计算效率为25%基于Transformer的自动编码-解码器BART/mBART·通过更大的噪声变化,优越的序列生成质量·灵活的去噪自编码器作为最严厉的噪声方案的语言模型监督和非监督多语言机器翻译,问答,语义等价基于Transformer的生成式序列-序列模型T5/mT5·在每一层学习位置编码,以获得更好的语义性能·以文本到文本的格式转换所有任务,以合并大多数NLP任务品种。更多样化和更具挑战性的参考,内涵,问答任务通过SuperGLUE基准基于Transformer的生成式序列-序列模型---------♥---------