| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> 文献阅读:Should You Mask 15% in Masked Language Modeling? -> 正文阅读 |
|
[人工智能]文献阅读:Should You Mask 15% in Masked Language Modeling? |
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准则以及其对应的原因:
陈丹琦她们就是针对这两个点进行了更进一步的考察,想知道这两个结论是否真的和他们宣称的一样在work,不过她的结论和之前的经验结果不太一致,她的最终结论是:
个人感觉,这篇文章有点像是Roberta,就是针对Bert超参的一个细化研究,不过似乎这次的结果不是被很多人认可,今天刚刷到了一篇关于这篇文章的博客《陈丹琦组掩蔽语言模型研究引争议:15%掩蔽率不是最佳,但40%站得住脚吗?》,似乎对文章的结果存在一定的异议。 概括来说文中并不怀疑作者的结果,但是怀疑这个现象产生的原因中 鉴于我本人并没有做过bert模型的预训练考察,因此这里就不对这个结果本身做评论了,就只是把丹琦女神的工作整理记录一下。 不过个人还是觉得能够对大模型预训练做一些深层原理的考察这件事本身终究还是有意义的,毕竟个人看来现在的大模型真心就是个黑盒,有时候一堆奇技淫巧真心还不如调参影响大就很扯淡…… 2. 实验考察1. mask比例考察文中首先考察的就是 原始的bert当中也提到说 因此,陈丹琦她们就调整了 可以看到,在绝大多数任务当中,15%都不是最佳的 当然,这里存在一个隐患就是说由于 基于此,他们用24h的bert训练结果和更长时间的bert效果进行了比对,并对中间时间的效果进行了绘图展示,得到结果如下: 可以看到:
更一般的,她们还对不同尺寸的模型考察了mask比例对其结果的影响,具体得到结果如下: 可以看到:
综上,我们可以判断:
2. corruption & prediction在上述1的基础上,陈丹琦她们还对MLM的机制进行了更细化的考察。 如前所述,mask过程事实上是可以拆分为两部分的,一方面在于训练数据上,通过mask比例可以调整训练模型时的输入信息,而另一方面,被mask的部分又会在loss部分用来提供模型真正学习到的内容。 陈丹琦她们将这二者分别命名为corruption以及prediction。直觉上,我们希望prediction尽可能大,但是corruption却需要调整一个合适的值。 而在原版的bert训练过程当中,这两者事实上是完全一致的,即便他们在功效上其实有所区分。 因此,陈丹琦她们对于这个点进行了更加细致的考察,将这两部分进行了解耦,然后分别考察他们的效果。 不过她们的方法其实我个人感觉有点奇怪就是了,显然要是corruption > prediction倒是理解起来很简单,多mask一些结果,然后预测的时候只使用其中的部分计算loss就行了,而对于prediction > corruption的情况,陈丹琦她们采用的方式将一条数据拆分了多条,比如20%,40%,就是一条数据拆分两条,预测40%,然后两条数据分别mask20%。但是个人觉得这种方式比较奇怪,感觉训练中有数据泄露,而且如果我没有理解错的话她还将训练时长给拉长了对应的倍数,导致训练的充分度事实上存在一定的差异。个人感觉有点怪怪的…… 而结论方面,她们给出的实验结果如下: 可以看到:
3. 80-10-10原则考察除了mask的比例,文中还考察了一下mask的方式。 在原版的bert文献中,为了使得训练阶段与预测阶段尽可能一致,因此模型在mask方面做了一些额外的操作,即80%采用 文中陈丹琦她们对这种额外的操作进行了考察,具体结果如下: 结果发现,随即替换和保留对于结果并没有什么帮助,甚至会使得效果发生稳定的下降。 而后她们对具体每一层的与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策略这些倒是感觉挺有意思的,不过也是仁者见仁,智者见智了。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 18:46:36- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |