本博客记录的是Datawhale组织的竞赛组队学习NLP赛事,因为我一直很想打比赛但又不知道怎么入门,所以非常开心能有这样的机会完整体验一遍比赛流程。
比赛的详细内容以及开源的baseline资料如下:
比赛地址:https://tianchi.aliyun.com/s/3bd272d942f97725286a8e44f40f3f74
开源内容:https://github.com/finlay-liu/tianchi-multi-task-nlp 4
环境配置
以下是我的环境配置:
- win10 专业版(因为家庭版安装docker太麻烦了 于是我升级成了专业版)
- python 3.8
- pytorch 1.7.1
- transformers包
- sklearn包
文件配置
- 主要根据baseline的教程步骤下载好bert(网址)配置好文件:config.json、vocab.txt、pytorch_model.bin
- 以及数据集,其中网上下好的数据集名字需要自己手动改成对应的名字并放在相应的文件夹下。文件目录样例:
tianchi-multi-task-nlp/tianchi_datasets/OCNLI/total.csv
tianchi-multi-task-nlp/tianchi_datasets/OCNLI/test.csv
跑通baseline
将上面的文件都配置好以后开始按照教程步骤训练:
- 分开训练集和验证集,默认验证集是各3000条数据,参数可以自己修改:
python ./generate_data.py
但在这个地方会出现报错:
解决办法就是在错误定位的位置加上:,encoding='utf-8'
即可
- 训练模型,会保存验证集上平均f1分数最高的模型到 ./saved_best.pt
python ./train.py
但是这个直接运行,会在训练到60000th的时候报错:
解决办法是在data_generator.py文件的这个部分加上3个elif语句,即下面3个红框即可运行ÿ