动手学习深度学习(25)BERT

茴香豆 Lv5

创建BERT的动机:预训练的模型抽取了足够多的信息,新的任务只需要增加一个简单的输出层。

BERT架构

  • 只有编码器的Transformer

  • 两个版本:

    • Base:

      \#blocks=12,hidden size=768,\#heads=12,\#parameters=110M

    • Large:

      \#blocks=24,hidden size=1024,\#heads=16,\#parameters=340M

  • 在大规模数据上训练 > 3B 词

对输入的修改

  • 每个样本是一个句子对
  • 加入额外的片段嵌入
  • 位置编码可学习

预训练任务1:带掩码的语言模型

  • Transformer的编码器是双向的,标准语言模型要求单向

  • 带掩码的语言模型每次随机(15%概率)将一些词元换成<mask>

  • 因为微调任务中不出现<mask>

    80%概率下,将选中的词元变成<mask>

    10%概率下换成一个随机词元

    10%概率下保持原有的词元

预训练任务2:下一句子预测

  • 预测一个句子对中两个句子是不是相邻

  • 训练样本中:

    50%概率选择相邻句子对:<cls>this movie is great <sep> i like it <sep>

    50%概率选择随机句子对:<cls>this movie is great <sep> hello world<sep>

  • 将<cls>对应的输出放到一个全连接层来预测

  • Title: 动手学习深度学习(25)BERT
  • Author: 茴香豆
  • Created at : 2023-02-13 20:27:20
  • Updated at : 2023-02-13 20:52:58
  • Link: https://hxiangdou.github.io/2023/02/13/DL_25/
  • License: This work is licensed under CC BY-NC-SA 4.0.
Comments