win10 BERT fine-tuning MRPC句子对分类任务实战
说明:
GLUE (General Language Understanding Evaluation) 数据集:为了能够标准化的和综合性的评估NLU(自然语言理解)算法和模型而构造出来的一套包含数据集,在线评估平台的工具。
其中包含了九个数据集,其中MRPC(Microsoft Research Paraphrase Corpus)是微软的语料库,收录了3600对句子并标注每对句子是否在语义上等价。
参考:https://www.jianshu.com/p/3d0bb34c488a
环境:
- 硬件:gtx1060 6g 6代i7 12g
- 系统:win10
- python:3.6.7
- tensorflow:1.11 (官网requirements.txt有写)
下载:
- 官方网址:https://github.com/google-research/bert
- GLUE(MRPC):https://gist.github.com/W4ngatang/60c2bdb54d156a41194446737ce03e2e
- 首先当然是在官网clone BERT到本地啦,假设该文件夹叫BERT
- 然后跑GLUE下载文件,下载目录默认在该程序所在文件里
- 接着下载BERT预训练模型,官网上有给,我们就用最基本的英文版本吧,uncased就是不区分大小写,统一以小写处理文本,Base版本是照顾小显存的,Large版本需要使用到16G以上的显卡
修改BERT的run_classifier.py文件
谷歌官网给出了参考例子,我们照着修改
在FLAGS语句根据自己的目录增加以下变量,如图所示
base_bert_file = 'D:/nlp/bert-master/uncased_L-12_H-768_A-12' # BERT与训练模型
data_dir = 'D:/nlp/bert-master/glue/glue_data/MRPC' # MRPC的目录
task_name = 'MRPC' # 要运行的任务
看到## Required parameters注释,把None改成刚刚的变量。照葫芦画瓢就行了。
注意,如果显存溢出,注意把max_seq_length和train_batch_size改小,这里我改成了80和16
然后就是慢慢等结果啦,谷歌说84~88%都是正常的结果
预测:
同样依葫芦画瓢,按照谷歌的去做即可。