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

2019-07-30 11:50:50 浏览数 (1)

晓查 发自 凹非寺 量子位 出品 | 公众号 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

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

0 人点赞