BERT源码详解
共四部分:
1.生成预训练数据:create_pretraining_data.py,tokenization.py’
2.bert模型预训练:run_pretraining.py
3.bert主模型:modeling.py
4.fine-tuning: run_squad.py
第一部分:
生成预训练数据:create_pretraining_data.py,tokenization.py
1.设置tokenizer为fulltokenizer,负责对文本进行预处理:
tokenization.pyFullTokenizer():
1.load_vocab加载词典 ,建立词到id,id到词的映射关系
2.BasicTokenizer(): 对原始文本进行预处理,包括删除无效字符、转换空白字符为空格、将中文及部分韩文日文字符前后加空格、去除accent字符等,最后按空格分隔,返回tokens列表。
3.WordoieceTokenizer(): 把上面的结果再细粒度的切分为WordPiece,WordpieceTokenizer的目的是将合成词分解成类似词根一样的词片。例如,将"unwanted"分解成[“un”, “##want”, “##ed”]
2.构造训练样本:create_training_instances(), create_instances_from_document()
3.随机mask:返回mask后的样本,替换的index,替换的原始文本

本文详细介绍了BERT模型的各个组成部分,包括预训练数据的生成,模型的预训练过程,BERT主模型的结构,以及微调的步骤。重点讲解了数据预处理,如FullTokenizer的工作原理,以及模型的构建,特别是transformer中的多头自注意力机制。此外,还涵盖了训练和验证的流程。

1772

被折叠的 条评论
为什么被折叠?



