关于其他预训练模型的问题

XLNet与BERT的区别是什么?

自回归语言模型(Autoregressive LM)存在只能利用文本单向信息的问题。自编码语言模型(Autoencoder LM),比如BERT,也存在一是忽略被遮挡的Token之间的关系,二是微调时由于没有被遮挡的Token,导致微调过程与预训练过程不一致的问题。XLNet融合了自回归和自编码语言模型的优势,采用了排列语言模型PLM(Permutation Language Model),将句子随机排列,然后用自回归的方法训练,从而获得双向信息并且可以学习Token之间的依赖关系。PLM的实现需要用到双流自注意力机制(Two-Stream Self-Attention),两个流分别为内容表征单元(content representation)和询问表征单元(query representation),内容单元只包含当前Token的内容信息,询问单元只包含当前Token的位置信息。另外XLNet还使用了Transformer-XL中的分割循环机制(Segment Recurrence Mechanism)和相对位置编码(Relative Positional Encoding)进行优化,所以相比BERT,其对长文本的支持更加有效。

BERT-WWM对BERT的改进?

中文和英文不同,英文中最小的Token就是一个单词,而中文中最小的Token却是字,WWM是全词遮挡(Whole Word Masking),它相比于BERT的改进是用[MASK]标签替换一个完整的词而不是字。

RoBERTa对BERT的改进?

在BERT基础上做了几点调整:一是采用了更大的batch size,更多的数据,更长时间的训练;二是使用了动态遮挡(Dynamic Masking),将原始语料复制10份,每一份语料随机选择15%的token进行mask,类似于cross-validation的方式,每次向模型提供输入时动态生成mask;三是弃用了下一句预测NSP(Next Sentence Prediction)任务,每次输入多个连续的句子。

ALBERT对BERT的改进?

在BERT基础上做了几点调整:一是对嵌入层的参数进行因式分解(Factorized embedding parameterization),在BERT中,词表的embedding size(E)和transformer层的hidden size(H)是等同的,所以E=H。但是ALBERT认为,词表的embedding没有上下文依赖的表述,而隐藏层的输出值不仅包括了词本身的意思还包括一些上下文信息,理论上来说隐藏层的表述包含的信息应该更多一些,因此应该让H>>E。ALBERT首先把one-hot映射到低维空间,大小为E,再映射到隐藏层。这其实类似于做了矩阵的分解;

二是跨层参数共享(Cross-layer parameter sharing),将全连接层与自注意力层都进行参数共享;

三是使用句子顺序预测SOP(Sentence-order Prediction)任务代替下一句预测NSP(Next Sentence Prediction)任务,SOP是在同一个文档中选择两个文本段落,其负样本是将正样本两个文本段落位置调换,这样就只关注文本段落的顺序而并没有主题方面的影响;

四是去掉了dropout,增加了数据。

DeBERTa对BERT的改进?

1 Disentangled Attention(注意力分散机制)

将位置信息和内容信息交叉做attention。

2 Enhanced Mask Decoder (增强型mask decoder)

BERT 是在输入层引入绝对位置。而在DeBERTa,是在transformer层之后,在softmax 层(masked token 预测)之前,引入绝对位置。DeBERTa使用绝对位置的方法比BERT的好,我们推断在BERT中较早的引入绝对位置可能伤害了模型,使其不能足够的学习相对位置。

3 Virtual Adversarial Training(对抗训练)

DeBERTa预训练里面引入的对抗训练叫SiFT,比FGM复杂一些,他攻击的对象不是word embedding,而是embedding之后的layer norm。

XLM-Roberta的预训练任务是什么?

CLM (Causal Language Modeling):因果语言建模,对给定句子预测后一个单词的概率

MLM (Masked Language Modeling):BERT的MASK任务

TLM (Translation Language Modeling):在source句子和target句子中都随机mask一些词。当要预测英语句子中被mask的词时,模型首先需要从英语句子的上下文入手,特别地,如果模型仅通过英语句子不足以推断出被mask的单词时,还能够注意到对应法语的翻译内容。

Pre Norm与Post Norm的区别?

Post Norm是在做完残差计算之后,再对特征做LayerNorm;而Pre Norm则是在残差块内,先对输入进行LayerNorm,再做计算。在同一设置下,Pre Norm的效果是要优于Post Norm的,但是单独调整的话,Post Norm的效果是更好的。

Pre Norm结构一个t层的模型与t+1层和,近似等效于一个更宽的t层模型,无形地增加了模型的宽度而降低了模型的深度。相对好训练,但某种意义上并不是真正的 deep。

Post Norm保证了主干方差恒定,每层对 x 都可能有较大影响,代价则是模型结构中没有从头到尾的恒等路径,梯度难以控制。通常认为会更难收敛,但训练出来的效果更好。

Post Norm在残差之后做归一化,对参数正则化的效果更强,进而模型的鲁棒性也会更好;Pre Norm相对于Post Norm,因为有一部分参数直接加在了后面,不需要对这部分参数进行正则化,正好可以防止模型的梯度爆炸或者梯度消失。

BERT、GPT、ELMO之间的区别是什么?

(1)特征提取器:ELMO采用LSTM进行提取,GPT和bert则采用Transformer进行提取。很多任务表明Transformer特征提取能力强于LSTM,ELMO采用1层静态向量+2层LSTM,多层提取能力有限,而GPT和BERT中的Transformer可采用多层,并行计算能力强。

(2)单/双向语言模型:

GPT采用单向语言模型,ELMO和BERT采用双向语言模型。但是ELMO实际上是两个单向语言模型(方向相反)的拼接,这种融合特征的能力比BERT一体化融合特征方式弱。

GPT和BERT都采用Transformer,Transformer是encoder-decoder结构,GPT的单向语言模型采用decoder部分,decoder的部分见到的都是不完整的句子;BERT的双向语言模型则采用encoder部分,采用了完整句子。

GPT是基于自回归模型,可以应用在NLU和NLG两大任务,而原生的BERT采用的基于自编码模型,只能完成NLU任务,无法直接应用在文本生成上面。 

Longformer的Self-Attention模式是什么?

Sliding Window Attention(滑窗机制)

对于每一个token,只对其附近的w个token计算attention,复杂度为O(n×w),其中n为文本的长度。

Dilated Sliding Window(空洞滑窗机制)

对每一个token进行编码时,普通的滑窗机制只能考虑到长度为w的上下文。作者进一步提出空洞滑窗机制,在不增加计算负荷的前提下,拓宽视野范围。在滑动窗口中,被attented到的两个相邻token之间会存在大小为d的间隙,因此每个token的视野范围可达到d × w。

Global+Sliding Window(融合全局信息的滑窗机制)

以上两种Attention机制还不能完全适应task-specific的任务,因此Global+Sliding Window的Attention机制被提出来。它设定某些位置的token能够看见全部的token,同时其他的所有token也能看见这些位置的token,相当于是将这些位置的token"暴露"在最外面。

这些位置的确定和具体的任务有关。例如对于分类任务,这个带有全局视角的token是"CLS";对于QA任务,这些带有全局视角的token是Question对应的这些token。

Big Bird的Self-Attention模式是什么?

Random Attention: 对于每一个 token_i,随机选择 r 个 token 计算注意力。

Window Attention: 用滑动窗口表示注意力计算的范围,主要是捕获 token_i 的局部信息,窗口大小为 w。

Global Attention: 全局 Attention,Big Bird 将 g 个 token 设置为 global token,所有 token 都要和 global token 计算 Attention Score。

Theseus蒸馏方法是什么?

基于模块替换的模型压缩方法。

现在假设我们有一个12层的BERT,我们直接用它在下游任务上微调,得到一个效果还不错的模型,我们称之为Teacher,Teacher的权重都被固定住。12层的Teacher被分为3个模块,跟Student的3层模型一一对应,训练的时候,随机用Student层替换掉Teacher的对应模块,然后直接用下游任务的优化目标进行微调(只训练Student的层)。训练充分后,再把整个Student单独分离出来,继续在下游任务中微调一会,直到验证集指标不再上升。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值