地址  | https://www.zhihu.com/question/347898375/answer/836722282

通常,增加预训练模型大小通常会提高模型在下游任务中的性能,但考虑到“GPU/TPU内存的限制、更长的训练时间以及意想不到的模型退化”等问题,作者提出了两种减少参数的方法:Factorized embedding parameterization 和 Cross-layer parameter sharing 。此外,还将BERT的 NSP 损失替换为句子顺序预测(SOP)损失,使模型关注于句子间一致性。最后,实验观察发现最大的模型在训练1M步后仍然没有过拟合,于是删除dropout,进一步提高模型能力。

Factorized embedding parameterization

作者首先将目光放到了 WordPiece 的嵌入矩阵上。

在BERT、XLNet以及RoBERTa中,嵌入文字大小与隐藏层大小

绑定。作者认为,从建模的角度来看,WordPiece 嵌入的目的是学习上下文无关的表示,而隐藏层嵌入的目的是学习上下文相关的表示。一旦二者始终绑定,就无法更好对两种表示的参数分别进行优化。当词汇量为时,如果,嵌入矩阵的大小始终为 ,一旦希望通过增大进而增强上下文相关的表示能力,就会产生和词汇表大小相关的参数量变化,并且其中大多数参数在训练期间只进行了少量的更新。因此,ALBERT对词嵌入参数进行因式分解,分解为两个小矩阵,将 one-hot 向量先投影到大小为的低维嵌入空间中,再投影到大小为的隐藏空间中,参数大小由原来的 变为,简单粗暴(有效)。

如上图所示,在全共享条件下,大小为128的嵌入似乎是最好的,之后的实验也是以此继续的。

Cross-layer parameter sharing

作者又将目光放到了层间参数贡献上:跨层共享前馈网络(FFN)参数,仅共享注意力机制参数或跨层共享所有参数。

如上图所示,ALBERT的层与层之间的转换要比BERT平滑得多。这表明权值共享对网络参数的稳定有一定的影响。虽然与BERT相比,这两个指标都有所下降,但是即使在24层之后,它们也不会收敛到0。这说明ALBERT参数的解空间与DQE的解空间有很大的不同。

句子顺序预测(SOP)损失

BERT使用的NSP损失,是预测两个片段在原文本中是否连续出现的二分类损失。目标是为了提高如NLI等下游任务的性能,但是最近的研究都表示 NSP 的作用不可靠,都选择了不使用NSP。

作者推测,NSP效果不佳的原因是其难度较小。将主题预测和连贯性预测结合在了一起,但主题预测比连贯性预测简单得多,并且它与LM损失学到的内容是有重合的。

SOP的正例选取方式与BERT一致(来自同一文档的两个连续段),而负例不同于BERT中的sample,同样是来自同一文档的两个连续段,但交换两段的顺序,从而避免了主题预测,只关注建模句子之间的连贯性。

运行一定步后删除Dropout

如上图所示,ALBERT的最大模型在训练1M步后仍然没有过拟合,于是作者决定删除dropout,进一步提高模型能力。

总的来说,这篇投稿至ICLR 2020的ALBERT,真的是很简单粗暴且有效,论文简洁明了的语言和丰富的实验告诉你,BERT还能打,Masked-LM还能打。不过在论文的最后,作者也表示虽然总的参数量减小了,但是最优模型ALBERT-xxlarge的结构更大,计算代价相较于BERT-large更大。下一步计划通过sparse attention 和 block attention 等方式,对计算进行优化。

P.S. 全文看上去真的很像是实验报告。以上浅薄个见,如有疏漏谬误,烦请指明~

关于本站

“机器学习初学者”公众号由是黄海广博士创建,黄博个人知乎粉丝23000+,github排名全球前110名(32000+)。本公众号致力于人工智能方向的科普性文章,为初学者提供学习路线和基础资料。原创作品有:吴恩达机器学习个人笔记、吴恩达深度学习笔记等。

往期精彩回顾

  • 那些年做的学术公益-你不是一个人在战斗

  • 适合初学者入门人工智能的路线及资料下载

  • 吴恩达机器学习课程笔记及资源(github标星12000+,提供百度云镜像)

  • 吴恩达深度学习笔记及视频等资源(github标星8500+,提供百度云镜像)

  • 《统计学习方法》的python代码实现(github标星7200+)

  • 精心整理和翻译的机器学习的相关数学资料

  • 首发:深度学习入门宝典-《python深度学习》原文代码中文注释版及电子书

备注:加入本站微信群或者qq群,请回复“加群

加入知识星球(4300+用户,ID:92416895),请回复“知识星球

如何看待瘦身成功版BERT——ALBERT?相关推荐

  1. 哪一瞬间让你下定决心减肥,并且坚定不移的执行,最终瘦身成功?

    哪一瞬间让你下定决心减肥? 其实你明白,我明白,大家都明白,这种瞬间太多了!下定决心真的不难. "我下定决心,明天我要减肥~我一定要穿上好看的衣服和裤子!" "我下定决心 ...

  2. 业界新闻: JAVA 7新特性让JVM“瘦身”成功!

    很多用户一直以来都有一个需求:希望一个简单的JVM,只装载他们需要的东西,比如简单的Applet.而通常JVM都是很大,15mb以上.所以这些用户希望能够减少JVM的大小. 目前,Java 7通过了一 ...

  3. DWG文件打开很卡怎么办?一招叫它“瘦身”成功~

    平时在绘图时,不知不觉DWG文件就会变大.明明还不到那个数量级,文件就已经撑到100多M.保存后再打开,就会非常卡.不明白问题所在,还会以为是电脑系统的问题,跑去重装一个系统回来,也没快多少.其实,问 ...

  4. ttf字体包瘦身,ttf字体包提取指定字体,缩小ttf文件体积。

    ttf字体包瘦身 注:此方法只试用于只需要少数字体的情况. 需求 做APP时出现了一个需求,应用登录页面和主页面的系统名称需要根据用户所属行政区划进行动态调节. 为了突出系统名和样式的美观,系统名在显 ...

  5. 老司机谈APK瘦身套路-项目优化篇

    老司机谈APK瘦身套路-项目优化篇 在上一篇文章中,老司机带领大家一起学习了图片资源的瘦身套路,收到了很多中学生读者的好评. 想了解的童鞋请点击:blog.csdn.net/mynameishua-  ...

  6. springboot项目推荐的打包方式以及springboot项目的瘦身!!!!

    1.springboot项目推荐的打包方式 springboot有两种打包方式,分别是打包成war包和打包成jar包.打包成war包放在tomcat的webapp目录下,随着tomcat的启动,即可访 ...

  7. 百度AI快车道系列课程最后一站,听技术大神细说模型“瘦身”小窍门

    从智能音箱"打来"Morning call,到办公楼下"刷脸"秒过闸机,再到回家车载导航实时指路--AI在移动端的应用随处可见,在万物互联化的大趋势下,AI模型 ...

  8. java jre 减少尺寸_整理JRE瘦身或精简JRE

    前不久给朋友做了一个桌面程序,程序文件没多大,但运行java程序需要jre,但jre足足有80M多,然后在网上搜了如何给给JRE瘦身或精简JRE,整理如下: 打开JRE安装目录.目录包括bin,lib ...

  9. Git仓库瘦身--清除项目git仓库大文件

      Mark一下"清除A项目git仓库大文件"实操过程,由于公司保密政策,无法提供实操截图,这里提供下操作思路. 后来也搜到更加推荐的方法:用BFG去做git仓库的清理(最佳工具) ...

最新文章

  1. python精度丢失_JS大坑之19位数的Number型精度丢失问题详解_稚终_前端开发者
  2. 【c#】24点游戏的实现(可存档且局域网互联)
  3. 抢火车票这个事吧,其实我也能做!(python黑科技)
  4. 游戏扫码登录器程序PHP源码版
  5. Google 日历 API 和工具
  6. python网络编程学习笔记(二)
  7. (9)css常用样式--盒子模型
  8. abi-api, arm target triplet https://en.wikipedia.org/wiki/ARM_architecture
  9. win11如何登陆本地用户 windows11登陆本地用户的步骤方法
  10. 基于jsp+mysql的JSP校园一卡通管理系统
  11. cfree安装与使用
  12. csdner: china_jeffery, C++默认构造函数; csdner: thief thief, 什么情况下C++编译器会生成默认的构造函数
  13. 系统重构过程中的异构数据同步回环处理
  14. lms全称是什么意思_lms是什么意思?
  15. 详解脑的功能区域分布以及布罗德曼分区系统
  16. Android拉取微信公众号列表,Xposed实时获取微信公众号推送
  17. pandas与数据库
  18. 利用MSCNN实现人群密度监测
  19. ETL工具Informatica开发流程 综合应用 电信通话计费系统开发项目案例10
  20. 如何让MenuBar的菜单栏靠右对齐?

热门文章

  1. 项目需求分析与建议-NABCD模型
  2. windows 连接Linux
  3. ionic 混合应用开发
  4. javascript嵌套的对象被修改时log不符合的问题
  5. EndNote的PDF Handing功能, 让你的PDF管理井井有条
  6. 第八天学习Java的笔记(方法有参无参,有返回值和无返回值)
  7. 库函数设计:关于文件类打开操作函数不自动创建不存在的父目录问题
  8. html表单php比较三个值大小,PHP比较三个数大小实现办法
  9. 博图如何读取mysql数据_博途使用小结:从SQL中读取数据并给变量赋值
  10. vue中用table_Ant-Design-Vue中关于Table组件的使用