一、Bert模型网络结构
1、Add与Normalize
Add:将前面的数据传到后面层,残差网络同理。
Normalize :归一化,与batch normalize同理。
2、outputs(shifted right)
outputs(shifted right):指在解码器处理过程中,将之前的输出序列向右移动一位,并在最左侧添加一个新的起始符(如"<sos>"或目标序列开始的特殊token)作为新的输入。这样做的目的是让解码器在生成下一个词时,能够考虑到已经生成的词序列。 作用:通过"shifted right"操作,解码器能够在生成每个词时,都基于之前已经生成的词序列进行推断。这样,解码器就能够逐步构建出完整的输出序列。 示例说明:假设翻译任务,输入是"我爱中国",目标输出是"I love China"。在解码器的处理过程中: 在第一个步,解码器接收一个起始符(如"<sos>")作为输入,并预测输出序列的第一个词"I"。 在第二个步,解码器将之前的输出"I"和起始符一起作为新的输入(即"<sos> I"),并预测下一个词"love"。 以此类推,直到解码器生成完整的输出序列"I love China"。
3、训练数据
方法一:随机的将句子中的15%的词汇进行mask。让模型去预测mask的词汇。 注:一般选择字进行mask,词的可能性太多,例如今天,明天,后天,上午,下午,没有,再次等等。
方法二:预测两个句子是否应该连在一起。
CLS:分类标记(Classification Token)用于表示输入序列的开始。在输入序列中,CLS应放置在句子的开头。在训练过程中,CLS也当作一个词参与训练,得到对应与其他词汇关系的词向量。 SEP:分隔符标记(Separator Token)用于分隔两个句子或表示单个句子的结束。在处理多个句子时SEP应放置在每个句子的结尾。在训练过程中,SEP也当作一个词参与训练,得到对应与其他词汇关系的词向量。