Bert的进化

自从bert横空出世、横扫各大榜单之后,基于bert的各种魔改模型便层出不穷,roberta、ernie、uer、nezha、macbert等,下面依次说说各自的亮点。

RoBERTa

在XLNet全面超越Bert后没多久,Facebook提出了RoBERTa(a Robustly Optimized BERT Pretraining Approach)。再度在多个任务上达到SOTA。它在模型层面没有改变Google的Bert,改变的只是预训练的方法。

  • 静态Masking 变成 动态Masking
  • 摒弃了NSP,没暖用
  • 更大的batch、更大的数据集和更长的训练时间

ERNIE

对于Masked LM,BERT的做法,在英文中是以"word"为粒度进行mask操作,在中文中是以"字"为粒度进行mask操作。本文作者认为,这种做法没有考虑到句子中可能包含的先验知识(prior knowledge)。作者通过实验表明,将句子中的先验知识融合进语言模型的预训练中可提高下游中文任务的效果,并将这种模型称之为——ERNIE。
对于知识融合策略,作者并不是直接将知识信息作为embedding直接加到原始word embedding中,而是一种多阶段知识掩码策略(multi-stage knowledge masking strategy)。

  • 第一阶段:Basic-Level Masking。就是BERT的做法,在英文中是以"word"为粒度进行mask操作,在中文中是以"字"为粒度进行mask操作。经过这一阶段,模型学习到了一个最基础的基于word或者字的语言表征。
  • 第二阶段:Phrase-Level Masking。对于英文,作者使用词法分析工具确定句子中短语的边界。对于中文,使用语言依赖分词工具得到词/短语的边界。在本阶段,作者仍然将基于word或字的语言单位作为输入,然后mask的基本单位就是phrase了。这样,经过这一番操作,phrase信息就被加入到了word embedding之中。
  • 第三阶段:Entity-Level Masking。不同于phrase,entity更偏向于人名、地理名称、组织名称和产品名称等等。本阶段的mask基本单位就是entity

nezha

相比于BERT,NEZHA的主要改进是在位置编码上,它使用到了Functional Relative Positional Encoding,即函数式相对位置编码。简单说说它的来历:我们知道Transformer和BERT都使用到了位置编码,一个是函数式位置编码,即使用正余弦函数来对位置进行编码;另一个是参数式位置编码,即把位置嵌入理解成模型参数的一部分,通过预训练来学习。它们都是绝对位置编码。后来《Self-attention with relative position representations》提出一个参数式的相对位置编码,将相对位置信息加到了Transformer的自注意力层;Transformer-XL和XLNet提出了函数式相对位置编码。所以本文主要的内容就是采用函数式相对位置编码。
Reducing bert pre-training time from 3 days to 76 minutes》专为大batch size分布式训练设计的,大batch size是加速训练的有效方法,然而如果不谨慎调整学习率,当batch size超过一个阈值,性能会受到较大的损害。LAMB优化器采用了一个通用自适应策略,通过理论分析来提供收敛的insights(就是朝着收敛的方向走),可以在最大到30k batch size的情况不影响性能来加速训练,从而使得预训练的时间从3天降低到76分钟。

macbert

MacBERT 的主要工作是在RoBERT的基础上进行了几方面的改进,尤其在 Mask的策略。预训练模型MacBERT,使用相似的词替换mask词能减缓预训练和微调两个阶段的误差,已经证实能有效的提高下游任务的现。
简单介绍一些概念:
全词Mask, Whole Word Masking (wwm):
原始文本: 使用语言模型来预测下一个词的probability。
全词Mask输入: 使 用 语 言 [MASK] [MASK] 来 [MASK] [MASK] 下 一 个 词 的 [MASK] [MASK] [MASK] 。
BERT的随机mask方法如下:
原始Mask输入: 使 用 语 言 [MASK] 型 来 [MASK] 测 下 一 个 词 的 pro [MASK] ##lity 。
MacBERT:
MLM as correction, 使用校正做为Mask的语言模型, 通过用相似的单词mask,减轻了预训练和微调阶段两者之间的差距

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值