0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

使用FastDeploy在英特爾CPU和獨(dú)立顯卡上端到端高效部署AI模型

英特爾物聯(lián)網(wǎng) ? 來源:英特爾物聯(lián)網(wǎng) ? 作者:王一凡 ? 2022-12-20 11:27 ? 次閱讀

作者:英特爾物聯(lián)網(wǎng)創(chuàng)新大使王一凡

1.1產(chǎn)業(yè)實(shí)踐中部署 AI 模型的痛點(diǎn)

1.1.1部署 AI 模型的典型流程

對(duì)于來自于千行百業(yè),打算將 AI 模型集成到自己的主線產(chǎn)品中,解決本行痛點(diǎn)的 AI 開發(fā)者來說,部署 AI 模型,或者說將 AI 模型集成到自己產(chǎn)品中去的典型步驟(以計(jì)算機(jī)視覺應(yīng)用為例)有:

采集圖像&圖像解碼

數(shù)據(jù)預(yù)處理

執(zhí)行 AI 推理計(jì)算

推理結(jié)果后處理

將后處理結(jié)果集成到業(yè)務(wù)流程

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

1.1.2端到端的 AI 性能

當(dāng) AI 開發(fā)者將 AI 模型集成到業(yè)務(wù)流程后,不太關(guān)心 AI 模型在 AI 推理硬件上單純的推理速度,而是關(guān)心包含圖像解碼、數(shù)據(jù)預(yù)處理和后處理的端到端的 AI 性能。

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

在產(chǎn)業(yè)實(shí)踐中,我們發(fā)現(xiàn)不僅 AI 推理硬件和對(duì)應(yīng)推理引擎(例如:OpenVINO Runtime)對(duì)于端到端的性能影響大,數(shù)據(jù)預(yù)處理和后處理代碼是否高效對(duì)于端到端的性能影響也大。

CPU 上預(yù)處理操作融合優(yōu)化為例,經(jīng)過優(yōu)化后的前處理代碼,可以使得 AI 端到端性能得到較大提升。

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

數(shù)據(jù)來源:感謝 FastDeploy 團(tuán)隊(duì)完成測(cè)試并提供數(shù)據(jù)

結(jié)論:優(yōu)秀且高效的前后處理代碼,可以明顯提高端到端的 AI 性能!

1.1.3部署 AI 模型的難點(diǎn)和痛點(diǎn)

在產(chǎn)業(yè)實(shí)踐中,在某個(gè)任務(wù)上當(dāng)前最優(yōu)的 SOTA 模型的很有可能與部署相關(guān)的文檔和范例代碼不完整,AI 開發(fā)者需要通過閱讀 SOTA 模型源代碼來手動(dòng)編寫模型的前后處理代碼,這導(dǎo)致:

01耗時(shí)耗力

閱讀 SOTA 模型源代碼來理解模型的前后處理,提高了部署模型的技術(shù)門檻。另外,手動(dòng)編寫前后處理代碼,也需要更多的測(cè)試工作來消除 bug。

02精度隱患

手動(dòng)或借助網(wǎng)上開源但未經(jīng)過實(shí)踐驗(yàn)證過的前后處理代碼,會(huì)有精度隱患,即當(dāng)前對(duì)于某些圖片精度很好,但對(duì)于另外的圖片精度就下降。筆者就遇到過類似問題,原因在于調(diào)用了一個(gè) GitHub 上下載的 NMS()函數(shù),這個(gè)函數(shù)對(duì)代碼倉提供的范例模型有效,但對(duì)于筆者使用的模型恰恰就出現(xiàn)丟失檢測(cè)對(duì)象的問題。

03優(yōu)化困難

解決了精度問題后,下一步就是通過多線程、模型壓縮、Batch 優(yōu)化等軟件技術(shù)進(jìn)一步提升端到端的 AI 性能,節(jié)約硬件采購成本。這些軟件技術(shù)對(duì)于計(jì)算機(jī)專業(yè)的工程師不算挑戰(zhàn),但對(duì)于千行百業(yè)中非計(jì)算機(jī)專業(yè)的工程師,卻無形中建立起了一道極高的門檻。

為了賦能千行百業(yè)的工程師,高效便捷的將 AI 模型集成到自己的產(chǎn)品中去,急需一個(gè)專門面向 AI 模型部署的軟件工具。

1.2FastDeploy 簡(jiǎn)介

FastDeploy是一款全場(chǎng)景、易用靈活、極致高效的 AI 推理部署工具。提供開箱即用云邊端部署體驗(yàn), 支持超過150+Text,Vision,Speech 和跨模態(tài)模型,并實(shí)現(xiàn)端到端的推理性能優(yōu)化。包括圖像分類、物體檢測(cè)、圖像分割、人臉檢測(cè)、人臉識(shí)別、關(guān)鍵點(diǎn)檢測(cè)、摳圖、OCR、NLP、TTS 等任務(wù),滿足開發(fā)者多場(chǎng)景、多硬件、多平臺(tái)的產(chǎn)業(yè)部署需求。

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

FastDeploy 項(xiàng)目鏈接:

https://github.com/PaddlePaddle/FastDeploy

1.3英特爾獨(dú)立顯卡簡(jiǎn)介

英特爾在2021年的構(gòu)架日上發(fā)布了獨(dú)立顯卡產(chǎn)品路線圖,OpenVINO 從2022.2版本開始支持 AI 模型在英特爾獨(dú)立顯卡上做 AI 推理計(jì)算。

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

當(dāng)前已經(jīng)可以購買的消費(fèi)類獨(dú)立顯卡是英特爾銳炫獨(dú)立顯卡A7系列,并已發(fā)布在獨(dú)立顯卡上做 AI 推理計(jì)算的范例程序。

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

1.4使用 FastDeploy

在英特爾 CPU 和獨(dú)立顯卡上

部署模型的步驟

1.4.1搭建 FastDeploy 開發(fā)環(huán)境

當(dāng)前 FastDeploy 最新的 Release 版本是1.0.1,一行命令即可完成 FastDeploy 的安裝:

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

向右滑動(dòng)查看完整代碼

1.4.2下載模型和測(cè)試圖片

FastDeploy 支持的 PaddleSeg 預(yù)訓(xùn)練模型下載地址:

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

測(cè)試圖片下載地址:

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

使用命令,下載模型和測(cè)試圖片:

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

向右滑動(dòng)查看完整代碼

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

基于 FastDeploy,只需三行代碼即可完成在英特爾 CPU上的模型部署,并獲得經(jīng)過后處理的推理結(jié)果。

import fastdeploy as fd
import cv2
# 讀取圖片
im = cv2.imread("cityscapes_demo.png")
# 加載飛槳PaddleSeg模型
model = fd.vision.segmentation.PaddleSegModel(“model.pdmodel”, “model.pdiparams”,“deploy.yaml”)
# 預(yù)測(cè)結(jié)果
result = model.predict(im)
print(result)

向右滑動(dòng)查看完整代碼

將推理結(jié)果 print 出來,如下圖所示,經(jīng)過 FastDeploy 完成的 AI 推理計(jì)算,拿到的是經(jīng)過后處理的結(jié)果,可以直接將該結(jié)果傳給業(yè)務(wù)處理流程。

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

1.4.4

使用 RuntimeOption 將 AI 推理硬件

切換英特爾獨(dú)立顯卡

在上述三行代碼的基礎(chǔ)上,只需要使用RuntimeOption將AI推理硬件切換為英特爾獨(dú)立顯卡,完成代碼如下所示:

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)               
# 預(yù)測(cè)結(jié)果
result = model.predict(im)

向右滑動(dòng)查看完整代碼

set_openvino_device()中字符串填寫“GPU.1”是根據(jù)英特爾獨(dú)立顯卡在操作系統(tǒng)的中設(shè)備名稱,如下圖所示:

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

當(dāng)前,在英特爾獨(dú)立顯卡上做 AI 推理,需要注意的問題有:

需要固定模型輸入節(jié)點(diǎn)的形狀(Shape)

英特爾 GPU 上支持的算子數(shù)量與 CPU 并不一致,在部署 PPYOLE 時(shí),如若全采用 GPU 執(zhí)行,會(huì)出現(xiàn)如下提示

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

這是需要將推理硬件設(shè)置為異構(gòu)方式

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

向右滑動(dòng)查看完整代碼

到此,使用 FastDeploy 在英特爾 CPU 和獨(dú)立顯卡上部署AI模型的工作全部完成。

1.5總結(jié)

面對(duì)千行百業(yè)中部署 AI 模型的挑戰(zhàn),F(xiàn)astDeploy 工具很好的保證了部署 AI 模型的精度,以及端到端 AI 性能問題,也提高了部署端工作的效率。通過 RuntimeOption,將 FastDeploy 的推理后端設(shè)置為 OpenVINO,可以非常便捷將 AI 模型部署在英特爾 CPU、集成顯卡和獨(dú)立顯卡上。

審核編輯:湯梓紅
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 英特爾
    +關(guān)注

    關(guān)注

    60

    文章

    9819

    瀏覽量

    171129
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    10776

    瀏覽量

    210462
  • 顯卡
    +關(guān)注

    關(guān)注

    16

    文章

    2409

    瀏覽量

    67270
  • AI
    AI
    +關(guān)注

    關(guān)注

    87

    文章

    29401

    瀏覽量

    267701

原文標(biāo)題:使用FastDeploy在英特爾CPU和獨(dú)立顯卡上端到端高效部署AI模型 | 開發(fā)者實(shí)戰(zhàn)

文章出處:【微信號(hào):英特爾物聯(lián)網(wǎng),微信公眾號(hào):英特爾物聯(lián)網(wǎng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    基于C#和OpenVINO?英特爾獨(dú)立顯卡部署PP-TinyPose模型

    和 OpenVINO,將 PP-TinyPose 模型部署英特爾獨(dú)立顯卡上。 1.1 PP-
    的頭像 發(fā)表于 11-18 18:27 ?2385次閱讀

    英特爾CPU部署Qwen 1.8B模型的過程

    本文介紹了英特爾 13 代酷睿 CPU i5 - 13490F 設(shè)備上部署 Qwen 1.8B 模型的過程,你需要至少 16GB 內(nèi)存的機(jī)
    的頭像 發(fā)表于 01-12 10:28 ?2459次閱讀

    宿敵相爭(zhēng) AMD向英特爾授權(quán)顯卡芯片技術(shù)的可能性不大

      幾個(gè)月前就有分析師援引彭博社的報(bào)道稱,AMD即將與宿敵英特爾達(dá)成顯卡芯片技術(shù)授權(quán)協(xié)議,上周更有匿名消息人士一家PC愛好者網(wǎng)站上確認(rèn)了此事。然而,無論從AMD自身利益角度考慮,還是從該公司CEO
    發(fā)表于 05-27 16:12

    英特爾高清顯卡4600幫助

    和NVIDIA GTX 960M。顯示器的色溫配置為R-75,G-75,B-75(每個(gè)的最大設(shè)置為100)。英特爾高清顯卡4600可以選擇“默認(rèn)RGB”,“限制RGB”或“全RGB”。此外,還有一個(gè)啟用或禁用
    發(fā)表于 10-26 14:53

    介紹英特爾?分布式OpenVINO?工具包

    性能。 英特爾?OpenlandOpen?管理軟件包包括英特爾?深度學(xué)習(xí)部署工具包(英特爾?DLDT)。適用于Linux *的OpenVINO?工具包的
    發(fā)表于 07-26 06:45

    英特爾進(jìn)軍顯卡市場(chǎng),預(yù)計(jì)2020年推出獨(dú)立GPU

    英特爾CPU的地位已經(jīng)難以撼動(dòng),尤其是電腦,可以說是稱霸已久,但是GPU方面卻沒有占據(jù)領(lǐng)
    的頭像 發(fā)表于 06-13 11:05 ?3454次閱讀

    英特爾推出了英特爾銳炬Xe MAX獨(dú)立顯卡

    英特爾推出了英特爾銳炬 Xe MAX 獨(dú)立顯卡,該顯卡專為輕薄型筆記本電腦設(shè)計(jì),現(xiàn)已通過合作伙伴問世。
    的頭像 發(fā)表于 11-01 12:15 ?8698次閱讀

    英特爾宣布首款獨(dú)立顯卡 意味著英特爾加入 GPU 戰(zhàn)局

    據(jù)中國(guó)臺(tái)灣經(jīng)濟(jì)日?qǐng)?bào)報(bào)道,芯片大廠英特爾的獨(dú)顯芯片上市,該公司宣布了首款 Iris Xe Max 獨(dú)立顯卡,用于超便攜式筆記本電腦和筆記本電腦。 原本 AMD 處理器(
    的頭像 發(fā)表于 11-03 11:58 ?2590次閱讀

    英特爾Iris Xe MAX獨(dú)立顯卡性能公布

    英特爾現(xiàn)已正式發(fā)布了首款獨(dú)立顯卡Xe Max,涵蓋移動(dòng)版和桌面版兩種版本,前者將會(huì)用于搭載11代酷睿處理器的輕薄筆記本,2021年初上市。官方宣稱,這款
    的頭像 發(fā)表于 11-06 15:09 ?1.2w次閱讀

    英特爾推出面向OEM市場(chǎng)的入門級(jí)Xe獨(dú)立顯卡

    磨蹭了一年之后,英特爾終于出貨了新一代的獨(dú)立顯卡也就是DG1,型號(hào)為Iris Xe MAX,當(dāng)時(shí)英特爾表示這款
    的頭像 發(fā)表于 01-27 10:39 ?1880次閱讀

    英特爾推出銳炫A系列獨(dú)立顯卡 微星推出GeForce RTX 3090 Ti系列顯卡

    英特爾宣布推出面向筆記本電腦的英特爾銳炫獨(dú)立顯卡系列,這是其銳炫A系列顯卡產(chǎn)品組合中率先發(fā)布的獨(dú)立
    的頭像 發(fā)表于 03-31 14:19 ?2837次閱讀

    英特爾發(fā)布開源AI參考套件

    英特爾正式推出了首套開源AI參考套件,旨在讓企業(yè)能夠本地、云端和邊緣環(huán)境中都更易于部署AI。這些
    發(fā)表于 07-15 16:45 ?678次閱讀

    低門檻AI部署工具FastDeploy開源!

    為了解決AI部署落地難題,我們發(fā)起了FastDeploy項(xiàng)目。FastDeploy針對(duì)產(chǎn)業(yè)落地場(chǎng)景中的重要AI
    的頭像 發(fā)表于 11-08 14:28 ?1910次閱讀

    NGC 上玩轉(zhuǎn)新一代推理部署工具 FastDeploy,幾行代碼搞定 AI 部署

    模型,并提供開箱即用的云邊部署體驗(yàn),實(shí)現(xiàn) AI 模型
    的頭像 發(fā)表于 12-13 19:50 ?1172次閱讀

    英特爾獨(dú)立顯卡部署YOLOv5 v7.0版實(shí)時(shí)實(shí)例分割模型

    本文將介紹基于 OpenVINO 英特爾獨(dú)立顯卡部署 YOLOv5 實(shí)時(shí)實(shí)例分割
    的頭像 發(fā)表于 12-20 11:32 ?3852次閱讀