Bert学习笔记

一、Bert架构

Bert学习笔记_第1张图片

  • BERT 使用了双向的Transformer
  • GPT使用从左到右的单向信息
  • ELMo把单独训练的从左到右及从右到左的LSTM模型进行合并

二、Bert预训练任务

2.1 遮蔽语言模型MLM

任务:随机屏蔽(masking)部分输入token,然后只预测那些被屏蔽的token。

问题:预训练任务与微调任务不一致

原因:在finetuning期间从未看到 [MASK] token,预训练和finetuning之间会不匹配

解决方法:BERT并不总是用实际的 [MASK] token替换被 “masked” 的词汇。相反,训练数据生成器随机选择15%的token。例如在这个句子“my dog is hairy”中,它选择的token是“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. 这样做的目的是将表示偏向于实际观察到的单词。

2.2 下一句预测任务        

任务:在预训练过程中引入句子对的判断任务,即给定两句话,让模型预测第二句是否是第一句的后续句。

数据构建

  • 会构造句子对 (A, B),其中50%的情况下,B是A的真实后续句子;而另外50%的情况下,B是一个随机选择的句子,与A没有语义或顺序上的关联。

输入标记

  • 在输入中,BERT将句子A和句子B拼接在一起,句子A在前,句子B在后。
  • 在句子A的前面添加一个特殊的 [CLS] 标记,表示句子的整体表示,而在句子A和句子B之间添加一个 [SEP] 标记,用于分隔两个句子,并在句子B的末尾添加一个 [SEP]

Segment Embeddings(分段嵌入)

  • 使用分段嵌入(Segment Embeddings)来区分句子A和句子B。

三、输入的构造

Bert学习笔记_第2张图片

  • 输入嵌入(Input Embeddings):Token Embeddings+[CLS] 标记+[SEP] 标记。

  • 位置嵌入(Position Embeddings): 用于表示输入序列中每个单词的相对或绝对位置,帮助模型识别词序信息。

  • 分段嵌入(Segment Embeddings): 如果输入包含两个句子,每个单词的嵌入会附加一个段标记(Segment Embedding),表示其属于第一个句子(句子A)还是第二个句子(句子B)。

你可能感兴趣的:(大模型相关知识,语言模型,bert)