roberta

roberta的准备工作
在这里插入图片描述

  • attention刚开始应用于CV领域,后来迁移到NLP领域
  • 后来基于attention提出了transformer
  • 利用transformer的堆叠形成了bert
  • roberta是对bert的改进

roberta是多任务的(即可以解决不同的NLP任务),模型中间的代码块可以复用。只要修改一下模型的输入输出,下载别人预训练的权重集,用在roberta模型上,再用自己的数据集进行微调

在这里插入图片描述

  • roberta在bert的基础上做了8个方面的改进

1、more data
roberta预训练的数据量更大(160G的训练文本,bert只有16G),选取了不同领域不同任务上的数据集

4、学习率
刚开始,学习率不断增大,到临界值的时候,学习率开始递减

5、预训练移除了NSP任务
原本的Bert为了捕捉句子之间的关系,使用了NSP任务进行预训练,就是输入一对句子A和B,判断这两个句子是否是连续的。在训练的数据中,50%的B是A的下一个句子,50%的B是随机抽取的。

而RoBERTa去除了NSP,而是每次输入连续的多个句子,直到最大长度512(可以跨文章)。这种训练方式叫做(FULL - SENTENCES),而原来的Bert每次只输入两个句子。

6、text encoding
byte-pair encoding(BPE)是字级别和词级别表征的混合

7、whole word masking(wwm)
简单来说,原有基于WordPiece的分词方式会把一个完整的词切分成若干个子词,在生成训练样本时,这些被分开的子词会随机被mask。在全词Mask中,如果一个完整的词的部分WordPiece子词被mask,则同属该词的其他部分也会被mask,即全词Mask。

8、dynamic mask(动态mask)
bert在训练模型时,一个句子会被多次喂到模型中用于参数学习,但是Google并没有在每次都mask掉这些单词,而是在确定要Mask掉的单词之后,80%的时候会直接替换为[Mask],10%的时候将其替换为其它任意单词,10%的时候会保留原始Token。
RoBERTa使用了动态mask:每次向模型输入一个序列时都会随mask(mask哪些词不确定)。这样,在大量数据不断输入的过程中,模型会逐渐适应不同的mask策略,学习不同的语言表征。

原来Bert对每一个序列随机选择15%的Tokens替换成[MASK],为了消除与下游任务的不匹配,还对这15%的Tokens进行(1)80%的时间替换成[MASK];(2)10%的时间不变;(3)10%的时间替换成其他词。但整个训练过程,这15%的Tokens一旦被选择就不再改变,也就是说从一开始随机选择了这15%的Tokens,之后的N个epoch里都不再改变了。这就叫做静态Masking。

而RoBERTa一开始把预训练的数据复制10份,每一份都随机选择15%的Tokens进行Masking,也就是说,同样的一句话有10种不同的mask方式。然后每份数据都训练N/10个epoch。这就相当于在这N个epoch的训练中,每个序列的被mask的tokens是会变化的。这就叫做动态Masking。

  • 取消了NSP,并且数据连续从一个文档中获得

  • byte-pair encoding(BPE)是字级别和词级别表征的混合

  • 训练更久:超过500K steps

  • 更大批次:使用了超大(8K)的 batchsize

  • 调整优化器的参数

  • 更大更多样性的数据

  • 使用 whole word mask 和 dynamic mask

  • 训练更长的序列

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值