[Paddle] ERNIE-UIE 通用信息抽取模型(含自定义细分领域模型训练)

介绍

  ERNIE-UIE信息抽取模型可以进行关键信息抽取,可参照官网安装流程进行配置和使用。

  但是在实际的细分领域中(细分的应用场景),信息抽取的效果并不好(中文书写习惯截然不同),本文按照官网的方式,进行模型训练从而进一步提升效果,并进行记录。

环境配置

  1. Paddle、ERNIE-UIE

    1. Paddle Install
    2. ERNIE-UIE Install
    3. 正确安装后能够正确返回信息抽取的结果;
  2. doccano数据标注

    1. 介绍
    2. 安装
    3. doccano环境安装成功后,登录系统并创建一个[序列标注]类型的项目[regex],如图所示定义了三个Tag: [‘start’, ‘label’, ‘end’]。图片无法正常查看的话, 访问
      创建一个序列标注项目
    4. 在[regex]项目下,导入数据集并且进行标注,如图所示,每一段话按顺序标注[‘start’, ‘label’, ‘end’] 三个部分。图片无法正常查看的话, 访问
      使用doccano进行数据标注
    5. 如上图所示,选中数据进行导出,会下载一个zip文件夹,内部包含一个名为[admin.jsonl]的文件,将其重命名为 doccano_ext.json。
  3. PaddleNLP

    1. 使用 git clone 命令下载PaddleNLP

    2. 进入到 /model_zoo/uie 文件夹并创建 data 文件夹,并将上传上述生成的 doccano_ext.json 文件。

    3. 进行数据转换,执行如下命令,会在 data 文件夹下生成:train.txt、test.txt、dev.txt、sample_index.json 这些文件。

      python doccano.py  --doccano_file ./data/doccano_ext.json  --task_type "ext"  --save_dir ./data  --negative_ratio 5
      
    4. 建议在GPU环境下进行模型微调,作者租用了一台 A30(24G显存)进行的训练。

    5. 使用定制的模型进行预测,修改 ERNIE-UIE 官网提供的代码(注意 Taskflow 是通过task_path指定模型权重文件的路径)

      schema = ['start', 'label', 'end']
      my_ie = Taskflow("information_extraction", schema=schema, task_path='./checkpoint/model_best')
      
    6. 通过结果能改看到模型发生了变化。

      [{
        'end': [{
          'end': 24,
          'probability': 0.8684210982049407,
          'start': 21,
          'text': '第三章'
        }],
        'label': [{
          'end': 12,
          'probability': 0.9925105558749578,
          'start': 10,
          'text': '借阅'
        }],
        'start': [{
          'end': 3,
          'probability': 0.8233676770565523,
          'start': 0,
          'text': '第二章'
        }]
      }]
      
  4. 总结
      通过标注少量数据对 UIE 模型进行微调,将其应用到垂直细分领域,提升了信息提取的效果,能够更方便的将其应用到细分的实际应用场景中。

  5. 参考

    1. https://github.com/PaddlePaddle/PaddleNLP
    2. https://github.com/doccano/doccano
    3. https://pap-docs.pap.net.cn/#/md/other/paddle/paddle-install
  • 19
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
训练Paddle模型需要通过Deep Learning Java (DLJava)工具包 (DJL) 来实现。DJL是一个开源的Java深度学习框架,在PaddlePaddle的基础上提供了Java API。下面是一个简单的步骤来训练Paddle模型使用DJL: 1. 安装DJL: 首先,需要在你的Java项目中引入DJL的依赖。可以通过在项目的构建文件中添加相关依赖来实现。 2. 加载训练数据: 使用DJL可以很容易地加载和处理你的训练数据。可以使用DJL的DataSet API来加载数据,然后可以对数据进行处理和转换。 3. 构建模型: 在DJL中,可以使用PaddlePaddle提供的模型构建块来构建你自己的模型。可以通过调用DJL的Model API来创建一个模型对象,并选择PaddlePaddle提供的各种模型架构。可以使用PaddlePaddle的预训练模型或者自己定义的模型。 4. 设置训练参数: 在模型训练之前,需要设置一些训练参数,例如学习率、优化器等。DJL提供了一些常用的优化器和损失函数供你选择。 5. 训练模型: 通过调用DJL的Trainer API来训练模型。可以指定训练的轮数、批次大小等参数。DJL会自动将数据切分为小批次进行训练,并进行反向传播和参数的更新。 6. 评估模型: 在训练完成后,可以使用测试数据来评估模型的性能。可以使用DJL提供的Evaluator API来进行评估,并计算模型的准确度或其他评价指标。 7. 保存和加载模型: 训练完成后,可以将模型保存为文件,以便以后使用。DJL提供了ModelZoo API来保存和加载模型。 总之,通过DJL工具包,您可以使用Java语言来训练Paddle模型。可以使用DJL提供的API来加载数据、构建模型、设置训练参数、训练模型、评估模型和保存模型。它提供了简化的接口和丰富的功能,使您能够轻松地进行Paddle模型训练和部署。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值