论文简介:还应在遮蔽语言模型中使用 15% 的遮蔽概率吗?
论文标题:Should You Mask 15% in Masked Language Modeling?
论文链接:https://arxiv.org/pdf/2202.08005.pdf
论文作者:{Alexander Wettig∗ Tianyu Gao∗ Zexuan Zhong Danqi Chen}

论文简介

以往遮蔽预训练模型中,遮蔽语言模型通常使用 15% 的遮蔽率,作者团队认为更多的遮蔽将提供足够的上下文来学习良好的表示,而更少的遮蔽会使训练过于昂贵。令人惊讶的是,我们发现 40% 的遮蔽概率的输入序列可以优于 15% 的基线,通过对下游任务的微调来衡量可以发现,甚至遮蔽 80% 的字符也可以保留大部分性能。

  • 增加遮蔽有两个明显的效果,作者通过细致的消融实验研究发现:
  • 无需使用 80% [MASK]、10% 保持原始token和 10% 随机替换token。
  • 随着掩蔽率的提升,随机均匀掩码的效果(Uniform)的表现还会比Span Masking、相关区间原则性掩码(PMI-Masking)更好。

总体来说,该研究成果有助于更好地理解遮蔽语言模型,并指出有效预训练的新途径。接下来我们看看详细的实验结论。

预训练“15%遮蔽率” 惯例是可以被打破的

“15%遮蔽率”,指在一项预训练任务中,随机遮住15%的单词,并通过训练让AI学会预测遮住的单词。

在这项工作中,作者发现了在有效的预训练方案下,可以遮蔽 40-50% 的输入文本,模型获得比默认的 15% 更好的下游性能。 表格1显示了遮蔽 15%、40% 和 80% 的例子,以及它们的下游任务性能。我们可以发现使用 80% 掩蔽,即使大多数上下文被破坏,与 15% 的遮蔽 相比,模型仍能学习到良好的预训练表示并保留超过 95%的下游任务性能。 这个现象打破了以往遮蔽率选择15%的惯例,并提出了模型如何从高掩蔽率中受益的问题,这可能是未来遮蔽语言模型研究的一个热点。

预训练需要超过15%的遮蔽率

为了了解在 MLM 中可以遮蔽多少以字符及遮蔽 率如何影响预训练模型的性能,本文预训练了一系列具有不同掩蔽率的模型,范围从 15% 到80%。图 1 显示了相对于不同掩蔽率,下游任务性能的变化。

我们可以发现与默认的 15% 遮蔽模型相比,高达 50% 的遮蔽可以达到相当甚至更好的结果。 遮蔽40% 总体上实现了最佳的下游任务性能(尽管不同下游任务的最佳掩蔽率有所不同)。 结果表明语言模型预训练不必使用小于 15% 的掩码率,而使用高效预训练侧率的大型模型的最佳掩码率高达 40%。

为了进一步比较 15% 和 40% 的遮蔽率,在表 2 中展示了两者的 GLUE 测试结果:

并在图 2 中绘制了下游任务性能随不同训练步骤的变化:

表 2 进一步验证了掩蔽 40% 的性能明显优于 15% — SQuAD 提高了近 2%。 我们还看到在图 2 中的整个训练过程中,40% 的 masking 具有超过 15% 的一致性优势

“重新”理解Mask Rate

在本节中,作者从两个不同的角度分析掩蔽率如何影响 MLM 的预训练过程:任务难度和优化效果。在Mask机制下,作者还进一步讨论了遮蔽率、模型大小和不同损坏策略之间的关系,以及它们对下游任务性能的影响。

遮蔽率与破坏率和预测率之间的关系

具体来说,就是将掩蔽率拆分为破坏率 (corruption rate)和预测率 (prediction rate)2个指标。其中,破坏率是句子被破坏的比例,预测率是模型预测的比例。论文进一步针对破坏率(mcorr)和预测率(mpred)进行了研究,发现了一个新规律:
预测率高,模型效果更好;但破坏率更高,模型效果更差:

表3显示了使用解破坏率 mcorr和预测率 mpred的消融结果。我们可以看到,(1)将mcorr固定为40%,将mpred从40%降低到20%,导致下游任务持续下降,表明更多的预测导致更好的性能;(2)将mpred固定为40%,降低mcorr导致持续更好的性能,这表明较低的破坏率使预训练任务更容易学习。(3)高预测率带来的收益可以超过破坏率带来的缺陷,性能更好。

高遮蔽率更适合大模型


从上图我们可以看到,在有效的预训练设置下,大型模型可以平均取40%作为最优遮蔽率;基础模型和中等模型大约取20%作为最优遮蔽率。这清楚地表明具有更大参数量的模型从更高的遮蔽率中获益更多。

揭开“80-10-10”规则的神秘面纱

2019年以来,大多数认为用将原始token10%替换(保持单词不变),用随机token替换10%是有益的。从那时起,在过往预训练模型研究中,80-10-10规则在几乎所有的MLM预训练工作中被广泛采用。其动机是遮蔽标记在训练前和下游微调之间造成不匹配,使用原始或随机的标记作为[MASK]的替代方法可以缓解这种差距。基于这一推理,理应认为屏蔽更多的上下文应该会进一步增加差异,但作者在下游任务中观察到更强的性能。这就引出了是否完全需要80-10-10法则的疑虑。首先,作者重新讨论了80-10-10规则,并将其与破坏率和预测率两种指标联系起来,作者思考如下:

相同字符预测:预测相同的字符是一项非常简单的任务——模型可以简单地将输入复制到输出中。来自相同的字符预测的损失非常小,这个目标应该被视为一个辅助的正则化,它确保了文本信息从嵌入传播到最后一层。因此,同样的token预测既不应该计入破坏率,也不应该计入预测率——它们不会破坏输入,而且对学习的贡献很小。

随机字符破坏:用随机token替换会提升破坏率和预测率,因为输入已经被损坏,预测任务并不重要。事实上,作者发现与[MASK]相比,随机token的损失略高,原因有两点:(1)模型需要决定所有token的信息输入是否来自随机字符和(2)预测需要对输入嵌入中的巨大变化需要保持一致。
为了验证结论,作者采用m=40%模型仅使用[MASK]替换作为基线,在此基础上我们添加了三个模型:

1.“+5%相同”:遮蔽40%的字符,预测45%的字符。

2.“w/5%随机”:遮蔽35%的字符,并随机替换了另外5%的字符,预测率为40%。

3.“80-10-10”:在BERT配置中,在所有的遮蔽文本中,80%被[MASK]取代,10%被原始token取代,10%被随机token取代。

结果如表4所示。我们观察到,相同的字符预测和随机字符损坏会降低大多数下游任务的性能。“80-10-10”规则比简单地使用[MASK]的所有任务效果更差。这表明,在微调范式中,[MASK]模型可以快速适应完整的、未损坏的句子,而不需要随机替换。鉴于实验结果,作者建议只使用[MASK]来做预训练。

在高遮蔽率下,Uniform Masking 效果更好

为了理解掩蔽率和掩蔽策略之间的相互作用,我们在不同掩蔽率下使用多种掩蔽策略进行实验,发现随机均匀掩码(Uniform)在最佳遮蔽率下比更复杂的遮蔽策略表现更好。

图5显示了在掩蔽率从15%到40%下,均匀遮蔽、t5 的span maskin和PMI遮蔽的结果。我们发现,(1)对于所有的遮蔽策略,最优遮蔽率都高于15%;(2)跨度遮蔽和PMI遮蔽的最优遮蔽率低于均匀遮蔽;(3)当所有策略都采用最优遮蔽率时,Uniform 遮蔽可以获得比高级策略相当甚至更好的结果。

为了理解更高的遮蔽率和高级遮蔽策略之间的关系,如下图显示,更均匀的遮蔽基本上增加了遮蔽高相关字符的几率,从而减少了琐碎的字符令牌,并迫使模型更稳健地学习。我们注意到,即使是Uniform 掩蔽,更高的遮蔽率也会增加“意外”覆盖整个PMI字符跨度的机会。通过对语料库上的掩码采样,我们计算图6中的这个概率,发现当遮蔽率从15%提高到40%时,概率增加了8倍。同样,更高的遮蔽率使遮蔽字符形成更长的跨度,说明增加的遮蔽率可以产生类似于高级遮蔽蔽策略效果,但是会产生学习更好的表征。

论文结论

在本文中,作者对掩蔽语言模型的掩蔽率进行了全面的研究,发现40%的遮蔽率在下游任务上的性能始终优于传统的15%遮蔽率。通过揭破坏率和预测率的关系,可以更好地理解遮蔽率,并表明更大的模型可以从更高的遮蔽率中获益更多。另外还证明了80-10-10规则在很大程度上是不需要的,简单的均匀遮蔽在更高的掩蔽率下与复杂遮蔽方案的效果是相当的。

参考资料

  • 陈丹琦带着清华特奖学弟发布新成果:打破谷歌BERT提出的训练规律!这个庆祝方式太学神了吧
    https://www.qbitai.com/2022/02/32722.html

Bert预训练新法则相关推荐

  1. Bert预训练新法则!

    论文简介:还应在遮蔽语言模型中使用 15% 的遮蔽概率吗? 论文标题:Should You Mask 15% in Masked Language Modeling? 论文链接:https://arx ...

  2. 谷歌开源预训练新范式BiT,准确率提高近25%!网友评价:CV界的BERT

    鱼羊 发自 凹非寺 量子位 报道 | 公众号 QbitAI BERT在NLP界无往不利,大大提高了自然语言模型的性能,那么,在计算机视觉领域,有没有可能一个CNN打天下? 现在,谷歌大脑给出了一个答案 ...

  3. RoBERTa:一种鲁棒地优化BERT预训练的方法

    RoBERTa:一种鲁棒地优化BERT预训练的方法 文章目录 RoBERTa:一种鲁棒地优化BERT预训练的方法 前言 背景 实验 静态 VS 动态 Masking 输入形式与NSP任务 更大的bat ...

  4. 获得Bert预训练好的中文词向量

    安装肖涵博士的bert-as-service: pip install bert-serving-server pip install bert-serving-client 下载训练好的Bert中文 ...

  5. 天池零基础入门NLP竞赛实战:Task4-基于深度学习的文本分类3-基于Bert预训练和微调进行文本分类

    Task4-基于深度学习的文本分类3-基于Bert预训练和微调进行文本分类 因为天池这个比赛的数据集是脱敏的,无法利用其它已经预训练好的模型,所以需要针对这个数据集自己从头预训练一个模型. 我们利用H ...

  6. bert预训练实战篇-持续更新

    导读 使用bert预训练会遇到很多坑,包括但不限于数据预处理的正确姿势.数据预处理的高效实现.bert单机多卡分布式训练的基本实现,以及如何debug并提升使用单机多卡来进行深度学习训练的性能瓶颈.本 ...

  7. ELECTRA 超过bert预训练NLP模型

    论文:ELECTRA: Pre-training Text Encoders As Discriminators Rather Then Generators 本文目前在ICLR 2020盲审中,前几 ...

  8. 基于BERT预训练的中文命名实体识别TensorFlow实现

    BERT-BiLSMT-CRF-NER Tensorflow solution of NER task Using BiLSTM-CRF model with Google BERT Fine-tun ...

  9. NeurIPS 2022|南大腾讯提出VideoMAE:视频自监督预训练新范式

    点击下方卡片,关注"CVer"公众号 AI/CV重磅干货,第一时间送达 点击进入-> CV 微信技术交流群 作者丨童湛   腾讯AI Lab 研究员 来源丨https://z ...

最新文章

  1. Ubuntu 14.04 64bit上编译安装simple-rtmp-server(srs)服务器
  2. R语言将ggplot2对象转化为plotly对象并通过shiny将可视化结果在应用程序或者网页中显示出来
  3. 怎样才能提高搜索引擎对网站的信任度?
  4. 【转】linux tar.gz zip 解压缩 压缩命令
  5. java中如何将string 转化成long(亲测)
  6. Docker最全教程之MySQL容器化 (二十五)
  7. bb10系统支持java吗_黑莓BB10怎么样 BlackBerry 10系统好用吗?
  8. python xlrd使用_python:利用xlrd模块操作excel
  9. MP、OMP与施密特正交化(转载)
  10. sketch up rbs/rbz/rb插件安装方法
  11. win10中修改mac地址
  12. MySQL复制表数据到新表的方法 亲测可用
  13. 基于边缘检测和模型拟合检测车道线
  14. IOS开发百度地图API入门到精通-用点生成路线,导航,气泡响应
  15. [解決]如何利用EXCEL依照固定欄位取出值
  16. aspectJ框架的使用
  17. 万豪参加进博会品牌+目的地策略继续深耕中国市场;加利福尼亚乐高乐园和法拉利推出互动式景点项目 | 全球旅报...
  18. xps测试数据处理软件,有人会用软件处理XPS数据吗?急求呀! - 材料 - 小木虫 - 学术 科研 互动社区...
  19. 用美国主机空间的内容管理系统建站的优点
  20. 二维码扫描自定义规则思路

热门文章

  1. 基于高通SNPE推理引擎的yolov5目标检测算法
  2. 建兴固态硬盘垃圾/LITEON SSD SUCKS
  3. Makefile使用总结
  4. JVM2:垃圾收集器与内存分配策略
  5. 使用Python实现微信发送文本消息、图片以及附件
  6. SRAM、PSRAM、SPI FLASH
  7. python键盘上下左右控制_【322】python控制键盘鼠标:pynput
  8. markdown转微信公众号编辑器
  9. RNA 提取步骤(trizol)
  10. win7 最常用的快捷键 ( 完全可以使用键盘来操作)