目录

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

1.1.1  部署模型的典型流程

1.1.2 端到端的AI性能

1.1.3 部署模型的难点和痛点

1.2 FastDeploy简介

1.3 英特尔独立显卡简介

1.4 使用FastDeploy在英特尔CPU和独立显卡上部署模型的步骤

1.4.1 搭建FastDeploy开发环境

1.4.2 下载模型和测试图处

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

1.4.4 使用RuntimeOption 将AI推理硬伯切换项特尔独立显卡

1.5 总结

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

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

1.1.1  部署模型的典型流程

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

  • 采集图像&图像解码
  • 数据预处理
  • 执行AI推理计算
  • 推理结果后处理
  • 将后处理结果集成到业务流程

1.1.2 端到端的AI性能

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

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

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

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

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

1.1.3 部署模型的难点和痛点

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

  • 耗时耗力:阅读SOTA模型源代码来理解模型的前后处理,提高了部署模型的技术门槛。另外,手动编写前后处理代码,也需要更多的测试工作来消除bug。
  • 精度隐患:手动或借助网上开源但未经过实践验证过的前后处理代码,会有精度隐患,即当前对于某些图片精度很好,但对于另外的图片精度就下降。笔者就遇到过类似问题,原因在于调用了一个GitHub上下载的NMS()函数,这个函数对代码仓提供的范例模型有效,但对于笔者使用的模型恰恰就出现丢失检测对象的问题。
  • 优化困难:解决了精度问题后,下一步就是通过多线程、模型压缩、Batch优化等软件技术进一步提升端到端的AI性能,节约硬件采购成本。这些软件技术对于计算机专业的工程师不算挑战,但对于千行百业中非计算机专业的工程师,却无形中建立起了一道极高的门槛。

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

1.2 FastDeploy简介

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

FastDeploy项目链接: https://github.com/PaddlePaddle/FastDeploy

1.3 英特尔独立显卡简介

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

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

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预训练模型下载地址:FastDeploy/examples/vision/segmentation/paddleseg at develop · PaddlePaddle/FastDeploy · GitHub

测试图片下载地址:https://paddleseg.bj.bcebos.com/dygraph/demo/cityscapes_demo.png

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

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

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

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

import fastdeploy as fdimport 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推理计算,拿到的是经过后处理的结果,可以直接将该结果传给业务处理流程

1.4.4 使用RuntimeOption 将AI推理硬伯切换项特尔独立显卡

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

import fastdeploy as fdimport 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”是根据英特尔独立显卡在操作系统的中设备名称,如下图所示:

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

  • 需要固定模型输入节点的形状(Shape)
  • 英特尔GPU上支持的算子数量与CPU并不一致,在部署PPYOLE时,如若全采用GPU执行,会出现如下提示

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

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

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

1.5 总结

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

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

  1. 如何在Linux系统下安装英特尔® Arc™系列独立显卡驱动以及进行AI推理性能测试...

    点击蓝字 关注我们,让开发变得更有趣 作者 | 周兆靖 排版 | 李擎 如何在Linux系统下安装英特尔® Arc™系列 独立显卡驱动以及进行AI推理性能测试 目录 1.本文目的 2.Linux 系统 ...

  2. 程序员被纳入新生代农民工;“腾讯视频崩了”上热搜;英特尔发布全新独立显卡品牌 Arc|极客头条...

    「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧. 整理 | 孙胜 出品 | CSDN(ID:CSDNnews) ...

  3. 【AI达人创造营三期】Fastdeploy与英特尔NUC推动智慧城市巡检应用落地

    Fastdeploy与英特尔NUC推动智慧城市巡检应用落地 1.项目背景 智慧城市是指利用大数据.物联网(IoT)人工智能和5G等数字技术,提高政府公共服务水平.社会治理效能.推动经济增长和不断增强人 ...

  4. 学术研究发现英特尔 CPU 存在新漏洞

    作者:Thomas Claburn 译者:Sambodhi 策划:施尧 美国的芯片黑客又想出了一种方法,利用英特尔的处理器设计选择来窃取敏感数据. 伊利诺伊大学香槟分校的博士生 Riccardo Pa ...

  5. 英特尔CPU曝出漏洞:监视功耗就能轻松获取数据

    木易 发自 凹非寺  量子位 报道 | 公众号 QbitAI 你的CPU数据,可能存在被窃取的风险. 这个最新被发现的英特尔CPU漏洞,让攻击者直接通过监视功耗的变化,便可以轻松获取你的CPU数据. ...

  6. 英特尔CPU控制机制存在隐秘开关 可被黑客利用成为后门

    本文讲的是 英特尔CPU控制机制存在隐秘开关 可被黑客利用成为后门,研究人员发现为政府客户设置的未公开通融措施 俄罗斯科技公司 Positive Technologies 的安全研究员,发现了未公开配 ...

  7. 英特尔cpu发布时间表_10纳米来了:英特尔十一代酷睿上市,性能提升20%,AI算力乘5倍...

    对于笔记本用户来说,今年底似乎是个换机的好时候. 机器之心报道,机器之心编辑部. 传闻已久的 11 代酷睿正式发布了.Tiger Lake 今天的上市,预示着英特尔的 10 纳米芯片正式铺开.这一次新 ...

  8. Black Hat|英特尔CPU设计漏洞为恶意软件打开后门

    本文讲的是 Black Hat|英特尔CPU设计漏洞为恶意软件打开后门,约二十年前在x86处理器架构中存在一个设计缺陷,这个缺陷可以允许攻击者在低级别的计算机固件中安装恶意软件,而且安全产品无法检测的 ...

  9. 英特尔cpu发布时间表_10纳米来了:英特尔十一代酷睿,性能升20%,AI算力乘5倍...

    机器之心报道 机器之心编辑部 对于笔记本用户来说,今年底似乎是个换机的好时候. 传闻已久的 11 代酷睿正式发布了.Tiger Lake 今天的上市,预示着英特尔的 10 纳米芯片正式铺开.这一次新 ...

最新文章

  1. 支付和清算就是信息流和资金流
  2. HDU 1874 最直接的最短路径问题
  3. python 运算符重载_Python中类的运算符重载
  4. 厉害了!这款百度炼丹神器绝了!
  5. 【Pre-Training】XLNet:预训练最强,舍我其谁
  6. 三、Spring Cloud的配置 之 服务提供者 配置
  7. magento -- 如何在magento中进行产品的批量上传
  8. systemtap的一些总结
  9. VC网络编程(Socket)项目化视频教程
  10. Java OOP 思想
  11. 不小心格式化硬盘,重新分区了硬盘的恢复方法
  12. blos硬盘启动台式计算机,怎么进bios设置硬盘启动顺序|电脑bios硬盘启动设置方法...
  13. 普通运维人员真的就是秋后的蚂蚱吗?
  14. Bootstrap系列之纵向对齐(Vertical alignment)
  15. RIL.java【2】
  16. Centos7配置阿里云yum源及epel源
  17. 【秒杀购物商城业务服务】「分布式架构服务」盘点中间件服务的高可用模式及集群技术的方案分析
  18. IOS应用开发调研报告
  19. SpringBoot的yaml配置文件,提示Do not use @ for indentation
  20. java随手笔记 接口的理解

热门文章

  1. 【项目分享】基于AB32和RT-Thread的墨水屏智能日历
  2. C语言 吃鱼还是吃肉
  3. 操作系统原理,物理内存“扩充”技术,内存紧缩,覆盖,交换,虚拟内存思想
  4. GCN - Semi-Supervised Classification with Graph Convolutional Networks 用图卷积进行半监督节点分类 ICLR 2017
  5. js对内容进行编码(富文本编辑器使用居多)
  6. VOT中的EAO评判指标
  7. Flutter实现微信支付和iOS IAP支付,ndk开发入门
  8. 集合工具类 以及 几个小面试题(是我保存的)
  9. php百度云5秒盾,cloudflare如何自定义5秒盾页面教程
  10. 揭秘 typedef四用途与两陷阱