这几天在研究bert fine-tune相关的知识,现在基本熟悉了,也踩了一些坑,记录一下,一是总结,二是备忘。
bert 的 finetune 主要存在两类应用场景:分类和阅读理解。因分类较为容易获得样本,以下以分类为例,做模型微调:
环境:python 3.6
tensorflow:1.12(必须>=1.11)
完成中文分类需要有一、bert官方开源的代码,二、bert开源的预训练的中文模型chinese_L-12_H-768_A-12,三、中文分类数据,数据格式为(类别\t句子)
1、模型与代码下载:
1.1 首先clone 官方代码,地址如下:
git clone https://github.com/google-research/bert.git
cd bert
随便放在哪个目录都可以
1.2 bert开源的预训练的中文模型chinese_L-12_H-768_A-12
地址:https://github.com/google-research/bert
2、数据集准备
数据获取地址:data
train.tsv 训练集
dev.tsv 验证集
test.tsv 测试集
第一列为 label,第二列为具体内容,tab 分隔。因模型本身在字符级别做处理,因而无需分词。
tsv文件是类似于csv,只不过分割符号有所区别csv为,,而tsv为\t,即tab键。
注意:链接data中 test为空,我这样处理的:从train.tsv文件中从3个类别分别剪切出来10条数据,放到test里面了,将原来的类型标签全部改成了unknow,然后将后缀改成.tsv,一定要剪切,不然训练集包含了测试集,模型效果就特别好