《RoBERTa:A Robustly Optimized BERT Pretraining Approach》论文笔记

一、摘要

  1. 预训练模型在语言模型中起到了很大的作用,但是训练成本很高。并且很多预训练模型都是使用不同大小的私有数据集进行训练超参数的选择也会直接对结果产生影响。
  2. 本文提出的模型仔细考虑了许多关键超参数和训练集大小的影响。
  3. 本文发现Bert模型没有充分得到训练,但是仍然可以超过其他模型的效果。

二、介绍

  1. 本文是基于Bert模型提出了RoBERTa模型。主要改进有以下四个方面:
    1. 使用更多的批量、更多的数据训练更长的时间
    2. 移除了Bert模型中next sentence prediction objective
    3. 可以训练更长的序列
    4. 使用了动态masking
  2. RoBERTa模型在CC-NEWS数据集上进行训练,并在GLUE和SQUAD数据集上取得了较好的成果

三、背景

本文中,这部分主要是对原始的Bert模型进行了介绍,包括的知识点主要有以下几个方面:

  1. Bert模型运用了Masked Language Model和Next Sentence Prediction进行训练。
  2. BERT模型使用的是Adam优化器,超参数β1 = 0.9, β2 = 0.999, ǫ = 1e-6,权重衰减参数为0.01.
  3. 学习率在前10000步逐渐增加到1e-4,然后线性衰减
  4. dropout参数为0.1
  5. batch=256,token_length=512

四、实验设置

  1. 实验的超参数基本沿用了Bert模型的参数。
  2. 文章发现模型结果对于Adam优化器的参数很敏感。经过对比发现当训练更大的batch时,设置β2 = 0.98更为稳定。
  3. 原始Bert模型中,在训练过程的前90%的时候,采用了随机注入短序列的方法。本文的实验中全部使用的是足够长度的序列

五、训练过程分析

  1. 动态Masking和静态Masking

    最原始的Bert模型采用的是静态mask,也就是选取序列中的15%个token进行mask,然后在训练过程中保持不变。

    RoBERTa模型为了避免每次都使用相同的mask,采用了改进版本的静态mask。具体上,同一个训练数据被重复10次,10次都使用不同的mask,然后训练40个epochs。

    此外,作者还提出了动态mask,每次想模型输入数据,都使用不同的mask。

    实验结果表明:采用动态mask效果会稍微好一点

  2. 模型输入格式和Next Sentence Prediction

    在原始的Bert模型中,原文作者认为Next Sentence Prediction对于模型起到很重要的作用。

    但是最近的研究表明,NSP或许是可以删去的。

    为了比较区别,做了如下的对照试验:

    1. SEGMENT-PAIR+NSP:和原始的bert模型一致,序列有两部分,来自于同一文档或不同文档的片段(片段级别
    2. SENTENCE-PAIR+NSP:和第一种类似,序列有两部分,来自于同一文档或不同文档的句子(句子级别
    3. FULL-SENTENCES:删除了NSP Loss。序列来自于文档,存在跨文档的可能性,加入分隔符进行区别
    4. DOC-SENTENCES:删除了NSP Loss。序列来自于同一文档,不存在跨文档的可能性

    实验结果表明:发现移除NSP会比原始Bert模型稍微好一点。FULL-SENTENCES和DOC-SENTENCES则是差不多效果

  3. 使用更大的batch进行训练

    之前的研究就已经表明,使用大量的小批量进行训练在训练速度和结果上都会更好。

    原始的Bert模型使用batchsize=256的模型训练1M个epoch,这等价于batchsize=2K的模型训练125K个epoch,等价于batchsize=8K训练31K个epoch

    可以看到,更小的批量,能够能到更好的精确度。但是本文没有确定多大的batchsize最适合。

  4. 文本编码

    Byte-Pair Encoding(BPE)采用的是字符级和单词级的混合特征,依赖于subwords units。

    Unicode编码方式,Unicode字符会占据词汇表很大一部分,不太可取

    本文采用byte-level BPE,这样能使模型获得更多可学习的参数。

六、RoBERTa

​ RoBERTa模型是整合上述改进而提出来的模型。

​ RoBERTa模型采用动态masking、FULL-SENTENCES without NSP、更多的小批量、byte-level BPE。

七、总结

​ 本文是针对预训练模型计算贵、bert模型训练不充分进行改进。移除了NSP,采用更小的batch、动态masking获得更好的效果。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值