【中文版 | 论文原文】BERT:语言理解的深度双向变换器预训练 (5)

  在Pod配置的4个云TPU上进行了BERTBASE训练(总共16个TPU芯片)。(注:https://cloudplatform.googleblog.com/2018/06/Cloud-TPU-now-offers-preemptible-pricing-and-globalavailability.html)在16个云TPU(总共64个TPU芯片)进行了BERTLARGE训练。每次预训练需4天完成。

3.5 微调过程

  对于序列级分类任务,BERT微调很简单。为了获得输入序列的固定维度池化表征,我们对该输入第一个词块采取最终隐藏状态(例如,该变换器输出),通过对应于特殊[CLS]词嵌入来构造。我们将该向量表示为C∈RH。微调期间添加的唯一新参数是分类层向量W∈RKxH,其中K是分类器标签的数量。该标签概率P∈RK用标准softmax函数,P=softmax(CWT)计算。BERT和W的所有参数都经过联动地微调,以最大化正确标签的对数概率。对于跨度级和词块级预测任务,必须以任务特定方式稍微修改上述过程。详情见第4节的相应小节。

  对于微调,大多数模型超参数与预训练相同,但批量大小、学习率和训练周期数量除外。丢失概率始终保持在0.1。最佳超参数值是特定于任务的,但我们发现以下范围的可能值可以在所有任务中很好地工作:

批量大小:16,32

学习率(Adam):5e-5,3e-5,2e-5

周期数量:3,4

  我们还观察到,大数据集(如100k+词块的训练样例)对超参数选择的敏感性远小于小数据集。微调通常非常快,因此需合理简单地对上述参数进行详尽搜索,并选择开发集上性能最佳的模型。

3.6 BERT和OpenAI GPT比较

  与BERT最具可比性的现有预训练方法是OpenAI GPT,它在大型文本语料库中训练左到右的变换器LM。实际上,许多BERT设计决策被有意地选择为尽可能接近GPT,以便最细微地比较这两种方法。这项工作的核心论点是占主要经验改进的3.3节中提出的两个新型预训练任务,但我们注意到BERT和GPT在如何训练之间还存在其他一些差异:

GPT在BooksCorpus(800M单词)训练;BERT在BooksCorpus(800M单词)和维基百科(2,500M单词)训练。

GPT使用一种句子分隔符([SEP])和分类符词块([CLS]),它们仅在微调时引入;BERT在预训练期间学习[SEP],[CLS]和句子A/B嵌入。

GPT用一个批量32,000单词训练1M步;BERT用一个批量128,000单词训练1M步。

GPT对所有微调实验使用的5e-5相同学习率;BERT选择特定于任务的微调学习率,在开发集表现最佳。

  为了分离这些差异的影响,我们在5.1节进行了消融实验,证明大多数改进实际上来自新型预训练任务

四、实验

  在本节中,我们将介绍11个NLP任务的BERT微调结果。

4.1 GLUE数据集

  通用语言理解评估(GLUE)基准(Wang等,2018)是各种自然语言理解任务的集合。大多数GLUE数据集已存在多年,但GLUE的目的是:(1) 使用规范的Train、Dev和Test拆分发行这些数据集; (2) 设置评估服务器以减轻评估不一致事件和测试集过度拟合。GLUE不会为测试集分发标签,用户必须将其预测上传到GLUE服务器进行评估,并限制提交的数量。

GLUE基准包括以下数据集,其描述最初在Wang等人(2018)的文章中进行了总结:

MNLI

    多类型自然语言推理是一项大规模的众包蕴涵分类任务(Williams等,2018)。给定一对句子,目标是预测第二句与第一句相比是蕴涵、矛盾还是中立。

QQP

    Quora问题对是一个二元分类任务,其目的是确定Quora上提出的两个问题是否在语义上是等价的(Chen等,2018)

QNLI

    问题自然语言推理是斯坦福问题答疑数据集(Rajpurkar等,2016)的一个版本,已被转换为二元分类任务(Wang等,2018)。正例是(问题,句子)包含正确答案,而负例是(问题,句子)来自同一段落,不包含答案。

SST-2

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpssjz.html