BERT的demo运行
概述
自从google发布了《Pre-training of Deep Bidirectional Transformers for Language Understanding》,一举刷新多项NLP领域记录后。BERT模型可谓红遍NLP领域,许多人都想使用BERT对自己的数据进行预处理。本文接下来将会简单介绍几个使用BERT模型运行的demo。由于当前对bert分析的文章太多,这里也不在赘述。如果之前没有了解过bert模型,可以点击这里。或者可以直接点击原论文进行查看。
实际操作
1.环境
运行环境:linux环境(楼主也运行过windows,总是有各种不知名错误,最后放弃了)
GPU:1080Ti(之前用1050Ti的跑总是显示GPU不够,也不知道最小应该多少,直接上的1080Ti就可以跑了)
python:3.6.5
Tensorflow-gpu :1.12.0(>=1.11.0)(文章要求最低1.11.0版本,楼主也是直接升级到最新,至于bert-pytorch开源版本跑起来总是各种问题,等楼主解决了,再更新,这期只介绍tensorflow版本的bert)
2.下载bert源码和demo源码
直接通过linux命令行,直接clone
git clone https://github.com/google-research/bert.git
(Bert源码)
git clone https://github.com/ProHiryu/bert-chinese-ner
(使用预训练语言模型BERT做中文NER尝试,fine - tune BERT模型)
3.下载预训练模型
BERT-Base, Uncased
英文模型
(之所以选择这个版本是首先因为训练语言为英文,同时显存资源有限,于是选择Base版本。cased表示区分大小写,uncased表示不区分大小写。除非你明确知道你的任务对大小写敏感(比如命名实体识别、词性标注等)那么通常情况下uncased效果更好。)
BERT-Base, Chinese中文模型
4.下载训练数据:
(1)下载MRPC语料:
官网上指定的方式是通过跑脚本download_glue_data.py来下载 GLUE data 。指定数据存放地址为:glue_data, 下载任务为:MRPC,执行(本篇中所有python3的命令同样适用于python):
python3 download_glue_data.py --data_dir glue_data --tasks MRPC
但是大概率下载不下来,我就是这样。能下载的步骤也很麻烦,于是楼主下载之后放到网盘了。
链接:https://pan.baidu.com/s/1-b4I3ocYhiuhu3bpSmCJ_Q
提取码:z6mk
2)下载SQuAD语料:
基本上没什么波折,可以使用下面三个链接直接下载,放置于$SQUAD_DIR路径下
train-v1.1.json
dev-v1.1.json
evaluate-v1.1.py
3)NEWS数据
用于BERT做中文NER尝试,不过源码自带了,不用单独下载
5. run demo:
(1) 基于MRPC语料的句子对分类任务
训练:
设置环境变量,指定预训练模型文件和语料地址
export