第一步 下载所需
下载bert源码和模型
首先我们下载bert的源码和官方的模型,去官网 :
https://github.com/google-research/bert
下载官网源码:
下载官方模型:
好好找一下,往下翻翻,肯定有下面这样一个位置。
下载GLUE数据集
要运行bert的模型,需要用到指定的GLUE数据集,数据集下载地址:
https://gluebenchmark.com/tasks
GLUE是一个统称,里面有很多个独立的数据集,例如如果只使用MRPC进行测试,那可以只下载MRPC数据集,如果出现无法下载的情况,可以使用我下载好的:
链接:https://pan.baidu.com/s/1rhy138f0wPNgTZwjO0CV4g
提取码:dkf6
第二步 运行环境配置
经过上面的步骤,你已经得到了bert运行的所有数据,现在只需要配置你本地的环境。
创建虚拟环境
这里使用conda创建一个新的虚拟环境:
conda create -n bert python=3.7
bert的运行需要tensorflow的支持,要在该环境中安装一下tensorflow,需要注意的是,一定要安装下面指定版本,不然后面运行会报错。
conda activate bert // 进入刚创建的虚拟环境
conda install tensorflow==1.14 // 安装tensorflow 1.14 版本
创建工程
使用pycharm创建一个用于运行测试的新的工程项目。
然后把bert源码,glue数据集,官网模型都放到该项目中,看我的目录结构:
如果你是自己下载的glue数据集,可能和我的目录结构有一点点不一样,请忽略多余的文件即可。
还有主要的一点,就是把该工程的python环境注意配置好,配置成刚才新创建名为 bert 的环境。
然后有一个细节,可以选择打开:
我们需要在pycharm里面打开 bert 的源码文件夹,再进行后面的运行测试,因为bert 源码文件夹里面有些py文件是相互引用的,这样选择打开以后,引用就不会报错啦。
打开以后就是这个样子:
配置运行参数
运行前的最后一步,配置一下运行参数,就是指定一下batch_size 和 数据集位置等等,选中下图中的文件(因为后面我们就是用这个文件进行运行的):
设置一下运行参数,这些参数设置好以后,后面我们只需要直接运行该文件就行了,不需要手动在命令行进行传参了。
在上图红框后面的输入框内输入(复制扔里面就行,不用管格式):
--task_name=MRPC \
--do_train=true \
--do_eval=true \
--data_dir=../glue/glue_data/MRPC \
--vocab_file=../glue/BERT_MODEL_DIR/uncased_L-12_H-768_A-12/vocab.txt \
--bert_config_file=../glue/BERT_MODEL_DIR/uncased_L-12_H-768_A-12/bert_config.json \
--init_checkpoint=../glue/BERT_MODEL_DIR/uncased_L-12_H-768_A-12/bert_model.ckpt \
--max_seq_length=128 \
--train_batch_size=8 \
--learning_rate=2e-5 \
--num_train_epochs=1.0 \
--output_dir=../glue/outputs
上面复制,下面添加个注释简单解释一下。
--task_name=MRPC \ //要使用的数据集
--do_train=true \
--do_eval=true \
--data_dir=../glue/glue_data/MRPC \ // 数据集位置
--vocab_file=../glue/BERT_MODEL_DIR/uncased_L-12_H-768_A-12/vocab.txt \ // 模型词典文件
--bert_config_file=../glue/BERT_MODEL_DIR/uncased_L-12_H-768_A-12/bert_config.json \
--init_checkpoint=../glue/BERT_MODEL_DIR/uncased_L-12_H-768_A-12/bert_model.ckpt \
--max_seq_length=128 \ // 这个看你电脑的配置,尽量别太大
--train_batch_size=8 \ // 这个看你电脑的配置,尽量别太大
--learning_rate=2e-5 \
--num_train_epochs=1.0 \
--output_dir=../glue/outputs // 训练好的模型输出路径
唯一要注意的是,路径别弄错了,这里的路径和我上面工程结构的图是一致的。
最后可以尝试运行一下 run_classifier.py 文件试试啦!!!