Skip to content

Latest commit

 

History

History
54 lines (43 loc) · 3.86 KB

File metadata and controls

54 lines (43 loc) · 3.86 KB

Paddle Inference部署

本文档将介绍如何使用Paddle Inference工具进行问题生成应用高性能推理推理部署。

目录

背景介绍

Paddle inference和主框架的Model.predict均可实现推理预测,Paddle Inference 是飞桨的原生推理库, 作用于服务器端和云端,提供高性能的推理能力,主框架的Model 对象是一个具备训练、测试、推理的神经网络。相比于Model.predict,inference可使用MKLDNN、CUDNN、TensorRT进行预测加速。Model.predict适用于训练好的模型直接进行预测,paddle inference适用于对推理性能、通用性有要求的用户,针对不同平台不同的应用场景进行了深度的适配优化,保证模型在服务器端即训即用,快速部署。由于 Paddle Inference 能力直接基于飞桨的训练算子,因此它支持飞桨训练出的所有模型的推理。

Paddle Inference Python端预测部署主要包含两个步骤:

  • 导出预测部署模型
  • 基于Python预测

导出预测部署模型

部署时需要使用预测格式的模型(即动态图转静态图操作)。预测格式模型相对训练格式模型而言,在拓扑上裁剪掉了预测不需要的算子,并且会做特定部署优化。具体操作详见FasterTransformer加速及模型静态图导出

基于Python预测

在终端输入以下命令可在GPU上进行预测:

python deploy/paddle_inference/inference.py \
               --inference_model_dir ./export_checkpoint \
               --model_name_or_path "unimo-text-1.0" \
               --predict_file predict_file_name \
               --output_path output_path_name \
               --device gpu \

经静态图转换,FastTransformer性能优化,Paddle Inference加速后的部署模型在dureader_qg devset的预测时间为27.74秒,相较于未优化前169.24秒,耗时缩减为原来的16.39%。 关键参数释义如下:

  • inference_model_dir:用于高性能推理的静态图模型参数路径,默认为"./export_checkpoint"。
  • model_name_or_path:tokenizer对应模型或路径,默认为"unimo-text-1.0"。
  • dataset_name:数据集名称,默认为dureader_qg
  • predict_file:本地预测数据地址,数据格式必须与dataset_name所指数据集格式相同,默认为None,当为None时默认加载dataset_name的dev集。
  • output_path:表示预测结果的保存路径。
  • device:推理时使用的设备,可选项["gpu"],默认为"gpu"。
  • batch_size:进行推理时的批大小,默认为16。
  • precision:当使用TensorRT进行加速推理时,所使用的TensorRT精度,可选项["fp32", "fp16"],默认为"fp32"。