input_ids有,inputs_embeds就必须None
打乱,就取前pred个词
0填充,填充几无所谓,后面都会被mask
token embedding,字符对应的索引对应的词向量
segment embedding 区分不同的句子,通常用0和1区分不同的句子,EA-0,EB-1
三个部分相加作为模型的输入
nsp下一个句子预测,挑选样本的时候,不同document片段作为负样例,相同document连续片段作为正样例,
第一个字符cls最后的输出,去接linear层,做二分类任务
另一个预训练任务是MLM任务,把整个输入句子中的部分词汇掩盖住,让模型去预测当前的词汇,红色一个掩盖的词汇,
1,7,13,6字符对应的索引,也就是把字符转化为数字之后,它是哪些数字,1就是CLS符号,
每个embedding是768个维度,
把文本转成数字
init初始化函数中有一个ignore_index,忽视哪些索引,默认是负一百,补零的位置不参与计算,可以让没有被mask的位置不参与到损失函数的计算
BERT的self-attention解决无法利用上下文信息
BERT是真正的双向编码,ELMo是拼接的双向编码
BERT做特征向量提取,
粗暴,所有batch所有样本,设为同一长度
max_pred, 5个token去做mask
d_model, word embedding,segment embedding,position embedding维度
d_ff,全连接神经网络的维度
n_segment, 两句话是否相邻
intermediate,output构成全连接