表5:用BERTBASE架构做的预训练任务消融。“无NSP”是无下一句话预测任务的训练。“LTR&无NSP”用作从左到右的LM,没有下一个句子预测,如OpenAI GPT的训练。“+ BiLSTM”在微调期间在“LTR +无NSP”模型上添加随机初始化BiLSTM。
接下来,我们通过比较“No NSP”与“LTR&No NSP”来评估训练双向表征的影响。LTR模型在所有任务上的性能都比MLM模型差,在MRPC和SQuAD上有极大下降。对于SQuAD,直观清楚的是LTR模型在跨度和词块预测方面性能非常差,因为其词块级隐藏状态没有右侧语境。对于MRPC,目前尚不清楚性能不佳是由于其小数据量还是该任务本质,但我们发现这种不良性能在有很多随机重启的完整超参数扫描(full hyperparameter sweep)中是一致的。
为了诚心尝试加强该LTR系统,我们试着在其上面添加一个随机初始化BiLSTM做微调。这确实显着提升了SQuAD结果,但结果仍比预训练双向模型差得多。它还影响所有四个GLUE任务的性能。
我们认识到,也可以训练独立的LTR和RTL模型,并将每个词块表示为这两个模型的串联,如ELMo所做的那样。但是:(a) 这是单一双向模型的两倍代价;(b) 对于像QA这样的任务来说,这是不直观的,因为RTL模型无法对其问题的答案作出规定;(c) 它的强度远低于深度双向模型,因为深度双向模型可以选择使用左或右语境。
5.2 模型大小的影响在本节,我们将探讨模型大小对微调任务准确性的影响。我们训练了许多具有不同层数、隐藏单元和注意头的BERT模型,与此同时,使用与前面描述的相同的超参数和训练过程。
选定GLUE任务的结果如表6所示。此表中,我们报告了5次随机重启微调的平均DevSet开发集精度。我们可以看到,较大的模型导致所有四个数据集的严格精度提高,即使对于仅有3,600个标记训练样例的MRPC,并且与预训练任务有很大不同。同样令人惊讶的是,我们能够在相对于现有文献已经相当大的模型之上实现这种显著改进。例如,Vaswani等人(2017)探索的其最大变换器,是(L=6,H=1024,A=16)有100M参数的编码器,我们在文献中找到的最大变换器是(L=64,H=512,A=2)有235M参数(Al-Rfou等,2018)。相比之下,BERTBASE包含110M参数,BERTLARGE包含340M参数。
表6:BERT模型大小的消融。#L=层数; #H=隐藏的大小; #A=关注头数。“LM(ppl)”是保持训练数据的遮蔽LM混乱。
众所周知,增加模型尺寸将导致机器翻译和语言建模等大型任务的持续改进,这可通过表6中所示该LM训练数据的复杂性来证明。但是,我们相信这是第一个证明扩展到极端模型尺寸的工作也可以在非常小规模的任务上实现大幅改进,前提是该模型已经过充分预训练。
5.3 训练步数的影响图4呈现了从已预训练k步的检查点进行微调后的MNLI Dev精度。这使我们可以回答以下问题:
1. 问题:BERT是否真的需要如此大量预训练(128,000字/批*1,000,000步)才能实现高微调精度?
答:是的,当训练1M步时,BERTBASE在MNLI上实现了近1.0%的额外准确度,而步数为500k。
2. 问题:MLM预训练是否比LTR预训练收敛慢,因为每批只有15%的单词被预测而不是每个单词?
答:MLM模型的收敛速度略慢于LTR模型。然而,就绝对精度而言,MLM模型几乎立即开始优于LTR模型。
图4:多次训练步骤的消融。这显示了微调后的MNLI精度,从已经预训练了k步的模型参数开始。x轴是k的值。
5.4 基于特征的BERT方法到目前为止呈现的所有BERT结果都使用了微调方法,其中将一个简单分类层添加到预训练模型,并且所有参数在下游任务上联合微调。然而,基于特征的方法具有某些优点,其固定特征从预训练模型中提取。首先,并非所有NLP任务都可以通过变换器编码器架构轻松表示,因此需要添加特定于任务的模型架构。其次,主要计算益处在于能够一旦预计算其训练数据的一个高开销表征,就在该表征顶部使用较少开销模型运行多次实验。