Skip to content

有一个通用实体关系事件抽取的任务,需要使用到UIE模框架,而且需要将起部署到昇腾310服务器上,因为UIE模型底层使用的是ernie3.0,但是目前paddle官方还不支持ernie3.0模型在昇腾310上部署,所以才有了以下的操作,主要过程是,先试用paddle训练处模型,然后使用 paddle2onnx.command.c_paddle_to_onnx方法将paddle的模型转为onnx模型 ,因现在的onnx模型是动态的shape和散乱的算子形态,需要使用paddle自带的工具paddle2onnx.optimize将onnx模型先进行重塑,固定好shape的维度,将散乱的算子进行整合,命令如下: $ python -m paddle2onnx.optimize --input_…

Notifications You must be signed in to change notification settings

lijiaqi0612/UIE-ACL-310

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

UIE-ACL-310

需求背景

有一个通用实体关系事件抽取的任务,需要使用到UIE模框架,而且需要将起部署到昇腾310服务器上,因为UIE模型底层使用的是ernie3.0,但是目前paddle官方还不支持ernie3.0模型在昇腾310上部署,所以才有了以下的操作,主要过程是:

  1. 先试用paddle训练处模型

  2. 然后使用 paddle2onnx.command.c_paddle_to_onnx方法将paddle的模型转为onnx模型

  3. 因现在的onnx模型是动态的shape和散乱的算子形态,需要使用paddle自带的工具paddle2onnx.optimize将onnx模型先进行重塑,固定好shape的维度,将散乱的算子进行整合

    • 命令如下:
    $ python -m paddle2onnx.optimize --input_model PaddleNLP/model_zoo/uie/export_new/model.onnx --output_model ./model_new_uie.onnx --input_shape_dict "{'att_mask':[1,512],'pos_ids':[1,512],'token_type_ids':[1,512],'input_ids':[1,512]}"  
    
  4. 然后将onnx模型在使用ATC工具转为acl所需要的om模型

  5. 另外在使用acl部署的时候,paddle框架是不能使用的,acl使用到的模型和训练过程均需要自己实现,包括from_pretrain阶段的分词,建立词表,数据处理部分,这部分我已经实现完,纯python版本的实现

执行过程

模型没有上传,可以按照上面所说的方式训练一版om的模型,或者我后面将om模型上传到百度云,感兴趣的可以自行下载。

直接运行uie_predict.py文件就可以,如果没有跑通应该是文件路径有问题,可以改一下路径适配:

python uie_predict.py

使用flask部署的代码后面可能会更新。

About

有一个通用实体关系事件抽取的任务,需要使用到UIE模框架,而且需要将起部署到昇腾310服务器上,因为UIE模型底层使用的是ernie3.0,但是目前paddle官方还不支持ernie3.0模型在昇腾310上部署,所以才有了以下的操作,主要过程是,先试用paddle训练处模型,然后使用 paddle2onnx.command.c_paddle_to_onnx方法将paddle的模型转为onnx模型 ,因现在的onnx模型是动态的shape和散乱的算子形态,需要使用paddle自带的工具paddle2onnx.optimize将onnx模型先进行重塑,固定好shape的维度,将散乱的算子进行整合,命令如下: $ python -m paddle2onnx.optimize --input_…

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages