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

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

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

使用OpenVINO Model Server在哪吒開發(fā)板上部署模型

英特爾物聯(lián)網(wǎng) ? 來源:英特爾物聯(lián)網(wǎng) ? 2024-11-01 14:19 ? 次閱讀

作者:

王國強 蘇州嘉樹醫(yī)療科技有限公司 算法工程師

指導(dǎo):

顏國進 英特爾邊緣計算創(chuàng)新大使

1OpenVINO Model Server介紹

OpenVINO Model Server(OVMS)是一個高性能的模型部署系統(tǒng),使用C++實現(xiàn),并在Intel架構(gòu)上的部署進行了優(yōu)化,使用OpenVINO 進行推理,推理服務(wù)通過gPRC或REST API提供,使得部署新算法、AI實驗變得簡單。OVMS可以在Docker容器、裸機、Kuberntes環(huán)境中運行,這里我使用的是Docker容器。

130ceea0-9804-11ef-a511-92fbcf53809c.png131166e2-9804-11ef-a511-92fbcf53809c.png

2哪吒開發(fā)板Docker安裝

Ubuntu22.04上的Docker安裝可以參照官方文檔:

https://docs.docker.com/engine/install/

首先安裝依賴:

sudo apt update
sudo apt install ca-certificates curl

然后添加Docker的GPG密鑰,如果你的網(wǎng)絡(luò)可以正常訪問Docker可以通過下面的命令添加APT源:

sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
echo 
 "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu 
 $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | 
 sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update

如果無法正常訪問,就需要換成國內(nèi)鏡像源,這里以阿里源為例:

sudo curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=$(dpkg --print-architecture)] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
sudo apt update

之后就可以通過apt安裝Docker,命令如下:

sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

安裝后可以通過以下命令驗證是否安裝成功:

sudo docker --version
sudo docker run hello-world

3拉取OpenVINOModel Server鏡像

各個版本的鏡像可以在OpenVINO 的Docker Hub上找到,我拉取了一個最新的帶有GPU環(huán)境的鏡像:

https://hub.docker.com/r/openvino/model_server/tags

sudo docker pull openvino/model_server:latest-gpu
sudo docker images
13227112-9804-11ef-a511-92fbcf53809c.png

4準備模型

首先在哪吒開發(fā)板上新建一個models文件夾,文件夾的結(jié)構(gòu)如下,這里我在models文件夾下存放了resnet50和Transformer兩個模型,版本都為1,模型為OpenVINO IR格式。

13368fa8-9804-11ef-a511-92fbcf53809c.png

5啟動OpenVINO Model Server容器

在哪吒開發(fā)板上啟動帶有iGPU環(huán)境的OpenVINO Model Server容器命令如下:

sudo docker run -it --device=/dev/dri --group-add=$(stat -c "%g" /dev/dri/render* | head -n 1) -d -u $(id -u) -v $(pwd)/models:/models -p 9000:9000 openvino/model_server:latest-gpu --model_name Transformer --model_path /models/Transformer --port 9000 --target_device GPU

各個參數(shù)的含義可在官方文檔查看:https://docs.openvino.ai/2024/ovms_docs_parameters.html

容器啟動后可以通過以下命令查看容器ID、狀態(tài)信息等。

sudo docker ps
13569ec4-9804-11ef-a511-92fbcf53809c.png

這樣Transformer模型就通過OpenVINO Model Server部署在了哪吒開發(fā)板上。

6請求推理服務(wù)

接下來通過gRPC API訪問推理服務(wù),以python為例,首先安裝ovmsclient包。

pip install ovmsclient

請求推理的代碼如下,這里在局域網(wǎng)的另一臺機器上請求哪吒開發(fā)板上的推理服務(wù),10.0.70.164為哪吒開發(fā)板的ip地址。

import os
import time
import numpy as np
import pandas as pd
from ovmsclient import make_grpc_client


client = make_grpc_client("10.0.70.164:9000")


sum_time = 0
root_dir = './data/'
filelist = os.listdir(root_dir)
for file in filelist:
  start_time = time.perf_counter()
  sample = pd.read_csv(root_dir + file)['ForceValue'].values
  inputs = sample.reshape(1, -1).astype(np.float32)


  output = client.predict({"input": inputs}, "Transformer")
  end_time = time.perf_counter()
  sum_time += end_time - start_time
  result_index = np.argmax(output[0], axis=0)
  print('Infer results: ', result_index, '
Infer time: ', (end_time - start_time) * 1000, 'ms')
print('Average time: ', sum_time / len(filelist) * 1000, 'ms') 
137e9b04-9804-11ef-a511-92fbcf53809c.png

推理結(jié)果成功返回,平均推理時間12ms,如果換成更穩(wěn)定的以太網(wǎng)速度應(yīng)該會更快。

7總結(jié)

以上就是在哪吒開發(fā)板上使用OpenVINO(C++)推理模型,并通過OpenVINO Model Server進行模型部署的過程,可以看出OpenVINO的使用還是比較方便、簡潔的,推理速度也很快。

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

    關(guān)注

    61

    文章

    9964

    瀏覽量

    171763
  • 開發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    5050

    瀏覽量

    97456
  • 模型
    +關(guān)注

    關(guān)注

    1

    文章

    3243

    瀏覽量

    48836
  • Docker
    +關(guān)注

    關(guān)注

    0

    文章

    458

    瀏覽量

    11854
  • OpenVINO
    +關(guān)注

    關(guān)注

    0

    文章

    93

    瀏覽量

    201

原文標題:使用 OpenVINO? Model Server 在哪吒開發(fā)板上部署模型|開發(fā)者實戰(zhàn)

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

收藏 人收藏

    評論

    相關(guān)推薦

    LabVIEW+OpenVINO在CPU上部署新冠肺炎檢測模型實戰(zhàn)(含源碼)

    使用LabVIEW+OpenVINO在CPU上部署新冠肺炎CT圖像病害分割
    的頭像 發(fā)表于 03-23 13:34 ?1747次閱讀
    LabVIEW+<b class='flag-5'>OpenVINO</b>在CPU<b class='flag-5'>上部署</b>新冠肺炎檢測<b class='flag-5'>模型</b>實戰(zhàn)(含源碼)

    如何使用OpenVINO C++ API部署FastSAM模型

    FastSAM 模型 | 開發(fā)者實戰(zhàn)》,在該文章中我們向大家展示了基于 OpenVINO Python API 的基本部署流程。在實際部署
    的頭像 發(fā)表于 11-17 09:53 ?923次閱讀
    如何使用<b class='flag-5'>OpenVINO</b> C++ API<b class='flag-5'>部署</b>FastSAM<b class='flag-5'>模型</b>

    介紹在STM32cubeIDE上部署AI模型的系列教程

    介紹在STM32cubeIDE上部署AI模型的系列教程,開發(fā)板型號STM32H747I-disco,值得一看。MCUAI原文鏈接:【嵌入式AI開發(fā)】篇四|
    發(fā)表于 12-14 09:05

    在AI愛克斯開發(fā)板上用OpenVINO?加速YOLOv8分類模型

    本系列文章將在 AI 愛克斯開發(fā)板上使用 OpenVINO 開發(fā)套件依次部署并測評 YOLOv8 的分類模型、目標檢測
    的頭像 發(fā)表于 05-05 11:47 ?1060次閱讀
    在AI愛克斯<b class='flag-5'>開發(fā)板</b>上用<b class='flag-5'>OpenVINO</b>?加速YOLOv8分類<b class='flag-5'>模型</b>

    在AI愛克斯開發(fā)板上用OpenVINO?加速YOLOv8目標檢測模型

    《在 AI 愛克斯開發(fā)板上用 OpenVINO 加速 YOLOv8 分類模型》介紹了在 AI 愛克斯開發(fā)板上使用 OpenVINO
    的頭像 發(fā)表于 05-12 09:08 ?1326次閱讀
    在AI愛克斯<b class='flag-5'>開發(fā)板</b>上用<b class='flag-5'>OpenVINO</b>?加速YOLOv8目標檢測<b class='flag-5'>模型</b>

    AI愛克斯開發(fā)板上使用OpenVINO加速YOLOv8目標檢測模型

    《在AI愛克斯開發(fā)板上用OpenVINO加速YOLOv8分類模型》介紹了在AI愛克斯開發(fā)板上使用OpenVINO
    的頭像 發(fā)表于 05-26 11:03 ?1251次閱讀
    AI愛克斯<b class='flag-5'>開發(fā)板</b>上使用<b class='flag-5'>OpenVINO</b>加速YOLOv8目標檢測<b class='flag-5'>模型</b>

    在AI愛克斯開發(fā)板上用OpenVINO?加速YOLOv8-seg實例分割模型

    《在 AI 愛克斯開發(fā)板上用 OpenVINO 加速 YOLOv8 目標檢測模型》介紹了在 AI 愛克斯開發(fā)板上使用 OpenVINO
    的頭像 發(fā)表于 06-05 11:52 ?1012次閱讀
    在AI愛克斯<b class='flag-5'>開發(fā)板</b>上用<b class='flag-5'>OpenVINO</b>?加速YOLOv8-seg實例分割<b class='flag-5'>模型</b>

    在AI愛克斯開發(fā)板上用OpenVINO?加速YOLOv8-seg實例分割模型

    《在 AI 愛克斯開發(fā)板上用 OpenVINO 加速 YOLOv8 目標檢測模型》介紹了在 AI 愛克斯開發(fā)板上使用 OpenVINO
    的頭像 發(fā)表于 06-30 10:43 ?920次閱讀
    在AI愛克斯<b class='flag-5'>開發(fā)板</b>上用<b class='flag-5'>OpenVINO</b>?加速YOLOv8-seg實例分割<b class='flag-5'>模型</b>

    20210520定位圖全志D1哪吒開發(fā)板

    20210520定位圖D1哪吒開發(fā)板
    發(fā)表于 03-21 09:51 ?2次下載

    基于OpenVINO C# API部署RT-DETR模型

    Python API 部署 RT-DETR 模型 | 開發(fā)者實戰(zhàn)》和《基于 OpenVINO C++ API 部署 RT-DETR
    的頭像 發(fā)表于 11-10 16:59 ?758次閱讀
    基于<b class='flag-5'>OpenVINO</b> C# API<b class='flag-5'>部署</b>RT-DETR<b class='flag-5'>模型</b>

    NNCF壓縮與量化YOLOv8模型OpenVINO部署測試

    OpenVINO2023版本衍生出了一個新支持工具包NNCF(Neural Network Compression Framework – 神經(jīng)網(wǎng)絡(luò)壓縮框架),通過對OpenVINO IR格式模型的壓縮與量化更好的提升
    的頭像 發(fā)表于 11-20 10:46 ?1609次閱讀
    NNCF壓縮與量化YOLOv8<b class='flag-5'>模型</b>與<b class='flag-5'>OpenVINO</b><b class='flag-5'>部署</b>測試

    OpenVINO? 賦能千元級『哪吒』AI開發(fā)套件大語言模型 | 開發(fā)者實戰(zhàn)

    ,大多數(shù)高性能模型通常需要昂貴的計算資源,使得它們的應(yīng)用受限于有限的環(huán)境。本文將探討在OpenVINO的賦能下,如何在不足千元的AI開發(fā)板上部署Stable-Zeph
    的頭像 發(fā)表于 01-06 08:05 ?1528次閱讀
    <b class='flag-5'>OpenVINO</b>? 賦能千元級『<b class='flag-5'>哪吒</b>』AI<b class='flag-5'>開發(fā)</b>套件大語言<b class='flag-5'>模型</b> | <b class='flag-5'>開發(fā)</b>者實戰(zhàn)

    使用OpenVINO C++在哪吒開發(fā)板上推理Transformer模型

    OpenVINO 是一個開源工具套件,用于對深度學(xué)習(xí)模型進行優(yōu)化并在云端、邊緣進行部署。它能在諸如生成式人工智能、視頻、音頻以及語言等各類應(yīng)用場景中加快深度學(xué)習(xí)推理的速度,且支持來自 PyTorch
    的頭像 發(fā)表于 10-12 09:55 ?340次閱讀
    使用<b class='flag-5'>OpenVINO</b> C++<b class='flag-5'>在哪吒</b><b class='flag-5'>開發(fā)板</b>上推理Transformer<b class='flag-5'>模型</b>

    OpenVINO? C++ 在哪吒開發(fā)板上推理 Transformer 模型開發(fā)者實戰(zhàn)

    信用卡大?。?5x56mm)的開發(fā)板-『哪吒』(Nezha)為核心,『哪吒』采用IntelN97處理器(AlderLake-N),最大睿頻3.6GHz,Intel
    的頭像 發(fā)表于 09-28 08:01 ?344次閱讀
    <b class='flag-5'>OpenVINO</b>? C++ <b class='flag-5'>在哪吒</b><b class='flag-5'>開發(fā)板</b>上推理 Transformer <b class='flag-5'>模型</b>|<b class='flag-5'>開發(fā)</b>者實戰(zhàn)

    基于哪吒開發(fā)板部署YOLOv8模型

    2024英特爾 “走近開發(fā)者”互動活動-哪吒開發(fā)套件免費試 用 AI 創(chuàng)新計劃:哪吒開發(fā)板是專為支持入門級邊緣 AI 應(yīng)用程序和設(shè)備而設(shè)計,
    的頭像 發(fā)表于 11-15 14:13 ?248次閱讀
    基于<b class='flag-5'>哪吒</b><b class='flag-5'>開發(fā)板</b><b class='flag-5'>部署</b>YOLOv8<b class='flag-5'>模型</b>