一、PD Runner下载介绍
PD Runner作为一款优秀的Paddle Serving启动器,能够为使用Paddle Serving部署的模型提供批量查询服务。PD Runner下载的方式有多种,包括GitHub、Docker Hub、PaddlePaddle官网等途径。但是,其中最为便捷和流程标准的是通过GitHub下载最新版本的源码,自主编译的方法获取PD Runner。
二、通过GitHub下载PD Runner源码
GitHub相信大家都非常熟悉了,这里说一下PD Runner在GitHub上获取的步骤。如下:
git clone https://github.com/PaddlePaddle/Serving.git
cd Serving/
git checkout develop
cd paddle/fluid/inference/api/demo_ci/pdrunner
其中git clone是克隆一份Serving代码,cd Serving/进入Serving目录,git checkout develop是将Serving代码切换到对应版本,进入pdrunner目录。
三、PD Runner编译
PD Runner下载完成后需要进入pdrunner目录进行编译。官网提供的编译命令如下:
./compile.sh -d x86_cuda10.0
其中-d代表构建平台的选项,不同的选项可能需要用到不同的编译环境,目前可供选择的选项有:
- x86_cpu
- x86_cuda10.0
- x86_cuda10.1
- x86_cuda10.2
- armeabi-v7a
- arm64-v8a
更多编译选项可通过./compile.sh --help命令查询。
四、PD Runner使用
PD Runner编译完成后,我们就可以使用它进行模型部署。以下是使用PD Runner进行模型部署的基本步骤:
- 准备模型文件
- 准备配置文件
- 运行PD Runner命令进行服务开启
PD Runner支持多种模型的导入,如PaddlePaddlefluid模型、ONNX格式模型,以及其他常见的深度学习框架模型。我们在样例中使用PaddlePaddle提供的"GPT2 EN small"模型。
1.准备模型文件
将模型文件以及相关文件夹放置于任意文件夹下,如下图:
2.准备配置文件
PD Runner服务的配置文件是一个JSON格式文件,常用的几个键值对配置如下:
{
"conf": "./conf/pdrunner/pdrunner_conf.prototxt",
"mode": "gpu",
"devices": "0",
"log_dir": "/tmp/log_dir",
"web_service": true,
"port": 9292,
"max_concurrency": 4
}
其他可选的配置信息包括序列号化方式、模型文件路径、预测API路径、保存模型路径以及预测超时时间等,详情请参考官网文档。
配置完成后,将JSON格式的配置文件放置于任意目录下,更改目录和JSON文件名,如下图:
3.运行PD Runner命令进行服务开启
使用以下命令启动PD Runner服务:
./pdrunner http --model <模型文件夹> --port <服务端口> --config <配置文件路径>
其中参数--model指明模型文件夹的位置,<模型文件夹>为配置的模型文件夹路径;--port指明服务开放的端口号,<服务端口>为配置的服务端口号;--config指明配置文件的位置,<配置文件路径>为配置文件的路径。
命令执行完成后,在本地主机上访问127.0.0.1:9292/ping可以确认是否服务成功开启。
五、小结
PD Runner下载、编译与使用相对比较简单,通过上述步骤即可完成基于Paddle Serving的模型部署。需要注意的是,不同的模型具有不同的模型导入方式,需要根据实际情况进行调整。如有需要,可通过官网提供的文档进行进一步学习。