Appendix for "BERT"(A)

BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding

我们将附录分为三个部分:
•附录中提供了BERT的其他实现详细信息
•有关实验的其他详细信息,请参见附录B; 和
•附录C中提供了其他消融研究。
我们提供了BERT的其他消融研究,包括:
–培训步骤数的影响; 和
–消融不同掩码步骤的流程。

A Additional Details for BERT

A.1 Illustration of the Pre-training Tasks

我们提供了以下预训练任务的示例。
Masked LM and the Masking Procedure 假设未标记的句子是,my dog is hairy,在随机屏蔽过程中,我们选择了第4个令牌(对应于 hairy),我们的掩码程序可以通过以下方式进一步说明:
•80%的时间:用[MASK]标记替换单词,例如,my dog is hairy →
my dog is [MASK]。
•10%的时间:用随机单词替换单词,例如,my dog is hairy → my dog is apple。
•10%的时间:保持单词不变,例如,my dog is hairy → my dog
is hairy。 这样做的目的是使表征偏向实际观察到的单词。
此过程的优势在于,Transformer编码器不知道将要求预测哪个单词,或者哪个单词已由随机单词替换,因此强制保留每个输入令牌的分布上下文表示。此外,由于随机替换仅发生在所有令牌的1.5%(即15%的10%)中,因此这似乎并不损害模型的语言理解能力。 在C.2节中,我们评估了此过程的影响。
与标准语言模型训练相比,带掩码的LM仅对每批次中15%的令牌做出预测,这表明模型可能需要更多的预训练步骤才能收敛。
在C.1节中,我们证明了MLM的收敛速度确实比左向右模型(预测每个标记)慢,但是MLM模型的经验改进远远超过了增加的训练成本。
Next Sentence Prediction 下一个句子预测任务可以在以下示例中进行说明。
Input = [CLS] the man went to [MASK] store [SEP]
he bought a gallon [MASK] milk [SEP]
Label = IsNext
Input = [CLS] the man [MASK] to the store [SEP]
penguin [MASK] are flight ##less birds [SEP]
Label = NotNext

A.2 Pre-training Procedure
为了生成每个训练输入序列,我们从语料库中抽取了两个跨度的文本,我们将它们称为“句子”,即使它们通常比单个句子长得多(但也可以更短)。第一个句子接收A嵌入,第二个句子接收B嵌入。B的50%的时间是紧随A的实际下一个句子,而50%的时间是随机的句子,这是为“下一个句子预测”任务完成的。对它们进行采样,以使合并长度≤512个令牌。 LM掩码在WordPiece令牌化之后应用,其统一掩码率为15%,并且对部分单词没有特殊的考虑。
我们以256个序列(256个序列* 512个令牌= 128,000个令牌/批)的批处理大小进行1,000,000步的训练,这大约是33亿个单词语料库的40个时期。我们使用Adam算法,其学习率为1e-4,β1= 0.9,β2= 0.999,L2权重衰减是0.01,在前10,000个步骤预热学习速率以及学习速率的线性衰减。我们在所有层上使用的0.1的dropout概率。我们使用Gelu激活(Hendrycks and Gimpel,2016)而不是遵循OpenAI GPT的标准relu。训练损失函数是平均带掩码LM可能性与平均下一句预测可能性之和。
BERT-BASE的训练是在Pod配置的4个Cloud TPU(总共16个TPU芯片)进行的。BERT-LARGE是在16个Cloud TPU(总共64个TPU芯片)进行的。 每次预训练需要4天才能完成。
较长的序列不是成比例地增加成本,这是因为注意力是序列长度的二次方。 为了加快实验的预处理速度,我们针对90%的步骤对序列长度为128的模型进行了预训练。 然后,我们训练512序列的其余10%步骤,以学习位置嵌入。

A.3 Fine-tuning Procedure
在进行微调时,大多数模型超参数与预训练中的相同,除了批量大小,学习率和训练代数之外。 dropout概率始终保持在0.1。 最佳超参数值是特定于任务的,但是我们发现以下可能的值范围对所有任务都适用
• Batch size: 16, 32
• Learning rate (Adam): 5e-5, 3e-5, 2e-5
• Number of epochs: 2, 3, 4

我们还观察到,大型数据集(例如,100k+带标记的训练示例)对超参数选择的敏感性远小于小型数据集。 微调通常非常快,因此对上述参数进行枚举搜索,然后选择在开发集上表现最佳的模型是合理的。

A.4 Comparison of BERT, ELMo ,and OpenAI GPT
在这里,我们研究了最近流行的表征学习模型(包括ELMo,OpenAI GPT和BERT)的差异。 图3中直观地显示了模型架构之间的比较。请注意,除了架构差异之外,BERT和OpenAI GPT是微调方法,而ELMo是基于特征的方法。
在这里插入图片描述
图3:预训练模型架构的差异。 BERT使用双向Transformer。 OpenAI GPT使用从左到右的Transformer。 ELMo使用经过独立训练的从左到右和从右到左的LSTM的串联来生成用于下游任务的功能。 在这三个之中,只有BERT表示在所有层的共同左上下文和右上下文中为条件。 除了架构差异之外,BERT和OpenAI GPT是微调方法,而ELMo是基于特征的方法。

现有的与BERT最可比的预训练方法是OpenAI GPT,它在大文本语料
库上训练从左到右的Transformer LM。实际上,BERT中的许多设计决策都是有意做出的,以使其尽可能接近GPT,以便可以对两种方法进行最小化比较。这项工作的核心论点是,在第3.1节中介绍的双向性和两项预培训任务是经验改进的主要原因,但是我们确实注意到,如何训练BERT和GPT之间还有其他一些区别:
•GPT在BooksCorpus(8亿字)上进行了训练; BERT在BooksCor pus(8亿字)和Wikipedia(25亿字)上进行了培训。
•GPT仅在微调时引入的句子分隔符([SEP])和分类器令牌([CLS]); BERT在预训练期间学习了[SEP],[CLS]和句子A / B嵌入。
•GPT进行了批量大小为32,000个单词的100万步训练; BERT进行了批量大小为128,000个单词的100万步培训。
•对于所有微调实验,GPT的学习率均为5e-5。 BERT选择特定于任务的微调学习率,该学习率在开发集上表现最佳。

为了排除这些差异的影响,我们在5.1节中进行了消融实验,这些实验表明,大多数改进实际上来自两个预训练任务以及它们实现的双向性。

A.5 Illustrations of Fine-tuning on Different Tasks
在图4中可以看到在不同任务上对BERT进行微调。特定于任务的模型是通过将BERT与一个附加的输出层合并而形成的,因此需要从头开始学习最少的参数。 在任务中,(a)和(b)是序列级任务,而(c)和(d)是令牌级任务。 在图中,E表示输入嵌入,Ti表示令牌i的上下文表征,[CLS]是用于分类的特殊符号,[SEP]是用于分隔非连续令牌序列的特殊符号。
在这里插入图片描述
在这里插入图片描述
图4:在不同任务上对BERT进行微调。
未完待续

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值