[Paddle] ERNIE-UIE 通用信息抽取模型(含自定义细分领域模型训练)
介绍
ERNIE-UIE信息抽取模型可以进行关键信息抽取,可参照官网安装流程进行配置和使用。
但是在实际的细分领域中(细分的应用场景),信息抽取的效果并不好(中文书写习惯截然不同),本文按照官网的方式,进行模型训练从而进一步提升效果,并进行记录。
环境配置
Paddle、ERNIE-UIE
正确安装后能够正确返回信息抽取的结果;
doccano 数据标注
doccano 环境安装成功后,登录系统并创建一个[序列标注]类型的项目[regex],如图所示定义了三个 Tag: ['start', 'label', 'end']。图片无法正常查看的话, 访问
在[regex]项目下,导入数据集并且进行标注,如图所示,每一段话按顺序标注['start', 'label', 'end'] 三个部分。图片无法正常查看的话, 访问
如上图所示,选中数据进行导出,会下载一个 zip 文件夹,内部包含一个名为[admin.jsonl]的文件,将其重命名为 doccano_ext.json。
PaddleNLP
使用 git clone 命令下载PaddleNLP。
进入到 /model_zoo/uie 文件夹并创建 data 文件夹,并将上传上述生成的 doccano_ext.json 文件。
进行数据转换,执行如下命令,会在 data 文件夹下生成:train.txt、test.txt、dev.txt、sample_index.json 这些文件。
建议在 GPU 环境下进行模型微调,作者租用了一台 A30(24G 显存)进行的训练。
使用定制的模型进行预测,修改 ERNIE-UIE 官网提供的代码(注意 Taskflow 是通过 task_path 指定模型权重文件的路径)
通过结果能改看到模型发生了变化。
总结
通过标注少量数据对 UIE 模型进行微调,将其应用到垂直细分领域,提升了信息提取的效果,能够更方便的将其应用到细分的实际应用场景中。
版权声明: 本文为 InfoQ 作者【alexgaoyh】的原创文章。
原文链接:【http://xie.infoq.cn/article/29c926faac7a86e9485fe50d7】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论