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

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

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

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

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

作者:

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

指導(dǎo):

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

1OpenVINO Model Server介紹

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

安裝后可以通過以下命令驗(yàn)證是否安裝成功:

sudo docker --version
sudo docker run hello-world

3拉取OpenVINOModel Server鏡像

各個(gè)版本的鏡像可以在OpenVINO 的Docker Hub上找到,我拉取了一個(gè)最新的帶有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準(zhǔn)備模型

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

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

5啟動(dòng)OpenVINO Model Server容器

在哪吒開發(fā)板上啟動(dòng)帶有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

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

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

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

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

6請(qǐng)求推理服務(wù)

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

pip install ovmsclient

請(qǐng)求推理的代碼如下,這里在局域網(wǎng)的另一臺(tái)機(jī)器上請(qǐ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é)果成功返回,平均推理時(shí)間12ms,如果換成更穩(wěn)定的以太網(wǎng)速度應(yīng)該會(huì)更快。

7總結(jié)

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

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

    關(guān)注

    60

    文章

    9858

    瀏覽量

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

    關(guān)注

    25

    文章

    4886

    瀏覽量

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

    關(guān)注

    1

    文章

    3105

    瀏覽量

    48642
  • Docker
    +關(guān)注

    關(guān)注

    0

    文章

    452

    瀏覽量

    11792
  • OpenVINO
    +關(guān)注

    關(guān)注

    0

    文章

    83

    瀏覽量

    166

原文標(biāo)題:使用 OpenVINO? Model Server 在哪吒開發(fā)板上部署模型|開發(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)推薦

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

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

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

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

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

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

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

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

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

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

    自訓(xùn)練Pytorch模型使用OpenVINO?優(yōu)化并部署在AI愛克斯開發(fā)板

    本文章將依次介紹如何將 Pytorch 自訓(xùn)練模型經(jīng)過一系列變換變成 OpenVINO IR 模型形式,而后使用 OpenVINO Python API 對(duì) IR
    的頭像 發(fā)表于 05-26 10:23 ?863次閱讀
    自訓(xùn)練Pytorch<b class='flag-5'>模型</b>使用<b class='flag-5'>OpenVINO</b>?優(yōu)化并<b class='flag-5'>部署</b>在AI愛克斯<b class='flag-5'>開發(fā)板</b>

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

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

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

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

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

    《在 AI 愛克斯開發(fā)板上用 OpenVINO 加速 YOLOv8 目標(biāo)檢測模型》介紹了在 AI 愛克斯開發(fā)板上使用 OpenVINO
    的頭像 發(fā)表于 06-30 10:43 ?840次閱讀
    在AI愛克斯<b class='flag-5'>開發(fā)板</b>上用<b class='flag-5'>OpenVINO</b>?加速YOLOv8-seg實(shí)例分割<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ā)者實(shí)戰(zhàn)》和《基于 OpenVINO C++ API 部署 RT-DETR
    的頭像 發(fā)表于 11-10 16:59 ?693次閱讀
    基于<b class='flag-5'>OpenVINO</b> C# API<b class='flag-5'>部署</b>RT-DETR<b class='flag-5'>模型</b>

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

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

    使用愛芯派Pro開發(fā)板部署人體姿態(tài)估計(jì)模型

    在經(jīng)過之前對(duì)于開發(fā)板的使用,以及通過幾個(gè)愛芯派官方給出的示例demo(mobilenet/yolov5)在開發(fā)板上的部署之后,筆者也逐漸了解了愛芯派這塊開發(fā)板利用其官方的推理引擎和pi
    的頭像 發(fā)表于 01-09 09:50 ?1322次閱讀
    使用愛芯派Pro<b class='flag-5'>開發(fā)板</b><b class='flag-5'>部署</b>人體姿態(tài)估計(jì)<b class='flag-5'>模型</b>

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

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

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

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