前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >XLNet团队:赢BERT靠的并不是数据集更大,公平对决也碾压对手

XLNet团队:赢BERT靠的并不是数据集更大,公平对决也碾压对手

作者头像
量子位
发布2019-07-30 11:50:50
5480
发布2019-07-30 11:50:50
举报
文章被收录于专栏:量子位量子位
晓查 发自 凹非寺 量子位 出品 | 公众号 QbitAI

几周前,谷歌发布了新的NLP模型XLNet,它在20项基准测试中均优于BERT。

但是与BERT相比,XLNet模型的训练数据比BERT大10倍。这让学术界和工业界对此产生了疑问:XLNet如果只接受与BERT相同规模的训练数据会如何?XLNet的胜利是否只是数据集的胜利?

今天,XLNet研究团队在Medium网站上用实际数据解答了众人的疑惑。他们使用近乎相同的数据集在XLNet和BERT之间进行公平对决,看看前者的性能到底有没有本质的提升。

参数配置

为了保证公平性,团队确保BERT和XLNet中几乎所有可能的超参数尽量相同。在无法保证二者相同的情况下,他们还让参数的优势更向BERT倾斜。

超参数用的是原来BERT作者发布的数据。也就是说,这么做更有可能针对BERT而不是XLNet进行优化。

具体的超参数设置如下:

  • 相同的batch size:256
  • 相同的训练步数:1M
  • 相同的优化器:Adam,学习率1e-4,10K预热,线性衰减
  • 相同的训练语料库:Wikipedia + BooksCorpus。XLNet团队使用与BERT repo中描述相同的工具来处理维基百科。但由于某些未知原因,XLNet维基百科语料库只有20亿单词,而BERT有25亿单词。因此XLNet训练集反而更小。
  • 相同的模型架构参数:24层,1024个隐藏单元,head数16
  • 相同的微调超参数搜索空间

他们修改了一些与数据相关的实现细节,以便与BERT进行一对一的比较:

  • 在之前的实现中,未被覆盖的token在预训练中看不到CLS和SEP。在现在的实现中,未被覆盖的token可以看到CLS和SEP,这与BERT一致。
  • 在微调中,XLNet使用“BERT格式”[CLS,A,SEP,B,SEP]取代[A,SEP,B,SEP,CLS]。

此外,他们还考虑了BERT的三种变体,并报告每个单独任务的最佳微调结果。

  • 模型-I:作者发布的原始BERT
  • 模型-II:具有全词覆盖的BERT,也是由作者发布
  • 模型-III:由于下一句预测(NSP)可能会影响性能,使用已发布的BERT代码预训练一个新的没有NSP损失的模型。

以上的设置可能会为BERT带来一些优势,因为BERT可以通过不同的变体获得单个任务的最佳性能。

对比结果

二者在SQuAD、RACE等测试集上的结果如下,过程中没有使用数据扩增、集成学习或多任务学习。

测试结果说明了一些问题:

  1. 使用几乎相同的数据和训练方法,XLNet在所有数据集上均以相当大的优势超越BERT。
  2. 10倍数据对训练效果的提升不如从BERT到XLNet的变化明显。11个基准测试中,有8个从BERT切换到XLNet的提升更为明显。
  3. 在CoLA和MRPC等一些基准测试中,更多数据上训练的模型得分反而低于在较少数据上训练的模型。

上述结果中让我们获得了一些宝贵的经验。

  1. XLNet确实提高了性能。实验结果1表明,在相同的训练条件下XLNet相对于BERT具有优势。
  2. XLNet-Large可以更好地进行优化。实验结果2和3似乎表明XLNet-Large(更多训练数据)没有充分利用数据规模。

对未来工作的启发

XLNet团队表示,将继续研究如何正确扩展XLNet语言预训练。根据目前有限的观察结果,他们推测以下训练细节可能会发挥重要作用:

数据相关:数据规模、数据来源、数据清洗、数据编码、数据格式化。 优化相关:学习率、batch size、训练步数、优化器。 这些超参数之间可能有高阶的相互作用。 Facebook AI最近的RoBERTa进入GLUE排行榜第一,似乎也暗示了训练细节的重要性。

原文链接: https://medium.com/@xlnet.team/a-fair-comparison-study-of-xlnet-and-bert-with-large-models-5a4257f59dc0

作者系网易新闻·网易号“各有态度”签约作者

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-07-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 量子位 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 参数配置
  • 对比结果
  • 对未来工作的启发
相关产品与服务
批量计算
批量计算(BatchCompute,Batch)是为有大数据计算业务的企业、科研单位等提供高性价比且易用的计算服务。批量计算 Batch 可以根据用户提供的批处理规模,智能地管理作业和调动其所需的最佳资源。有了 Batch 的帮助,您可以将精力集中在如何分析和处理数据结果上。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档