EBET易博常用预训练语言模型(PTMs)总结

  新闻资讯     |      2023-09-16 19:48

  EBET易博真人近期,本人在组内进行了一次分享,主要涉及预训练语言模型,之前也对一些预训练语言模型进行过单独地分享,本次进行一下简单地总结。由于时间和精力有限,本次汇总的预训练语言模型,一些对Transformer结构进行修改的模型和蒸馏模型不在本次分享范围。

  A:Attention机制与CNN结构一样,无法表示文本的时序型,因此相比于LSTM结构,在NLP领域效果要差一些,而加入位置信息,相当于给予了时序特性。位置信息为绝对位置,由Sin+Cos获得,如下:

  A:QK进行点击之后,值之间的方差会较大,也就是大小差距会较大;如果直接通过Softmax操作,会导致大的更大,小的更小;进行缩放,会时参数更平滑,训练效果更好。

  A:将真实的维度除以头的个数,获取每个真实计算的子元素维度,也就是将三维向量变成四位向量进行计算self-attention。

  A:BN的特点是强行拉平数据之间的分布,使得模型收敛速度更快,并且起到了正则化的作用,使模型效果更佳。但是,BatchNorm对Batch Size大小很敏感,并且在LSTM网络上效果极差。

  LayerNorm是横向归一化,不受Batch Size大小的影响,并且可以很好地应用在时序数据中,而且不需要额外的储存空间。

  A:提出MLM任务,即掩码语言模型,通过对掩码元素的预测,实现基于Transformer-Encoder的双向语言模型。

  A:可能是mask太少会导致学习不充分,增加训练时长;mask太多会导致使一段文本中丢失太多的语义信息。(网上有一个解释,跟CBOW相似,15%相当于7个token预测一个token,刚刚好。)本人觉得还是为效果论,并且后面T5论文在实验中提到过15%是最优参数。

  A:被mask的文本会丢失一些语义信息,与下游任务不一致。为了改善这种情况,保持部分token不变;并且加入一些随机替换的token和保持token不变也赋予了模型纠错的能力。目前也有论文使用BERT模型进行纠错任务,见《Spelling Error Correction with Soft-Masked BERT》。

  A:BERT模型采用WordPiece算法构建词表。WordPiece是基于BPE算法的改进,将通过频率合并字符的频率变成了通过语言模型的似然进行合并。

  Q:由于WordPiece构建的词表,会有很多子词,掩码时会导致信息不全,怎么解决?

  A:Google开源了全词掩码代码,如果将一个word切开了,则全部掩掉。最后提升0.5-1个点。

  A:RoBERTa模型,相当于一篇BERT模型的调参训练的实验报告,体现了作为一名算法调参工程师的重要性。

  A:知识图谱是由实体、关系、实体或实体、属性、值组成。而实体一般是人名、地名、机构名等,因此采用多种掩码机制,通过引入实体级别掩码(Entity-Level Masking)和短语级别掩码(Phrase-level Masking),来增加知识图谱信息。不过,掩码依然保留BERT原有的字符级别掩码(Basic-level Masking)。

  增加DLM任务:处理的线程数据、通过用随机选择的句子替换查询或响应来生成假样本。该模型用于判断多回合对线论文见:

  2.0引入了更多的任务,包括:知识掩码任务(Knowledge Masking Task)、大写预测任务(Capitalization Prediction Task)、 词语-文档关系预测任务(Token-Document Relation Prediction Task)、句子重排序任务(Sentence Reordering Task)、句子距离预测任务(Sentence Distance Task)、句子关系任务(Discourse Relation Task)、检索关系任务(IR Relevance Task)。其中,知识掩码任务,就是ERNIE1.0的掩码任务;大写预测任务,就是预测一个英文词语的首字母是否为大写,一般大写词语都是较重要的词语;词语-文档关系预测任务,就是一篇文档出现的词语,是否在另外一篇出现;句子重排序任务,就是将文本句子打乱顺序,然后预测正确排序;句子距离预测任务,就是预测两个句子之间的距离;句子关系任务,就是根据句子之间的关键词判断,两个句子之间的语义关系;检索关系任务,就是判断一条用户查询和一篇文档题目的相关性程度,包含强相关、弱相关和无关。

  顾名思义,使用Span片段进行Mask操作;与Roberta一样,舍弃了NSP任务,但是增加了SBO任务;Mask token的占比依然为15%,并按照811的规则替换。

  Span Boundary Objective任务,通过边界两侧的token,预测span里面全部的token。在训练时获取Span掩码边界的前后两个token(注意,不是边界token,是边界前后的token),然后将这两个token的向量加上 Span被掩掉token的位置向量,来预测被掩掉token的原词是什么,其实,就是将词向量和位置向量拼接起来,过两层全连接层,进行词表预测。

  符合长度为10,p为0.2的几何分布。平均span长为3.8。值得注意的是,由于几何分布,最大数只取到10,后面采用截断的方式,因此,后面的概率会分布到前面1-10的概率上,与正常几何分布概率不同。span长度为1 的概率是 p/(1-q^10)=0.224,

  使用全词掩蔽和N-Gram掩蔽策略来选择候选tokens进行掩蔽;由于原始BERT模型在预训练时使用[MASK] token进行替换,但是[MASK] token在微调阶段从未出现,这会造成预训练任务与下游微调任务不一致,因此使用类似的单词来掩蔽需要被掩蔽的单词;使用15%的百分比输入单词进行掩蔽,其中80%将替换为相似的单词,10%将替换为随机单词,剩下的10%将保留原始单词。

  类似的单词可以通过同义词工具包(Synonyms)获得,该工具包是基于word2vec相似度计算来获取同义词的。选择一个N-gram进行掩码时,该论文将分别找到相似的单词。在极少数情况下,当没有相似的词时,会降级使用随机词替换。

  使用ALBERT提出的句子顺序预测(SOP)任务替换BERT原始的NSP任务,通过切换两个连续句子的原顺序创建负样本。

  ALBERT模型主要采用了权重共享的方法,说句心里话,ALBERT,我差你那点硬盘空间吗?我差的是推理速度。MacBERT论文见:

  没有效果,但是可以强行发论文;但是毋庸置疑的点是,相对编码可以在推理时接收更大的长度。>

  数据仅采用中文维基,存在NSP任务,额外增加20%的推理时间,效果紧逼ERNIE2.0。ZEN论文见:

  通过不同的掩码来控制预测单词的可见上下文词语数量,实现不同的语言模型的联合训练。单向语言模型:分为从左到右和从右向左两种,从左到右,即仅通过被掩蔽token的左侧所有本文来预测被掩蔽的token;从右到左,则是仅通过被掩蔽token的右侧所有本文来预测被掩蔽的token。

  双向语言模型:与BERT模型一致,在预测被掩蔽token时,可以观察到所有的token。

  序列到序列语言模型:如果被掩蔽token在第一个文本序列中,那么仅可以使用第一个文本序列中所有token,不能使用第二个文本序列的任何信息;如果被掩蔽token在第二个文本序列中,那么使用一个文本序列中所有token和第二个文本序列中被掩蔽token的左侧所有token预测被掩蔽token。

  token掩码的概率为15%,在被掩掉的token中,有80%使用[MASK]替换,10%使用字典中随机词进行替换,10%保持越来token不变,与BERT模型一致。此外,在80%的情况下,每次随机掩掉一个token,在剩余的20%情况下,掩掉一个二元token组或三元token组。

  使用1/3的数据进行双向语言模型优化,1/3的数据进行序列到序列语言模型优化,1/6的数据进行从左向右的单向语言模型优化,1/6的数据进行从右向左的单向语言模型优化

  A:每个batch为一个任务,2个双向语言模型任务,2个序列到序列语言模型任务,1个左向右的单向语言模型任务,1个从右向左的单向语言模型,每跑一个任务进行一次累计梯度,跑完一轮所有任务,执行一次反向传播。并且我司开源了UniLM预训练中文模型,见:

  首先,按照一定的比例对于原始输入序列进行随机MASK操作得到新序列;其次,将新序列作为生成器模型的输入,生成器模型对MASK的token进行预测,获取生成序列;

  之后,将生成序列作为判别器模型的输入,判别器模型对生成序列每一个元素进行预测,判断是否是原始文本;

  任务本质是获取效果较好的判别器,而判别器任务,就是一个Replaced Token Detection任务,预测替换词语是否为原始文本词语;而存在生成器模型的原因是直接使用随机替换的词语效果不好。

  其实不是GAN模型,句子的字词是离散的,梯度在判别器使用生成器结果时就断了,判别器的梯度无法传给生成器,生成器的训练目标还是MLM。

  判别器的任务相对来说容易些,RTD loss相对MLM loss会很小,因此加上一个系数,论文提供的参数为50。

  在相同参数下(生成器和判别器结构一致),不共享权重下的模型效果最差,共享所有权重的效果最好,只共享token embedding层的效果只比共享所有权重差一点点。原因是,生成器是一个MLM任务,在模型预测时softmax建立在词典的所有词之上,反向传播会更新所有token 的embedding,因此生成器对token embedding层的学习效果更好。最后论文作者只使用了token embedding共享策略。并且实验发现生成器的大小在判别器的1/4到1/2之间效果是最好的。ELECTRA论文见:

  BART模型的预训练是对原始文本破坏再重建,因此损失函数为decoder的输出与原始文本的交叉熵。

  Token Masking:Token掩码,与BERT模型策略一致,随机抽取token,并用[MASK]标记进行替换。Token Deletion:Token删除,从输入中随机删除token,与掩码不同,该策略为了让模型学习哪些位置缺少输入信息。

  Text Infilling:文本填充,随机挑选一个文本片段(文本片段的长度符合λ = 3的泊松分布),并且使用一个[MASK]标记进行替换。当片段长度为0时,相当于在原始位置插入一个[MASK]标记。与SpanBERT模型不同的是,SpanBERT模型是使用片段长度个数的[MASK]标记进行替换。

  Sentence Permutation:句子排序,将文本按照句号进行分割,生成句子序列,然后将句子之间的顺序随机打乱。

  Document Rotation:文档旋转,随机选择一个token,然后将文本进行旋转,即以选择token作为文本的开头。该策略让模型学习文本

  MASS模型在编码器端输入一个被随机掩掉长度为k的连续片段的句子,然后通过解码器预测被掩掉的长度为k的连续片段。

  掩码token个数为K。当k=1时,编码器端掩掉一个token时,解码器端也仅预测一个token,如下图所示,这时的MASS模型和BERT模型的预训练方法相似。>

  从随机一个位置开始,连续mask掉句子长度50%的tokens。且参考BERT的811策略。

  训练过程中,在编码器端没有被掩掉的词,在解码器端都被掩掉,促使解码器需要从编码器端提取更多的信息来生成连续片段,这样促进了编码器-解码器结构的联合训练;并且在训练时,50%token不需要预测,可以节省50%的时间。MASS论文见:

  将原始文本的片段进行MASK,并用特定的字符进行占位,将其输入到编码器中;解码器为连续输入特定的占位符,预测其原始文本内容。>

  在掩码概率10%、15%、25%、50%的四种策略中,15%的策略最优;(也反向说明了BERT掩码15%的策略,不是空穴来风)

  刘聪NLP:ACL2021论文之ChineseBERT:融合字形与拼音信息的中文预训练模型

  刘聪NLP:SIGIR2021之IDCM模型: 文档内部级联选择段落服务于文档排序

  刘聪NLP:ACL2020论文整理之问题生成、自然语言推理、预训练语言模型及部分应用、QA问答系统及机器阅读理解