当前位置:   article > 正文

预训练语言模型汇总_mlm损失函数

mlm损失函数

BART:Denoising Sequence-to-Sequence Pre-training for Natural Language Generation,Translation,and Comprehension

本文提出一种用于预训练序列到序列模型的自动去噪编码器BART。BART通过以下方式进行训练:①使用任意的噪声函数破坏文本;②学习模型来重建原始文本。BART的模型结合了BERT的双向编码器和GPT从左到右的解码器。其中编码器将被破坏的输入进行编码(消除破坏的影响),然后解码器根据编码器的最后隐藏层的输出进行重构。BART解码器的每一层都额外对编码器最终隐藏层执行交叉注意。
在这里插入图片描述

因为BART的预训练是在同一语言下进行的,因此使用BART做机器翻译任何需要额外添加一个随机初始化的编码器,然后把BART整体当作翻译器的解码器。额外的编码器相当于输入其他语言序列从而生成一个有噪声的英文输入,然后将有噪声的英文输入BART进行重构,最终得到翻译结果。同时要注意,BART在进行翻译任务时训练分为两步,首先要对BART的大部分参数进行固定,只训练额外编码器和BART编码器中第一层的部分参数,然后再通过少量的epoch中微调整个模型。而BART做分类任务时,只需要根据解码器的输出进行分类即可。
在这里插入图片描述

很多预训练的语言模型难以在文本生成和判别任务上同时有效,但BART不仅在针对文本生成时特别有效,在很多文本生成任务上实现了SOTA的效果,同时在语言理解、判别任务上也能实现和RoBERTa相同的性能。

ALBERT:A Lite BERT For Self-Supervised Learning of Language Representation

一般来说,大型的预训练模型模型增大会提高下游任务的性能,但由于硬件的限制,进一步增大模型会变得更加困难。为了解决这个问题,本文提出了两种参数减少的技术来降低内存消耗并提高模型训练速度。这种减少参数的操作不仅能显著能减少BERT模型的参数,并且不会严重影响性能,从而提高了参数的效率。同时减少参数还有正则化模型的效果,从而使得模型更加鲁棒,使模型能够稳定训练并有助于泛化。
本文提出的技巧:①分解embedding矩阵,通过将大的词汇嵌入矩阵分解为两个小矩阵,从而将隐藏层大小和词汇嵌入大小分开。(先将ont-hot向量投影到大小为E低维空间中,然后再投影到大小为H的隐藏空间,这样矩阵大小从O(VH)减小为O(VE+E*H))②跨层参数共享,通过跨层共享Transformer的前馈层(FFN)或跨层共享注意力参数或者跨层共享全部层参数共享来减少模型参数(默认),从而防止参数随着网络的深度而增长。③删除BERT的下一句预测(NSP)任务,改为句子顺序预测(SOP)任务,这样模型能更有效学习句子连贯性。④删除dropout,作者发现当训练1M步时,ALBERT-large仍然不会过度拟合数据,然后删除dropout以进一步扩大模型,发现提高了下游任务的性能。
在这里插入图片描述
在这里插入图片描述

可以发现,ALBERT-xxlarge虽然模型架构比BERT-large大很多,但是模型参数并没有BERT-large多。并且ALBERT-xllarge在下游任务上的性能比BERT-large好很多,但它的训练时间也要比BERT-large慢了大概3倍。ALBERT-xxlarge无论在训练相同步数还是相同数据,下游任务的性能都比BERT-large要好。
结果:ALBERT在经过以上几种技术的改进,无论是单模型还是集成结果都表明,在GLUE、RACE和SQuAD三个基准数据集上都取得了SOTA的效果,并且在RACE上的成绩远超BERT(+17.4%)和XLNet(+7.6%)。

Unified Language Model Pre-training for Natural Language Understanding and Generation

本文提出了一种新的统一预训练语言模型UNILM,能够同时胜任自然语言理解和生成任务。该模型针对三种类型的无监督语言建模目标进行了优化:单向、双向和序列到序列(通过自注意力掩码来实现)。
UNILM具有三个主要优点:①统一的预训练过程导致单个Transformer网络使用不同类型的LM的共享参数和架构,从而减轻了单独训练模型和联合多个LM目标进行优化的工作。②参数共享使得学习的文本表示更加通用,因为它们针对不同的语言建模目标进行了联合优化,其上下文表示以不同的方式使用,从而减轻了对单个LM任务的过拟合。③该模型不仅能应用在NLU任务上,它的Seq2Seq LM目标使得他能够适用于NLG任务。
总体训练目标是上述不同类型LM目标的总和。具体来说,在一个训练epoch中,1/3时间使用双向LM目标,1/3时间使用序列到序列LM模型,从左到右LM和从右到左LM各1/6时间。当任务为NLU时,选择将UNILM微调为双向Transformer模型;当任务为NLG时,选择将UNILM微调为序列到序列模型。
在这里插入图片描述

结果:UNILM不仅在自然语言理解任务上与BERT相比毫不逊色,同时还在自然语言生成任务的5个数据集上取得了SOTA的结果。

DistilBERT, a distilled version of BERT: smaller,faster, cheaper and lighter

本论文提出了使用知识蒸馏的方法来缩小BERT的架构和参数。先前的大部分工作都着重在特定于任务的模型上进行蒸馏,但本文的工作是学生模型(DistillBERT)和教师模型(BERT)在预训练期间进行知识蒸馏。作者发现使用通用的预训练蒸馏而不是特定于任务的蒸馏是有益的。
模型使用了三个损失函数:语言模型损失、知识蒸馏损失和余弦距离损失。
作者发现模型的隐藏维度对模型的推理速度来说影响并不大,而模型层数对其影响较大。所以为了方便模型初始化,作者保持了教师和学生网络的隐藏维度不变,而对模型的层数减半(其中去掉了embedding层和池化器层)。作者将BERT的预训练参数从两层中取出一层来初始化DistillBERT。
在这里插入图片描述
通过消融实验得出:①余弦距离损失对模型的性能有较大的帮助。②使用BERT参数来初始化DistillBERT对模型的最终性能提升很大。
在这里插入图片描述
结论:DistillBERT在下游任务上的性能比基线ELMo效果要好,并且和BERT-base的性能相差不大。DistillBERT将BERT的模型大小缩小了40%,从而导致推理速度快了60%。DistillBERT在减小模型参数的情况下,保留了97%的语言理解能力。

RoBERTa: A Robustly Optimized BERT Pretraining Approach

语言模型预训练会带来显著的性能提升,但超参数的选择对最终结果有重大影响。本论文提出了一种改进训练BERT模型的方法,我们称之为RoBERTa。它通过使用选择了较好的超参数从而在很多任务上实现了SOTA的效果。
RoBERTa对BERT的改进:①训练模型的时间更长,批量更大,数据更多;②去除了BERT中的下一句预测(NSP)目标;③使用较长的序列进行训练;④对BERT中训练数据的掩码方式改为动态掩码,即同一句子在不同epoch中掩码的token不同;⑤更大的Byte-Pair Encoding(BPE)词汇表。⑥修改了Adam的超参数,将β2从0.999设置为0.98,使得模型的训练更加稳定。
RoBERTa的结果说明了以前被忽视的超参数的设计的重要性,同时也表明,在正确的设计下,掩码语言模型预训练和最近新发布的方法(如XLNet)相比是具有竞争力的。RoBERTa通过将BERT的超参数调节对最优,从而实现了与XLNet等模型不相上下的效果。
结果:RoBERTa在GLUE、SQuAD、RACE上实现了SOTA的效果,而无需对GLUE进行多任务微调或对SQuAD进行额外的数据仅微调。

ELECTRA:Pre-training Text Encoders as Discriminator Rather Than Generators

掩码语言模型(MLM)预训练方法(如BERT)通过将[MASK]替换一些toen来破坏输入,然后训练模型以重建原始的token。这样会需要大量的计算。本文提出了一种新的方法来解决该问题:将预训练目标改为替换token检测。这个方法是一个类似于BERT的小型生成器将被掩码[MASK]破坏的输入序列预测出来token后,然后将所有token送入鉴别器中,鉴别器的目标是识别每个token是来自真实数据还是生成器生成的token。因为该任务是在所有输入token上定义的,而不仅仅是被mask的子集,所有这种方法充分地利用了数据。因此模型训练更快,在计算量不足RoBERTa和XLNet的1/4时,性能却和它们相对,同时作者实验当使用相同的计算量时ELECTRA的性能优于它们。
模型架构如下:
在这里插入图片描述
这种方法有点像GAN,但该模型的生成器并不是以对抗方式训练的,而是最大化似然函数来优化的。(因为GAN很难应用于文本,作者尝试使用GAN的方式来优化生成器,但是效果不如掩码语言模型)即生成器是用最大似然函数来优化的,判别器的损失函数是每个token的二分类Sigmoid函数。该模型的总体是损失函数为:

该模型有以下优势:①模型从所有输入token中学习,而不仅仅是从小的屏蔽子集中学习,从而使其计算效率更高。②解决了BERT有预训练/微调差异的问题。

在预训练之后,抛弃了生成器,只在下游任务上微调判别器(ELECTRA)。
作者通过将生成器和鉴别器之间共享权重来提升预训练的效率(绑定权重不仅减少参数,并且模型效果也提高了)。如果生成器和鉴别器大小相同,则可以绑定所有的Transformer权重。但是作者发现使用小型生成器效率更高(没有绑定权重的GLUE得分为83.6,绑定token权重得分为84.3,绑定全部权重得分为84.4),因为绑定权重权重就要去生成器和鉴别器大小相同。在该模型中,只共享生成器和鉴别器的嵌入参数(token嵌入和位置嵌入)。

通过消融实验,作者发现性能的主要提升在于对所有的输入token进行预测(+2.1%),少部分提升是由于生成器的输入减少了模型对[MASK]这种预训练/微调差异的影响(+0.7%)。
结果:ELECTRA不仅训练地更快,而且在小模型、基本模型和更大的模型都优于其他模型(如BERT,RoBERTa和XLNet)。(模型越小,相比其他收益越大)。

MASS: Masked Sequence to Sequence Pre-training for Language Generation

本文利用Transformer的编码器-解码器架构提出了一种新的预训练语言模型目标,即通过在编码器端随机mask一段连续的token,然后让解码器去重建这些被mask的token。通过这样的训练目标从而使得模型在自然语言生成任务上取得了不错的效果。作者还通过在自然语言生成三个任务(机器翻译、文本摘要和对话响应生成)的8个数据集上进行实验,验证了MASS在零资源/低资源上效果比之前的预训练语言模型要好。
在这里插入图片描述
其中被掩码连续token的长度k是一个超参数,如果k=1,即只掩码一个token,那么它将和BERT模型相似,如果k=m(m为输入句子的长度),那么该模型Encoders输入全是mask,模型架构与GPT相似,所有作者通过实验,将k从10%到90%(step为10%)各自训练了模型,发现当k=50%时模型效果最好。
MASS在设计上有两个巧妙之处,①编码器被mask的是一段连续的token,而不是各个分离的token。②在解码器端只输入被编码器mask的token,而不是全部的token。作者通过消融实验来证明当前的MASS的最优的选择。Discrete表示编码器的mask的离散的多个token,Feed表示解码器的输入是全部token。
在这里插入图片描述
结果:MASS在无监督机器翻译实现了SOTA的结果,在英-法数据集上超越SOTA模型4个BLUE。同时MASS在文本摘要和对话响应生成任务上都显著高于基线模型。

SpanBERT: Improving Pre-training by Representing and Predicting Spans

本文提到的SpanBERT对BERT进行了两方面的改进:①随机mask的是span而不是token;②SBO训练目标。训练span边界的token表示去预测整个span的内容,而不依赖于单独的token内容。Span-Based的masking模式强迫模型仅使用上下文去预测整个span;SBO强迫鼓励模型把整个span的内容信息存储到边界token的表示中。同时SpanBERT在训练时只输入一个segment,而不是像BERT那样输入两个Segment。
SpanBERT在很多NLP任务上相较于BERT有了一致性的改进,尤其在span选择的任务上比BERT的性能有显著的提高,如QA任务和共指消解任务。
在这里插入图片描述
上图为模型的训练过程,损失函数由MLM loss function和SBO loss function组成。其中SBO损失函数是指使用边界token的表示(x4和x9)以及预测单词的位置嵌入(p3)来预测该词。
在训练时和BERT的区别:①在不同的epoch使用不同的mask,而BERT对于每个句子采样10个不同的mask,即采样动态masking的策略;②消除了之前所有的短序列策略(以更低的概率采样短序列;首先使用短序列进行预训练)
通过消融实验证明了spanBERT改动的有效性,证明了采样几何分布的随机mask span比其他方法更有效,也证明了SBO任务比BERT的NSP任务更有效。
在这里插入图片描述
在这里插入图片描述
SpanBERT在17个数据集中进行测试,几乎在每个数据集中都优于BERT,尤其是在SQuAD v1.1和v2.0分别获得了94.6%和88.7%的F1值,并且在OntoNotes共指消解数据集上获得了SOTA的效果(79.6%的F1值)。

ERNIE: Enhanced Representation through Knowledge Integration

本文提出了一种基于知识整合的策略来提升模型的语言表示能力,其策略主要有两种,①entity-level masking,mask命名实体;②phrase-level masking,mask整个短语。该策略能够让模型隐式地学习语法和语义信息,基于知识来提升word representation的方法能提高模型的泛化性和适应性。
BERT和ERNIE在mask策略上的区别

训练策略:使用多阶段knowledge masking策略去整合命名实体和短语之中的知识来提升word representation。①Basic-Level Masking,masking方式和BERT的一致,让模型先学习基础的语义知识。②Phrase-Level Masking,通过masking短语让模型学习到短语信息。③Entity-Level Masking,通过mask命名实体使得模型学习到更丰富的语义信息。另外,ERNIE还采用了DLM(dialogue language model)任务,其中dialogue embedding类似于BERT的token type embedding,其用来区分对话中的角色。该任务不仅预测被mask的单词,还要预测多轮对话是否是真实的。
消融实验:通过实验来验证knowledge masking和DLM的有效性,添加phrase-level masking和entity-level masking都能有效地增加模型的性能,DLM任务也能为模型带来大约百分之一的提升,其实验结果如下:
在这里插入图片描述在这里插入图片描述
ERNIE在下游任务上性能优于基线,并且在5个中文自然语言处理任务上获得了SOTA的效果,其中包括自然语言推断、语义相似度、命名实体识别、情感分析和问题回答,同时也显示了ERNIE在完成填空上有很强的知识推理能力。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/360048
推荐阅读
相关标签
  

闽ICP备14008679号