当前位置:   article > 正文

【deepKE做NER教程】调bug!lstmcrf和bert均跑通

deepke

本文建立在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主文件夹下也放了这个文件夹以防万一在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/348064?site
推荐阅读
相关标签
  

闽ICP备14008679号