BERT模型的结构就是Transformer模型的Encoder结构,只是具体参数上有些小改动。BERT模型真正创新的地方在于模型的训练方法。
在“BERT:Pre-training of Deep Bidirectional Transformers for Language Understanding”论文中,其作者使用了两个任务来训练,一个任务是掩码语言模型(Masked Language Model),简称MLM,简单地说就是完形填空;另一个任务是预测下一个句子(Next Sentence Prediction),简称NSP,就是根据字面意思预测下一个句子。
如图所示便是MLM和NSP这两个任务在BERT预训练时的输入输出示意图,其中最上层输出C的在预训练时用于NSP中的分类任务;其它位置上的Ti 则用于预测被掩盖的Token。
另外,BERT模型中的输入信号,其跟Transformer模型中的有一点不同。
Transformer模型中的输入信号由分词向量(Token Embedding)和位置向量(Position Embedding)组成;BERT模型中的输入信号由分词向量(Token Embedding)、段落向量(Segment Embedding)和位置向量(Position Embedding)组成。
MLM训练如图所示:
NSP训练如图所示:
BERT模型中使用了大量没有人工标注但又自带标签的数据来进行训练(MLM和NSP都可以看成语料本身就已经自带标签)。
当时,谷歌使用64块TPU训练BERT LARGE模型花了4天时间,租用这些TPU训练一次模型的价格大约是30万人民币,所以一般情况下我们就不要想复现模型了,直接使用谷歌发布的预训练模型就可以。
本文暂时没有评论,来添加一个吧(●'◡'●)