前言
1.Bert使用Transformer的Encoder
2.预训练包括masked lamngluage modeling和next sentence classification 2个任务
3.强大且开源
1.模型结构,对照pytorch实现
1.BertModel继承自BertPreTrainedModel,父类包括不同种类的权重和偏置的初始化函数以及模型加载函数。
2.BertModel实施Embedding、Encoder、取Encoder的最后一层进行BertPooler,可选择输出Encoder的最后一层或全部,此外还输出Pooler的结果。
3.Embedding模块将input_ids、position_ids、token_type_ids分别进行nn.Embedding变换,3个输出矩阵相加后进行层归一化和dropout后输出。其中position_ids初始化为位置编号(0,1,…);token_type_ids为段号(segment_ids),当输入为两个句子时,以0/1区分,否则该字段为0.
4.Encoder模块由若干个相同BertLayer模块串联组成,由bool型参数output_all_encoded