写点什么

BERT、RoBERTa、DistilBERT 与 XLNet,我们到底该如何选择?

  • 2019-10-26
  • 本文字数:2069 字

    阅读完需:约 7 分钟

BERT、RoBERTa、DistilBERT与XLNet,我们到底该如何选择?


谷歌 BERT 以及其它基于 transformer 的模型近来席卷整个 NLP 领域,并在多项任务当中全面超越原有最强技术方案。最近,谷歌又对 BERT 进行了多项改进,迎来一系列相当强势的提升。在本文中,我们将共同探讨各类 BERT 相关模型的相似与不同,希望帮助大家结合自身需求找到最理想的选项。

BERT

BERT 是一种双向 transformer,旨在利用大量未标记文本数据进行预训练,从而学习并掌握某种语言表达形式。更重要的是,这种表达形式还可以针对特定机器学习任务进行进一步调优。虽然 BERT 在多项任务中都带来了超越以往最强 NLP 技术的实际表现,但其性能的提升,主要还是归功于双向 transformer、掩蔽语言模型与下一结构预测(Next Structure Prediction),外加谷歌本身强大的数据资源与计算能力。


最近,NLP 业界又出现了多种旨在改进 BERT 预测指标或计算速度的新方法,但却始终难以同时达成这两大提升目标。其中 XLNet 与 RoBERTa 推动性能更上一层楼,而 DistilBERT 则改善了推理速度。下表为各种方法之间的特性比对:



BERT 及近期几种相关方法的改进效果比对: GPU 时间为估算值(使用 4 个 TPU Pod 进行周期为 4 天的初始训练);使用大量小批次数据,在较长的训练周期内,各方法的学习速度、步长以及掩蔽过程都有所不同; 除特殊说明,相关数据来自原始论文。

XLNet

XLNet 是一种大型双向 transformer,采用的是一种经过改进的训练方法。这种训练方法能够利用规模更大的数据集与更强的计算能力在 20 项语言任务中获得优于 BERT 的预测指标。


为了改进训练方法,XLNet 还引入了转换语言建模,其中所有标记都按照随机顺序进行预测。这就与 BERT 的掩蔽语言模型形成了鲜明对比。具体来讲,BERT 只预测文本中的掩蔽部分(占比仅为 15%)。这种方法也颠覆了传统语言模型当中,所有标记皆按顺序进行预测的惯例。新的方法帮助模型掌握了双向关系,从而更好地处理单词之间的关联与衔接方式。此外该方法还采用 Transformer XL 作为基础架构,以便在非排序训练场景下同样带来良好的性能表现。


XLMet 已经利用超过 130 GB 文本数据配合 512 块 TPU 芯片进行了两天半的训练,这两项指标在规模上都超过了 BERT。

RoBERTa

RoBERTa 是 Facebook 公司推出的,经过健壮性优化的 BERT 改进方案。从本质上讲,RobERTa 在 BERT 的基础上进行了再次训练,并在改善训练方法之余将数据总量与计算资源提升了 10 倍。


为了优化训练过程,RoBERTa 移除了 BERT 预训练中的下一语句预测(NSP)任务,转而采用动态掩蔽以实现训练轮次中的掩蔽标记变更。此外,Facebook 还证实,更大批准的训练规模确实能够提升模型性能。


更重要的是,RoBERTa 利用 160 GB 文本进行预训练,其中包括 16 GB 文本语料库以及 BERT 所使用的英文版维基百科。其余部分则包括 CommonCrawl News 数据集(包含 6300 万篇文章,总计 76 GB)、Web 文本语料库(38 GB)以及来自 Common Crawl 的故事素材(31 GB)。这一素材组合在 1024 个 V100 Tesla 上运行了整整一天,共同为 RoBERTa 提供了坚实的预训练基础。


如此一来,RoBERTa 在 GLUE 基准测试当中顺利带来优于 BERT 与 XLNet 的性能结果:



RoBERTa 性能比较结果。


在另一方面,为了缩短 BERT 及相关模型的计算(训练、预测)时长,合乎逻辑的尝试自然是选择规模较小的网络以获得类似的性能。目前的剪枝、蒸馏与量化方法都能实现这种效果,但也都会在一定程度上降低预测性能。

DistilBERT

DistilBERT 对 BERT 的一套蒸馏(近似)版本进行学习,性能可达 BERT 的约 95%,但所使用的参数总量仅为 BERT 的一半。具体来讲,DistilBERT 放弃了其中的标记类型与池化层,因此总层数仅相当于谷歌 BERT 的一半。DistilBER 采用了蒸馏技术,即利用多个较小的神经网络共同构成大型神经网络。其中的原理在于,如果要训练一套大型神经网络,不妨先利用小型神经网络预估其完整的输出分布。这种方式有点类似于后验近似。正因为存在这样的相似性,DistilBERT 自然也用到了贝叶斯统计中用于后验近似的关键优化函数之一——Kulback Leiber 散度。


备注:在贝叶斯统计中,我们趋近的是真实后验值(来自数据);但在蒸馏中,我们只能趋近由大型网络学习得出的后验值。

那么,到底该用哪种方法?

如果大家希望获得更快的推理速度,并能够接受在预测精度方面的一点点妥协,那么 DistilBERT 应该是最合适的选项。但是,如果各位高度关注预测性能,那么 Facebook 的 RoBERTa 无疑才是理想方案。


从理论角度看,XLNet 基于排序的训练方法应该能够更好地处理依赖关系,并有望在长期运行中带来更好的性能表现。


然而谷歌 BERT 本身已经拥有相当强大的基准性能,因此如果各位没有特别的需求,那么继续使用原始 BERT 模型也是个好主意。

总结

可以看到,大多数性能提升方式(包括 BERT 自身)都专注于增加数据量、计算能力或者训练过程。虽然这些方法确有价值,但往往要求我们在计算与预测性能之间做出权衡。目前,我们真正需要探索的,显然是如何利用更少的数据与计算资源,帮助模型实现性能提升。


原文链接:


https://towardsdatascience.com/bert-roberta-distilbert-xlnet-which-one-to-use-3d5ab82ba5f8


2019-10-26 14:338263

评论

发布
暂无评论
发现更多内容

2021最新华为面经分享:Java高分面试指南(25分类1000题50w字解析)

Java 程序员 后端

百度APP移动研发平台及DevOps实践

百度开发者中心

DevOps 最佳实践 方法论 移动端 百度app

WeTest与腾讯安全联合推出小程序质量方案,助力私域流量2.0新增长

WeTest

云开发CloudBase集成腾讯数字身份管控平台CIAM,快速实现账号管理

腾讯安全

2021最新38道Spring大厂面试题,你碰到过哪道?,java开发工程师百度百科

Java 程序员 后端

大数据实践:数据指标中心的建设思路

大数据技术指南

11月日更

从开始到放弃:某高校电子校友卡开发笔记

CC同学

不愧是GitHub上标星120K的Java手册,全程干货,只讲重点

收到请回复

Java 程序员 后端 面试技巧

今天面了个腾讯拿 38K 出来的,让我见识到了基础的天花板

Java 程序员 JVM springboot MyBatis标签

2021最新出炉BAT架构实战文档:多线程与高并发+分布式+微服务,泛微网络java面试题

Java 程序员 后端

爱奇艺基于SpringCloud的韧性能力建设

爱奇艺技术产品团队

数字化学习分享+一场思维探索工作坊+引导回顾会+公开演讲

研发管理Jojo

数字化转型 敏捷教练 咨询

Gartner:对中国央行数字货币的创新见解

BeeWorks

全捐了,华为将欧拉开源操作系统代码、品牌等相关资产捐赠!!!

BeeWorks

网易云音乐网络库跨平台化实践

网易云信

数据库 网络库 跨平台化

代码覆盖率VS测试覆盖率

FunTester

测试 测试覆盖率 覆盖率 FunTester 代码覆盖率

2021最新常见200+Java面试题汇总(含答案解析),unity高级工程师面试题

Java 程序员 后端

完美诠释Netty,腾讯强推599页Netty进阶神技,惊掉我的下巴

Java 编程 程序员 Netty

WorkPlus移动门户开启数字化智慧办公新模式

BeeWorks

2021最强面试笔记非它莫属:3000字Java面试核心手册(大厂必备),linux操作系统教程下载

Java 程序员 后端

发布两小时,霸榜GitHub Spring Boot实战文档

Java GitHub spring 编程 程序员

【福利】腾讯WeTest专有云,限时开放招募体验官

WeTest

CSS页面设计稿构思与实现(四)之自定义字体

Augus

CSS 11月日更

2021年最新基于Spring Cloud的微服务架构分析,java技术经理岗位职责

Java 程序员 后端

2021最新一线互联网大厂常见高并发面试题解析,springcloud视频百度云

Java 程序员 后端

阿里内网疯狂传阅的“M8级”分布式架构笔记,GitHub刚上线就霸榜

Java 编程 程序员 架构 阿里

元宇宙让我们实现“办公自由”?想要远程办公,保证员工效率和有效管理才是关键!

极狐GitLab

模块三作业

panxiaochun

架构实战营

万字长文手写数据库连接池,让抽象工厂不再抽象

Tom弹架构

Java 架构 设计模式

通用排序框架在爱奇艺推荐的应用

爱奇艺技术产品团队

博睿数据APM适配欧拉开源操作系统,为开发者性能体验保驾护航

博睿数据

BERT、RoBERTa、DistilBERT与XLNet,我们到底该如何选择?_语言 & 开发_Suleiman Khan_InfoQ精选文章