0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用FastDeploy在英特尔CPU和独立显卡上端到端高效部署AI模型

英特尔物联网 来源:英特尔物联网 作者:王一凡 2022-12-20 11:27 次阅读

作者:英特尔物联网创新大使王一凡

1.1产业实践中部署 AI 模型的痛点

1.1.1部署 AI 模型的典型流程

对于来自于千行百业,打算将 AI 模型集成到自己的主线产品中,解决本行痛点的 AI 开发者来说,部署 AI 模型,或者说将 AI 模型集成到自己产品中去的典型步骤(以计算机视觉应用为例)有:

采集图像&图像解码

数据预处理

执行 AI 推理计算

推理结果后处理

将后处理结果集成到业务流程

22441786-7f88-11ed-8abf-dac502259ad0.png

1.1.2端到端的 AI 性能

当 AI 开发者将 AI 模型集成到业务流程后,不太关心 AI 模型在 AI 推理硬件上单纯的推理速度,而是关心包含图像解码、数据预处理和后处理的端到端的 AI 性能。

227580b4-7f88-11ed-8abf-dac502259ad0.png

在产业实践中,我们发现不仅 AI 推理硬件和对应推理引擎(例如:OpenVINO Runtime)对于端到端的性能影响大,数据预处理和后处理代码是否高效对于端到端的性能影响也大。

CPU 上预处理操作融合优化为例,经过优化后的前处理代码,可以使得 AI 端到端性能得到较大提升。

22965212-7f88-11ed-8abf-dac502259ad0.png

数据来源:感谢 FastDeploy 团队完成测试并提供数据

结论:优秀且高效的前后处理代码,可以明显提高端到端的 AI 性能!

1.1.3部署 AI 模型的难点和痛点

在产业实践中,在某个任务上当前最优的 SOTA 模型的很有可能与部署相关的文档和范例代码不完整,AI 开发者需要通过阅读 SOTA 模型源代码来手动编写模型的前后处理代码,这导致:

01耗时耗力

阅读 SOTA 模型源代码来理解模型的前后处理,提高了部署模型的技术门槛。另外,手动编写前后处理代码,也需要更多的测试工作来消除 bug。

02精度隐患

手动或借助网上开源但未经过实践验证过的前后处理代码,会有精度隐患,即当前对于某些图片精度很好,但对于另外的图片精度就下降。笔者就遇到过类似问题,原因在于调用了一个 GitHub 上下载的 NMS()函数,这个函数对代码仓提供的范例模型有效,但对于笔者使用的模型恰恰就出现丢失检测对象的问题。

03优化困难

解决了精度问题后,下一步就是通过多线程、模型压缩、Batch 优化等软件技术进一步提升端到端的 AI 性能,节约硬件采购成本。这些软件技术对于计算机专业的工程师不算挑战,但对于千行百业中非计算机专业的工程师,却无形中建立起了一道极高的门槛。

为了赋能千行百业的工程师,高效便捷的将 AI 模型集成到自己的产品中去,急需一个专门面向 AI 模型部署的软件工具。

1.2FastDeploy 简介

FastDeploy是一款全场景、易用灵活、极致高效的 AI 推理部署工具。提供开箱即用云边端部署体验, 支持超过150+Text,Vision,Speech 和跨模态模型,并实现端到端的推理性能优化。包括图像分类、物体检测、图像分割、人脸检测、人脸识别、关键点检测、抠图、OCR、NLP、TTS 等任务,满足开发者多场景、多硬件、多平台的产业部署需求。

22d4f40e-7f88-11ed-8abf-dac502259ad0.png

FastDeploy 项目链接:

https://github.com/PaddlePaddle/FastDeploy

1.3英特尔独立显卡简介

英特尔在2021年的构架日上发布了独立显卡产品路线图,OpenVINO 从2022.2版本开始支持 AI 模型在英特尔独立显卡上做 AI 推理计算。

23000f9a-7f88-11ed-8abf-dac502259ad0.png

当前已经可以购买的消费类独立显卡是英特尔锐炫独立显卡A7系列,并已发布在独立显卡上做 AI 推理计算的范例程序。

23a2b9fc-7f88-11ed-8abf-dac502259ad0.png

1.4使用 FastDeploy

在英特尔 CPU 和独立显卡上

部署模型的步骤

1.4.1搭建 FastDeploy 开发环境

当前 FastDeploy 最新的 Release 版本是1.0.1,一行命令即可完成 FastDeploy 的安装:

 pip install fastdeploy-python –f https://www.paddlepaddle.org.cn/whl/fastdeploy.html

向右滑动查看完整代码

1.4.2下载模型和测试图片

FastDeploy 支持的 PaddleSeg 预训练模型下载地址:

https://github.com/PaddlePaddle/FastDeploy/tree/develop/examples/vision/segmentation/paddleseg

测试图片下载地址:

https://paddleseg.bj.bcebos.com/dygraph/demo/cityscapes_demo.png

使用命令,下载模型和测试图片:

图片:
wget https://paddleseg.bj.bcebos.com/dygraph/demo/cityscapes_demo.png
模型:
wget https://github.com/PaddlePaddle/FastDeploy/tree/develop/examples/vision/segmentation/paddleseg

向右滑动查看完整代码

1.4.3三行代码完成在英特尔 CPU 上的模型部署

基于 FastDeploy,只需三行代码即可完成在英特尔 CPU上的模型部署,并获得经过后处理的推理结果。

import fastdeploy as fd
import cv2
# 读取图片
im = cv2.imread("cityscapes_demo.png")
# 加载飞桨PaddleSeg模型
model = fd.vision.segmentation.PaddleSegModel(“model.pdmodel”, “model.pdiparams”,“deploy.yaml”)
# 预测结果
result = model.predict(im)
print(result)

向右滑动查看完整代码

将推理结果 print 出来,如下图所示,经过 FastDeploy 完成的 AI 推理计算,拿到的是经过后处理的结果,可以直接将该结果传给业务处理流程

23c82e94-7f88-11ed-8abf-dac502259ad0.png

1.4.4

使用 RuntimeOption 将 AI 推理硬件

切换英特尔独立显卡

在上述三行代码的基础上,只需要使用RuntimeOption将AI推理硬件切换为英特尔独立显卡,完成代码如下所示:

import fastdeploy as fd
import cv2
# 读取图片
im = cv2.imread("cityscapes_demo.png")
h, w, c = im.shape
# 通过RuntimeOption配置后端
option = fd.RuntimeOption()
option.use_openvino_backend()
option.set_openvino_device("GPU.1")
# 固定模型的输入形状
option.set_openvino_shape_info({"x": [1,c,h,w]})
# 加载飞桨PaddleSeg模型
model = fd.vision.segmentation.PaddleSegModel(“model.pdmodel”, “model.pdiparams”,“deploy.yaml”, 
                       runtime_option=option)               
# 预测结果
result = model.predict(im)

向右滑动查看完整代码

set_openvino_device()中字符串填写“GPU.1”是根据英特尔独立显卡在操作系统的中设备名称,如下图所示:

23f432aa-7f88-11ed-8abf-dac502259ad0.png

当前,在英特尔独立显卡上做 AI 推理,需要注意的问题有:

需要固定模型输入节点的形状(Shape)

英特尔 GPU 上支持的算子数量与 CPU 并不一致,在部署 PPYOLE 时,如若全采用 GPU 执行,会出现如下提示

241047c4-7f88-11ed-8abf-dac502259ad0.png

这是需要将推理硬件设置为异构方式

option.set_openvino_device("HETERO:GPU.1,CPU")

向右滑动查看完整代码

到此,使用 FastDeploy 在英特尔 CPU 和独立显卡上部署AI模型的工作全部完成。

1.5总结

面对千行百业中部署 AI 模型的挑战,FastDeploy 工具很好的保证了部署 AI 模型的精度,以及端到端 AI 性能问题,也提高了部署端工作的效率。通过 RuntimeOption,将 FastDeploy 的推理后端设置为 OpenVINO,可以非常便捷将 AI 模型部署在英特尔 CPU、集成显卡和独立显卡上。

审核编辑:汤梓红
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 英特尔
    +关注

    关注

    61

    文章

    9949

    浏览量

    171688
  • cpu
    cpu
    +关注

    关注

    68

    文章

    10854

    浏览量

    211569
  • 显卡
    +关注

    关注

    16

    文章

    2431

    浏览量

    67569
  • AI
    AI
    +关注

    关注

    87

    文章

    30728

    浏览量

    268875

原文标题:使用FastDeploy在英特尔CPU和独立显卡上端到端高效部署AI模型 | 开发者实战

文章出处:【微信号:英特尔物联网,微信公众号:英特尔物联网】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    基于C#和OpenVINO™英特尔独立显卡部署PP-TinyPose模型

    和 OpenVINO,将 PP-TinyPose 模型部署英特尔独立显卡上。 1.1 PP-
    的头像 发表于 11-18 18:27 2518次阅读

    英特尔CPU部署Qwen 1.8B模型的过程

    本文介绍了英特尔 13 代酷睿 CPU i5 - 13490F 设备上部署 Qwen 1.8B 模型的过程,你需要至少 16GB 内存的机
    的头像 发表于 01-12 10:28 2594次阅读

    英特尔高清显卡4600帮助

    和NVIDIA GTX 960M。显示器的色温配置为R-75,G-75,B-75(每个的最大设置为100)。英特尔高清显卡4600可以选择“默认RGB”,“限制RGB”或“全RGB”。此外,还有一个启用或禁用
    发表于 10-26 14:53

    介绍英特尔®分布式OpenVINO™工具包

    性能。 英特尔®OpenlandOpen™管理软件包包括英特尔®深度学习部署工具包(英特尔®DLDT)。适用于Linux *的OpenVINO™工具包的
    发表于 07-26 06:45

    英特尔进军显卡市场,预计2020年推出独立GPU

    英特尔CPU的地位已经难以撼动,尤其是电脑,可以说是称霸已久,但是GPU方面却没有占据领
    的头像 发表于 06-13 11:05 3486次阅读

    英特尔推出了英特尔锐炬Xe MAX独立显卡

    英特尔推出了英特尔锐炬 Xe MAX 独立显卡,该显卡专为轻薄型笔记本电脑设计,现已通过合作伙伴问世。
    的头像 发表于 11-01 12:15 8769次阅读

    英特尔宣布首款独立显卡 意味着英特尔加入 GPU 战局

    据中国台湾经济日报报道,芯片大厂英特尔的独显芯片上市,该公司宣布了首款 Iris Xe Max 独立显卡,用于超便携式笔记本电脑和笔记本电脑。 原本 AMD 处理器(
    的头像 发表于 11-03 11:58 2621次阅读

    英特尔推出面向OEM市场的入门级Xe独立显卡

    磨蹭了一年之后,英特尔终于出货了新一代的独立显卡也就是DG1,型号为Iris Xe MAX,当时英特尔表示这款
    的头像 发表于 01-27 10:39 1930次阅读

    英特尔推出锐炫A系列独立显卡 微星推出GeForce RTX 3090 Ti系列显卡

    英特尔宣布推出面向笔记本电脑的英特尔锐炫独立显卡系列,这是其锐炫A系列显卡产品组合中率先发布的独立
    的头像 发表于 03-31 14:19 3033次阅读

    低门槛AI部署工具FastDeploy开源!

    为了解决AI部署落地难题,我们发起了FastDeploy项目。FastDeploy针对产业落地场景中的重要AI
    的头像 发表于 11-08 14:28 1972次阅读

    NGC 上玩转新一代推理部署工具 FastDeploy,几行代码搞定 AI 部署

    模型,并提供开箱即用的云边部署体验,实现 AI 模型
    的头像 发表于 12-13 19:50 1216次阅读

    英特尔独立显卡部署YOLOv5 v7.0版实时实例分割模型

    本文将介绍基于 OpenVINO 英特尔独立显卡部署 YOLOv5 实时实例分割
    的头像 发表于 12-20 11:32 4057次阅读

    英特尔聚焦AI座舱

    Weast表示,30 TOPS、60TOPS可能也有AI语音功能,但模型并非部署侧,而是部署
    的头像 发表于 10-30 16:26 198次阅读

    使用PyTorch英特尔独立显卡上训练模型

    《PyTorch 2.5重磅更新:性能优化+新特性》中的一个新特性就是:正式支持英特尔独立显卡上训练模型
    的头像 发表于 11-01 14:21 354次阅读
    使用PyTorch<b class='flag-5'>在</b><b class='flag-5'>英特尔</b><b class='flag-5'>独立</b><b class='flag-5'>显卡</b>上训练<b class='flag-5'>模型</b>

    使用英特尔AI PC为YOLO模型训练加速

    之后,情况有了新的变化,PyTorch2.5正式开始支持英特尔显卡,也就是说,此后我们能够借助英特尔 锐炫 显卡来进行模型训练了。
    的头像 发表于 12-09 16:14 223次阅读
    使用<b class='flag-5'>英特尔</b><b class='flag-5'>AI</b> PC为YOLO<b class='flag-5'>模型</b>训练加速