bert源码详解

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

BERT源码详解

共四部分:
1.生成预训练数据:create_pretraining_data.pytokenization.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.py

FullTokenizer():

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,替换的原始文本

4.假设原始两个句子为:”it is a good day”和”I want to go out”,那么处理后的TrainingInstance可能为:

1.tokens = ["[CLS], “it”, “is” “a”, “[MASK]”, “day”, “[SEP]”, “

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值