模型概述

RoBERTa可以看作是BERT的改进版,从模型结构上讲,相比BERT,RoBERTa基本没有什么创新,它更像是关于BERT在预训练方面进一步的探索。其改进了BERT很多的预训练策略,其结果显示,原始BERT可能训练不足,并没有充分地学习到训练数据中的语言知识。

RoBERTa在模型规模、算力和数据上,与BERT相比主要有以下改进:

更大的bacth size。RoBERTa在训练过程中使用了更大的bacth size。尝试过从256到8000不等的bacth size。
更多的训练数据。RoBERTa采用了160G的训练文本,而BERT仅采用了16G的训练文本。
更长的训练步骤。RoBERT在160G的训练数据、8K的batch size上训练步骤高达500K。

RoBERTa在训练方法上对比BERT改进的地方有:去掉下一句预测(NSP)任务采用动态掩码采用BPE编码方式

总结一下,用一张图来表示:

模型优化

采用动态掩码

BERT中有个Masking Language Model(MLM)预训练任务,在准备训练数据的时候,需要Mask掉一些token,训练过程中让模型去预测这些token,这里将数据Mask后,训练数据将不再变化,将使用这些数据一直训练直到结束,这种Mask方式被称为Static Masking。

如果在训练过程中,期望每轮的训练数据中,Mask的位置也相应地发生变化,这就是Dynamic Masking,RoBERTa使用的就是Dynamic Masking。

在RoBERTa中,它具体是这么实现的,将原始的训练数据复制多份,然后进行Masking。这样相同的数据被随机Masking的位置也就发生了变化,相当于实现了Dynamic Masking的目的。例如原始数据共计复制了10份数据,共计需要训练40轮,则每种mask的方式在训练中会被使用4次。

取消NSP任务,使用FULL-SENTENCES构造数据的方式

BERT中在构造数据进行NSP任务的时候是这么做的,将两个segment进行拼接作为一串序列输入模型,然后使用NSP任务去预测这两个segment是否具有上下文的关系,但序列整体的长度小于512。

然而,RoBERTa通过实验发现,去掉NSP任务将会提升down-stream任务的指标。如图所示:

其中,SEGMENT-PAIR、SENTENCE-PAIR、FULL-SENTENCES、DOC-SENTENCE分别表示不同的构造输入数据的方式,RoBERTa使用了FULL-SENTENCES,并且去掉了NSP任务

FULL-SENTENCES表示从一篇文章或者多篇文章中连续抽取句子,填充到模型输入序列中。也就是说,一个输入序列有可能是跨越多个文章边界的。具体来讲,它会从一篇文章中连续地抽取句子填充输入序列,但是如果到了文章结尾,那么将会从下一个文章中继续抽取句子填充到该序列中,不同文章中的内容还是按照SEP分隔符进行分割。

采用BPE编码

Byte-Pair Encodeing(BPE)是一种表示单词,生成词表的方式。BERT中的BPE算法是基于字符的BPE算法,由它构造的”单词”往往位于字符和单词之间,常见的形式就是单词中的片段作为一个独立的”单词”,特别是对于那些比较长的单词。比如单词woderful有可能会被拆分成两个子单词”wonder”和”ful”。

不同于BERT,RoBERTa使用了基于Byte的BPE,词表中共计包含50K左右的单词,这种方式的不需要担心未登录词的出现,因为它会从Byte的层面去分解单词。

更大的数据

相比BERT, RoBERTa使用了更多的训练数据:

更长的训练步骤

RoBERTa随着训练数据和训练步数的增加,模型在down-stream的表现也不断提升。

更大的batch size

RoBERTa通过增加训练过程中Batch Size的大小,来观看模型的在预训练任务和down-stream任务上的表现。发现增加Batch Size有利于降低保留的训练数据的Perplexity,提高down-stream的指标。

另外,RoBERTa参考transformer的改进,使用β1\beta_1β1​=0.9,β2\beta_2β2​=0.999,ϵ\epsilonϵ=1e-6,weight_decay_rate=0.01,num_warmup_steps=10000,init_lr=1e-4的自适应学习率的Adam优化器。

模型参考

论文地址:https://arxiv.org/abs/1907.11692

代码地址:https://github.com/pytorch/fairseq

RoBERTa:A Robustly Optimized BERT Pretraining Approach(2019-7-26)相关推荐

  1. RoBERTa: A Robustly Optimized BERT Pretraining Approach(通篇翻译)

    RoBERTa:一种稳健优化的BERT预训练方法 Yinhan Liu ∗ § Myle Ott ∗§ Naman Goyal ∗§ Jingfei Du ∗§ Mandar Joshi † Danq ...

  2. 【预训练语言模型】RoBERTa: A Robustly Optimized BERT Pretraining Approach

    ·阅读摘要:   本文在BERT模型的基础上进行了一些改进,提出了RoBERTa模型,并证明了RoBERTa比BERT的效果更好一些. ·参考文献:   [1] RoBERTa: A Robustly ...

  3. 论文阅读——RoBERTa A Robustly Optimized BERT Pretraining Approach

    RoBERTa A Robustly Optimized BERT Pretraining Approach Abstract Devlin等人在 BERT Pre-training of Deep ...

  4. 《论文阅读》RoBERTa: A Robustly Optimized BERT Pretraining Approach

    <论文阅读>RoBERTa: A Robustly Optimized BERT Pretraining Approach 简介 想法来源 数据集的选择 创新点 总结 期刊:arxiv 2 ...

  5. RoBERTa: A Robustly Optimized BERT Pretraining Approach

    1 简介 本文根据2019年<RoBERTa: A Robustly Optimized BERT Pretraining Approach>翻译总结的. RoBERTa:稳健优化BERT ...

  6. RoBERTa: A Robustly Optimized BERT Pretraining Approach​​​​​​

    Abstract Dev 目录 Abstract 1 Introduction 本文贡献: lin等人在 BERT Pre-training of Deep Bidirectional Transfo ...

  7. mootools系列:打造属于你自己的Popup(弹出框)——扩展功能篇

    为弹出框(Popup)添加"关闭(×)"按钮 如弹出框结构代码所示,关闭按钮标示"×"是放置在一div中的.使其具有关闭整个弹出框的功能,只要在创建该div时, ...

  8. 疑问:当流量被封禁之后(论资本之力):防流量被恶意盗挖(抛砖篇)

    疑问:当流量被封禁之后(论资本之力):防流量被恶意盗挖(抛砖篇) 从没想过会有这么一天,带着这个疑问,写下今天的最后一篇博客. 如何防控平台流量被恶意盗挖? 疑问1:如何防控平台流量被恶意盗挖? 疑问 ...

  9. uni-app开发:tabar组件与顶部导航栏(功能开发篇)

    uni-app开发:tabar组件与顶部导航栏(含右侧icon点击功能)[结合:案例Demo截图] 一.效果图 · 截图: 二. tabar组件 + 顶部导航栏(含右侧icon点击功能) 组件的代码调 ...

最新文章

  1. Angular系列学习二:基本的组件说明、自定义组件和部分细节说明
  2. 【七招破解WinXP系统访问网络变慢的故障】
  3. Mysql的垂直分表-新建
  4. case when then else 详解
  5. 进入登录页时,用户名输入框自动聚焦、按enter键让密码框聚焦,完整输入信息后登录
  6. Python3正则表达式
  7. C/C++ 通过初始化列表和构造函数内赋值初始化成员变量的区别
  8. 双11首日全国共揽收快递包裹5.69亿件 同比增长28.54%
  9. 小鹏汽车拟挂牌港交所 披露了一些有意思的数据
  10. 软件工程第1次阅读作业
  11. unity描边发光shader_Unity Shader 边缘高亮、描边
  12. 计算机木马不会主动传播什么疾病,研究如何制作自动运行的木马病毒以及如何传播...
  13. Lenovo联想键盘关闭fn功能恢复F1-F12按键
  14. 图网络模型原理详解(Graph Network)
  15. Ubuntu下VSCode使用等宽字体设置
  16. mac 上装windows系统 win10 没声音 耳机也没声音
  17. mysql 升级mariadb_mariadb升级
  18. 【单片机笔记】基于LM358的差分放大,电流检测电路
  19. 10.高光反射Blinn
  20. 给一个喝酒青年的公开状

热门文章

  1. Linux电源管理(四)CPUFreq
  2. 抢票回家,小心别被恶意软件缠上身
  3. SSM之环境整合(idea+maven 收藏起来以后用)
  4. golang 获取文件名
  5. 如何设置电脑永不熄屏
  6. Sublime Text 3 Build 3176 Windows、MacOS、Linux破解方法
  7. 【天文】基于Matlab模拟太阳位置跟踪和日行迹现象
  8. C - The Suspects
  9. TCP/IP协议里面的网关地址和ip地址有什么区别?
  10. 经典微博爱情语录:;有一种智慧叫低调...