文献阅读:Should You Mask 15% in Masked Language Modeling?

2022-04-13 16:51:30 浏览数 (2)

  • 文献阅读:Should You Mask 15% in Masked Language Modeling?
    • 1. 内容简介
    • 2. 实验考察
      • 1. mask比例考察
      • 2. corruption & prediction
      • 3. 80-10-10原则考察
      • 4. mask选择考察
    • 3. 结论 & 思考
  • 文献链接:https://arxiv.org/pdf/2202.08005.pdf

1. 内容简介

这是前段时间看到的陈丹琦女神的新工作,刚好凑上她获得斯隆奖,就下载下来看了一下。

这篇文章算是一篇偏预训练过程的基础研究性质的文章,考察了一下Devlin et al等在bert预训练当中提出提出的mask法则,即mask掉15%的token是否是最优的选择,然后对于mask的内容,80-10-10原则是否真的有效并且可以提供正向的收益。

我们回顾一下Devlin et al在BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding提出的mask准则以及其对应的原因:

  1. 将15%的单词进行mask然后进行预测,采用15%的原因是在训练难度和训练速度之间取了一个balance;
  2. 在mask单词当中使用了80-10-10原则,即80%的单词使用[MASK]进行替换,10%的单词保留其原本的单词,最后10%的单词替换成任意其他的单词,使用这个策略的原因在于说为了保持训练任务以及下游任务的一致性。

陈丹琦她们就是针对这两个点进行了更进一步的考察,想知道这两个结论是否真的和他们宣称的一样在work,不过她的结论和之前的经验结果不太一致,她的最终结论是:

  1. 15%的mask比例并非最优解,采用40%的mask比例可以超越之前的效果;
  2. 80-10-10原则事实上并没有真是的帮助,直接全部采用[MASK]可以得到更好的效果。

个人感觉,这篇文章有点像是Roberta,就是针对Bert超参的一个细化研究,不过似乎这次的结果不是被很多人认可,今天刚刷到了一篇关于这篇文章的博客《陈丹琦组掩蔽语言模型研究引争议:15%掩蔽率不是最佳,但40%站得住脚吗?》,似乎对文章的结果存在一定的异议。

概括来说文中并不怀疑作者的结果,但是怀疑这个现象产生的原因中[MASK]的占比并不是主因,而是因为对应实验下的参数调优才是导致了上述现象的主因,因为上述许多结果和2、3年来其他人的经验结果似乎并不一致,甚至有些大相径庭,无怪乎会引起争议。

鉴于我本人并没有做过bert模型的预训练考察,因此这里就不对这个结果本身做评论了,就只是把丹琦女神的工作整理记录一下。

不过个人还是觉得能够对大模型预训练做一些深层原理的考察这件事本身终究还是有意义的,毕竟个人看来现在的大模型真心就是个黑盒,有时候一堆奇技淫巧真心还不如调参影响大就很扯淡……

2. 实验考察

1. mask比例考察

文中首先考察的就是[MASK]的占比,文中调整了[MASK]文本的比例,然后对下游任务进行了一下考察。

原始的bert当中也提到说[MASK]比例越高,给出的上下文信息也就越少,因此模型学习的难度也就越大,但是相对的,每一条数据当中loss能够获取的信息量也会相应的变大,单位时间当中模型能够获得的信息量也就越大。

因此,陈丹琦她们就调整了[MASK]比例然后进行了实验,得到实验结果如下:

可以看到,在绝大多数任务当中,15%都不是最佳的[MASK]比例,40%相对而言可以在更多的任务当中获取更好的实验比例。

当然,这里存在一个隐患就是说由于[MASK]比例增大,因此单位时间内事实上模型使用到的训练数据事实上也是更多的,因此,可不可能说是只是在一定时间范围内模型性能上升的更快了,但是最终的模型效果也许没有那么大的提升甚至说可不可能反而被损坏了。

基于此,他们用24h的bert训练结果和更长时间的bert效果进行了比对,并对中间时间的效果进行了绘图展示,得到结果如下:

可以看到:

  • 增大[MASK]比例获得的模型效果的提升是稳定的,且即便让15%比例下的模型训练更长的时间,40%的模型效果依然是更加优秀的。

更一般的,她们还对不同尺寸的模型考察了mask比例对其结果的影响,具体得到结果如下:

可以看到:

  • 对于越大的模型,mask比例的增大越能够带来正向的收益。

综上,我们可以判断:

  • [MASK]比例提升到40%为模型带来的收益是稳定的。

2. corruption & prediction

在上述1的基础上,陈丹琦她们还对MLM的机制进行了更细化的考察。

如前所述,mask过程事实上是可以拆分为两部分的,一方面在于训练数据上,通过mask比例可以调整训练模型时的输入信息,而另一方面,被mask的部分又会在loss部分用来提供模型真正学习到的内容。

陈丹琦她们将这二者分别命名为corruption以及prediction。直觉上,我们希望prediction尽可能大,但是corruption却需要调整一个合适的值。

而在原版的bert训练过程当中,这两者事实上是完全一致的,即便他们在功效上其实有所区分。

因此,陈丹琦她们对于这个点进行了更加细致的考察,将这两部分进行了解耦,然后分别考察他们的效果。

不过她们的方法其实我个人感觉有点奇怪就是了,显然要是corruption > prediction倒是理解起来很简单,多mask一些结果,然后预测的时候只使用其中的部分计算loss就行了,而对于prediction > corruption的情况,陈丹琦她们采用的方式将一条数据拆分了多条,比如20%,40%,就是一条数据拆分两条,预测40%,然后两条数据分别mask20%。但是个人觉得这种方式比较奇怪,感觉训练中有数据泄露,而且如果我没有理解错的话她还将训练时长给拉长了对应的倍数,导致训练的充分度事实上存在一定的差异。个人感觉有点怪怪的……

而结论方面,她们给出的实验结果如下:

可以看到:

  • 减少prediction会使得模型训练效果下滑,而增大prediction可以优化模型的训练。

3. 80-10-10原则考察

除了mask的比例,文中还考察了一下mask的方式。

在原版的bert文献中,为了使得训练阶段与预测阶段尽可能一致,因此模型在mask方面做了一些额外的操作,即80%采用[MASK]符号标记,10%保留原始的token,剩下的10%则随即替换为其他的token。

文中陈丹琦她们对这种额外的操作进行了考察,具体结果如下:

结果发现,随即替换和保留对于结果并没有什么帮助,甚至会使得效果发生稳定的下降。

而后她们对具体每一层的与source的互信息进行了考察,得到结果如下:

可以看到:加入same策略之后靠后的层数会出现信息的恢复,而单纯的mask操作不会出现这种恢复,但是信息会趋于稳定,而random策略则显著增加了学习的难度,以至于后层的信息会出现持续的下滑。

因此,陈丹琦她们认为,不需要搞什么花里胡哨的策略,事实上只使用单纯的mask进行训练就行了……

4. mask选择考察

而除了mask的方式,她们还对mask的选择进行了考察。

当前流传比较广泛的包括了span-bert和PMI masking方式,这两个方法的本质都是说尽可能mask掉相互关联的部分,而不会出现比如一个词被mask了一半导致毫无意义的情况。

span bert是通过mask连续的部分来减少上述情况的发生概率,而PMI-Masking则更复杂一点,通过一些计算来进行确定。

但是陈丹琦她们宣称,虽然这两种策略在15%的mask比例的时候展现出了更好的效果,但是随着mask比例的增加,这两种策略并非是一直有效的,甚至可能会被随机mask超越。

关于这个现象,她们进行了更细化的考察,即考察随着mask比例的增加,随机mask的效果是否可以天然的实现上述两种mask希望达成的效果。

可以看到:当mask比例较大时,事实上随机mask天然的就能都实现上述两个策略期望达成的效果,因此事实上也没啥必要进行额外的操作……

3. 结论 & 思考

综上,结论而言,这篇文章给我的感觉就是一篇针对大模型预训练的调参优化文章,里面给出的一些结论,比如不需要span-bert或者不需要80-10-10策略这些倒是感觉挺有意思的,不过也是仁者见仁,智者见智了。

0 人点赞