RoBERTa A Robustly Optimized BERT Pretraining Approach

Abstract

Devlin等人在 BERT Pre-training of Deep Bidirectional Transformers for Language Understanding 提出的BERT预训练研究虽然已达到最优结果,但

  • 训练成本比较高,很难彻底得到训练
  • 训练的时候通常是在不同大小的私有数据集上进行训练的,很难判断具体哪个部分对结果有促进作用

所以,作者重新衡量了关键参数和数据集大小的影响,并提出了改进BERT的方法,即RoBERTa

1 Introduction

本文贡献:

  • 出了一套重要的BERT设计选择和培训策略,并引入了能够提高下游任务绩效的备选方案

  • 使用了一个新的数据集,CCNEWS,并确认使用更多的数据进行预训练进一步提高了下游任务的性能

  • 训练改进表明,在正确的设计选择下,masked language model的预训练可以与所有其他最近发表的方法相媲美

2 Background

BERT

预训练有两个目标:

  • Masked Language Model (MLM)

    15% token进行替换,其中80%被替换为 [MASK]替换,10%保持不变,10%被随机选择的 token替代。

  • Next Sentence Prediction (NSP)

    用于预测两句话在原文中是否相邻。正例和负例的采样概率相等。NSP目标旨在提高下游任务的性能

BERT的优化算法中,Adam参数:β1=0.9,β2=0.999,ϵ=le−6β_1=0.9,β_2=0.999,\epsilon=le-6β1​=0.9,β2​=0.999,ϵ=le−6,L2L_2L2​重量衰减0.01

3 Experimental Setup

GPU

数据集介绍

各大榜单介绍

4 Training Procedure Analysis

4.1 Static vs. Dynamic Masking
  • 静态Masking

    对每一个序列随机选择15%的Tokens替换成[MASK],为了消除与下游任务的不匹配,还对这15%的Tokens进行:

    (1)80%的时间替换成[MASK]

    (2)10%的时间不变;

    (3)10%的时间替换成其他词。

    但整个训练过程,这15%的Tokens一旦被选择就不再改变,也就是说从一开始随机选择了这15%的Tokens,之后的N个epoch里都不再改变了。这就叫做静态Masking。

  • 动态Masking

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

作者在只将静态Masking改成动态Masking,其他参数不变的情况下做了实验,动态Masking确实能提高性能。

4.2 Model Input Format and Next Sentence Prediction(with NSP and without NSP)

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

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

作者比较了四种方式:

  • SEGMENT-PAIR+NSP:这遵循BERT中使用的原始输入格式,并带有NSP损失。每个输入都有一对段,每个段可以包含多个自然句子,但总组合长度必须小于512个标记。
  • SENTENCE-PAIR+NSP:每个输入包含一对自然句子,从一个文档的连续部分或从单独的文档中采样。由于这些输入明显少于512个令牌,我们增加批处理大小,以便令牌的总数保持类似于SEGMENT-PAIR+NSP。我们保留NSP损失。
  • FULL-SENTENCES
  • DOC-SENTENCES:输入的构造类似于 FULL-SENTENCES,除了它们不能跨越文档边界。在文档末尾附近采样的输入可能小于512个令牌,因此在这些情况下,我们动态地增加批处理大小,以获得与 FULL-SENTENCES 类似的令牌总数。我们消除了NSP损失。

实验表明在MNLI这种推断句子关系的任务上,RoBERTa也能有更好性能。

4.3 Training with large batches

原始的 BERTbaseBERT_{base}BERTbase​​​: batch_size=256,训练步数steps=1M。

RoBERTa: batch_size 为 8k。为什么要用更大的batch size呢?作者借鉴了在机器翻译中,用更大的batch size配合更大学习率能提升模型优化速率 和 模型性能 的现象,并且也用实验证明了确实BERT还能用更大的batch_size。

4.4 Text Encoding

Byte-Pair Encoding (BPE):BPE依赖于子词单元,而不是全词,子词单元是通过对训练语料库进行统计分析提取的。**主要通过wordpiece技术将word分解为更为细粒度的片段。RoBERTa采用BPE,获得了超过5w个token(BERT只有3w)。**Radford等人(2019)引入了一个聪明的BPE实现,它使用字节而不是unicode字符作为基本子字单元。使用字节可以学习一个中等大小(50K units)的子单词词汇表(原始BERT使用30k),它仍然可以编码任何输入文本,而不会引入任何“un-known”标记。

5 RoBERTa(实验结果)

借鉴XLNet用了比BERT多10倍的数据,RoBERTa也用了更多的数据,性能确实有所提升,但相应的也需要更长的训练时间。

RoBERTa参与了SQuAD、RACE和GLUE的打榜,并与当时最好的模型XLNet进行比对,结果如下:

GLUE Results

SQuAD Results

RACE Results

论文阅读——RoBERTa A Robustly Optimized BERT Pretraining Approach相关推荐

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

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

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

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

  3. RoBERTa: A Robustly Optimized BERT Pretraining Approach

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

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

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

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

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

  6. RoBERTa:A Robustly Optimized BERT Pretraining Approach(2019-7-26)

    模型概述 RoBERTa可以看作是BERT的改进版,从模型结构上讲,相比BERT,RoBERTa基本没有什么创新,它更像是关于BERT在预训练方面进一步的探索.其改进了BERT很多的预训练策略,其结果 ...

  7. 【论文阅读笔记】BART: Denoising Sequence-to-Sequence Pre-training for Natural Language Generation, Translati

    BART:去噪序列到序列的预训练自然语言生成.翻译和理解 动力 自监督方法在广泛的NLP任务中取得了显著的成功.最成功的方法是masked language model的变体去噪的自编码器.训练去噪的 ...

  8. 论文阅读Unsupervised Corpus Aware Language Model Pre-training for Dense Passage Retrieval

    密集文本检索的无监督语料库感知语言模型预训练 ACL2022 论文链接 摘要 最近的研究证明了使用微调语言模型(LM)进行密集检索的有效性.然而,密集检索器很难训练,通常需要经过精心设计的微调管道才能 ...

  9. Roberta 充分训练的bert模型

    RoBERTa是在论文<RoBERTa: A Robustly Optimized BERT Pretraining Approach>中被提出的.此方法属于BERT的强化版本,也是BER ...

最新文章

  1. python如何读取excel数据-python怎么读取excel中的数值
  2. NBU备份之一 Windows操作系统BMR的配置
  3. Eclipse、NetBeans、IntelliJ集成开发工具 Java IDE
  4. ese如何实现支付 nfc_海运费如何实现快捷支付?答案有了
  5. mysql jdbc字符编码_java中jdbc/sql出现编码问题
  6. 04737 c++ 自学考试2019版 第四章课后程序设计题1
  7. python交互模式下tab键自动补全
  8. linux下面实现执行rm命令,显示do not use rm command
  9. 再学 GDI+[22]: TGPLinearGradientBrush - 之一: TLinearGradientMode
  10. 7个等级 容灾等级_在餐厅吃饭竟是7级风险!最新社交风险等级出炉!
  11. OBS---环境配置之#include D3DX10.h报错
  12. angr进阶(2)C++程序的处理
  13. 宋宝华:深入理解cache对写好代码至关重要
  14. 使用Word批量删除换行和空白行
  15. Android中使用SVG矢量图打造多边形图形框架
  16. hotmail手机端_hotmail邮箱官方版|hotmail邮箱手机版下载_v7.8.2_9ht安卓下载
  17. Android 时间格式化
  18. 一篇博客让你横扫数电常考所有集成电路芯片(已更新50%持续更新)
  19. text/css什麼意思
  20. Android 自定义相机 Camera 图片方向问题

热门文章

  1. 搭建简单文件和下载服务器的总结
  2. 【安信可ESP32语音开发板专题②】ESP32-Audio-Kit 开发板适配百度dueros例程实现在线语音功能,与开发板对话聊天。
  3. 2021年校招启动:清微智能等你来
  4. cfc 教程_Google CFC
  5. 微信小程序---上拉/下拉获取信息组件
  6. Java、JSP网上电子商城服装销售系统
  7. c语言桥牌游戏,桥牌游戏规则
  8. 高速USB转8串口产品设计-RS485串口
  9. ES6模板字符串的扩展
  10. oracle突然查询变慢,[转] Oracle sql 查询突然变慢 -- 案例分析