0
点赞
收藏
分享

微信扫一扫

119.设计链表(力扣)

醉东枫 03-24 17:30 阅读 2

文章目录

前言

BERT是在NLP领域中第一个预训练好的大型神经网络,可以通过模型微调的方式应用于后续很多下游任务中,从而避免了下游NLP应用需要单独构建一个新的神经网络进行复杂的预训练。这样既简化了下游NLP任务的模型训练,又提高了性能。

论文阅读

同类工作比较

  • BERT和GPT的区别:GPT采用的是语言模型的方式进行训练,即用前文的信息来预测下一个单词;而BERT采用的是一种完型填空的方式进行训练,即根据左右的文本预测中间的单词。
  • BERT和ELMo的区别:ELMo采用的网络架构是基于RNN的,而BERT采用的网络架构是基于Transformer的。因此,ELMo应用于下游任务时,需要对网络进行一定的调整,而BERT应用于下游任务的调整更少,相对更加简单。

模型架构

  • 基本架构:双向的Transformer的编码器,并没有对Transformer进行很大的改动。
  • 可以调整的参数:Transformer编码器的层数、隐藏层的维度和多头注意力的头数。
  • 两个不同大小的BERT模型:BERT_base中含有12层Transformer编码器,隐藏层维度为768,注意力的头数为12;BERT_large中含有24层Transformer编码器,隐藏层维度为1024,注意力的头数为16。BERT_large的大小是BERT_base的三倍多,参数量分别是一亿多和三亿多。
  • 模型输入:由于下游任务的多样性,因此BERT的输入可以是一个句子,也可以是一个句子对(这里的句子都是广义的句子,即一段连续的文字)。每一个句子的开头词元都是一个特殊的[CLS]。
  • BERT中的词元嵌入:对于每一个词元,都先对其进行一次嵌入获得一个向量;接着,根据这个词元所在的句子获得第二个嵌入向量;最后,根据这个词元在这个句子中的位置获得第三个嵌入向量。将三个嵌入向量进行相加,即可得到每一个词元的完整嵌入表示形式。

训练方式

  • 第一种训练方式:在文本中随机找出一些token并将其用掩码盖住,模型通过这些token的上下文复原这些词元。具体来说,将预训练数据中12%的词元用特殊词元[MASK]进行替代,1.5%的词元替换为另外一个随机的词元,1.5%的概率仍然保留这个词元。模型训练时,需要对这总共占15%的词元进行预测。第一种训练方式用于学习词元层面的信息。
  • 第二种训练方式:让模型判定给定的两个句子在文本中是否应该是相邻的。第二种训练方式用于学习句子层面的信息。

使用步骤

预训练和微调是BERT的两个使用步骤。

  • 预训练:在没有标号的大量数据集上进行训练;
  • 微调:在少量有标号的数据集上进行微调,模型的所有权重都参与微调过程。

实验结果

在11个NLP任务上取得了目前最好的结果。

其他

BERT及其之后的一些工作,证明了在大量没有标号的数据集上进行模型训练的效果会比在少量有标号数据集上进行模型训练的效果更好。

举报

相关推荐

0 条评论