本系列根据WAVE SUMMIT+2022深度学习开发者峰会「飞桨升级 引领创新」论坛嘉宾分享整理。本文整理自百度飞桨资深研发工程师的主题演讲——FastDeploy全场景高性能AI部署工具。
碎片化。在部署过程中,由于深度学习框架、硬件与平台的多样化,开源社区以及各硬件厂商存在大量分散的工具链,很难通过一款产品,同时满足开发者在服务端、移动端和边缘端,以及服务化场景部署的需求。
因此飞桨全新发布新一代部署产品——FastDeploy部署工具,为产业实践中需要推理部署的开发者提供最优解。
目前FastDeploy底层包含了飞桨的推理引擎、开源社区硬件厂商的推理引擎,结合飞桨统一硬件适配技术可以满足开发者将模型部署到主流AI硬件的需求。
模型压缩与转换工具使得开发者通过统一的部署API实现多框架模型的推理,同时,飞桨自研的PaddleSlim为大家提供更易用、性能更强的模型自动化压缩功能。
而在统一的部署API之上,我们还提供了丰富的多场景部署工程,满足开发者对于服务端、移动端、网页端的端到端部署需求。
多端部署
import fastdeploy as fd
import cv2
im = cv2.imread( "test.jpg")
# 通过RuntimeOption配置后端
option = fd.RuntimeOption()
option.use_paddle_infer_backend()
# 加载飞桨PPYOLOE检测模型
model = fd.vision.detection.PPYOLOE(“model.pdmodel”,
“model.pdiparams”,
“infer_cfg.yml”,
runtime option=option)
result = model.predict(im)
使用Paddle Inference部署
import fastdeploy as fd
import cv2
im = cv2.imread( "test.jpg")
# 通过RuntimeOption配置后端
option = fd.RuntimeOption()
option.use_openvino_backend()
# 加载飞桨PPYOLOE检测模型
model = fd.vision.detection.PPYOLOE(“model.pdmodel”,
“model.pdiparams”,
“infer_cfg.yml”,
runtime option=option)
result = model.predict(im)
使用OpenVINO部署
多框架支持
多硬件适配
import fastdeploy.vision as vision
model = vision.detection.PPYOLOE(“model.pdmodel”,
“model.pdiparams”,
“infer_cfg.yml”)
result = model.predict(im)
Python部署
#include “fastdeploy/vision.h”
namespace vision = fastdeploy::vision;
int main(int argc, char* argv[]) {
...
auto model = vision::detection::PPYOLOE(“model.pdmodel”,
”model.pdiparams”,
”infer_cfg.yml”)
vision::DetectionResult result;
model.Predict(image, &result);
...
C++部署
无损量化压缩,软硬协同加速
FastDeploy集成了飞桨压缩和推理的特色,实现了自动化压缩与推理引擎深度联动,为开发者提供更高效的量化推理部署体验。以PP-LCNetV2和ERNIE 3.0模型为例,传统的KL离线量化会明显降低模型压缩后的精度,但在FastDeploy的最新版本中,飞桨通过集成PaddleSlim最新的ACT自动压缩技术,实现模型几乎无损的压缩功能。
端到端全流程优化
总体而言,本次全新发布的FastDeploy部署套件可以满足开发者全场景的高性能部署需求,大幅提升在AI产业部署中的开发效率。FastDeploy的目标和使命是让开发者简单高效地将AI模型部署到任何场景。目前,开源项目仍在高效迭代中,每月都会有新版本和新部署功能升级发布。欢迎大家点击阅读原文或访问下方链接关注。
FastDeploy开源项目地址
https://github.com/PaddlePaddle/FastDeploy