基于Transformers的自然语言处理入门【六】-Bert应用模型说明
1 Bert模型
Bert预训练任务包含两个:
- Masked Language Model(MLM):在句子中随机用[MASK]替换一部分单词,然后将句子传入 BERT 中编码每一个单词的信息,最终用[MASK]的编码信息预测该位置的正确单词,这一任务旨在训练模型根据上下文理解单词的意思;
- Next Sentence Prediction(NSP):将句子对 A 和 B 输入 BERT,使用[CLS]的编码信息进行预测 B 是否 A 的下一句,这一任务旨在训练模型理解预测句子间的关系。
2 Bert模型的应用
Bert模型可以解决NLP任务,包括但不限于:
- BertForSequenceClassification:用于句子分类,比如GLUE benchmark的各个任务,结构上比较简单,就是BertModel(有pooling)过一个dropout后接一个线性层输出分类。在前向传播时,和上面预训练模型一样需要传入labels输入,如果初始化的num_labels=1,那么默认为回归任务,使用MSEloss;否则认为是分类任务。
- BertForMultiChoice:用于多项选择。多项选择任务的输入为一组分次输入的句子,输出为选择某一句子的单个标签,结构上与句子分类相似,只不过线性层输出维度为1,即每次需要将每个样本的多个句子的输出拼接起来作为每个样本的预测分数;实际上,具体操作是把每个batch的多个句子一同放入的