实战:采用字mask和wwm mask在中文领域内finetune bert模型

随着google发布bert模型,bert改进版本已经到来,bert-wwm、 bert-wwm-ext、 Roberta-wwm-ext、ENRIE、XLNET各种变种版本都出现了,本人主要这对google开源的bert版本,修改其源码,数据处理上上采用字mask和wwmmask,框架依然采用tensoflow,但是将源码中estimator显式训练,个人认为estimator训练过程是个黑盒子,对于模型损失函数和准确率不好调试。

代码地址

https://github.com/yanqiuxia/BERT-PreTrain

与google开源代码更改地方

1. 移除 google estimator,采用自己train方法

google 开源bert run_pretraining.py代码 

 

改写的train 代码 可以显式观察模型训练情况 

 

2.数据预处理

google源码中文只支持字mask,对于wwm mask需要修改,所以将源码改成既支持字mask,和wwm mask。字mask和源代码相同,下面主要讲wwm mask。

wwm 数据预处理脚本  modi_create_pretraining_data.py,输入数据格式是:一行为一句,篇章之间分割采用行分割,空格为已经分好词语。采用 modi_tokenization.py进行分词,例如词'市长'将被分为'市','##长'两个词,在进行'create_masked_lm_predictions'需要把'##'去掉,具体见代码。

 

将##x替换为x 

 

3.输入模型数据的修改

预先将字mask和wwm mask数据存储为tf_record格式,读入数据直接采用reader_tfrecord

read tfrecord 

 

生成训练和验证batch 

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值