赞
踩
本文建立在deepke的依赖环境都已经安装好的基础上,如果对于deepke的安装大家有问题,后边也可以专门出一期教程。
目前关于deepke的实战教程大多数是以re关系抽取作为演示的,ner的代码和教程通过readme也能跑也能做,不过还是会有一些bug,这里将我实验过程中的步骤,以及遇到的bug、且如何调整,给大家分享一下。
1、准备数据集:首先根据其readme教程将数据宕下来并解压缩放在data文件夹里
wget 120.27.214.45/Data/ner/standard/data.tar.g
2、修改配置文件:事实上,如果数据准备好的话,就可以开始运行程序了:python run_lstmcrf.py,但是根据每个人电脑的情况,需要对配置文件进行修改,否则就会报出各种各样的错误
(1)首先是trian.yaml里gpu_id改为0(原本的是1,但是报错,参考re里的yaml,是0,就不报这个错了)主要是我的电脑就一个显卡,索引应该是0
(2)config.yaml中hydra/model为根据需求改为bert或lstmcrf,这里我用lstmcrf做演示
(3)第三个比较重要的是修改trian.yaml里的train_batch_size(原本这里的参数值是128,我的电脑英伟达显卡的显存能力是6GB,运行的时候一直显示out of memory,改成32之后就能顺利运行了)
这里的一个知识点是:如果显存资源有限,可以尝试减小批量大小或者缩小模型规模来适应硬件条件。(参考了这位作者的链接:https://blog.csdn.net/baidu_22388649/article/details/129149343)
3、运行程序:然后python run_lstmcrf.py,就能顺利出结果啦!(不过运行有些慢)
通过模型结果可以看见准确率是0.9784
4、接下来运行python run_bert.py则要在config里将模型类型修改一下
在训练bert模型这里,可以看到train_batch_size改为32已经是本台电脑的最大能力了,可以看见显存利用率一直近爆,运行非常慢,电脑很烫,先暂停了。
但如下图所示(训练bert模型的过程),是能进行训练的。
这里需要注意的是,要把之前训练lstmcrf生成的checkpoint文件夹里的model.pth模型结果文件删掉(或者你给它保存到另外一个地方),把这个文件夹空出来,否则就会报错文件夹非空。
对了,如果你没有下载bert-base-chinese的参数模型的话,这是BERT模型参数下载的地址:https://huggingface.co/bert-base-chinese
将文件下载之后放在deepKE的pretrain文件夹下就行
核心是pytorch_model.bin文件、config.json文件、vocab.txt文件
不过根据程序读取路径,我在deepke主文件夹下也放了这个文件夹以防万一
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。