作者:
指導:
顏國進 英特爾邊緣計算創新大使
1OpenVINO Model Server介紹
OpenVINO Model Server(OVMS)是一個高性能的模型部署系統,使用C++實現,并在Intel架構上的部署進行了優化,使用OpenVINO 進行推理,推理服務通過gPRC或REST API提供,使得部署新算法、AI實驗變得簡單。OVMS可以在Docker容器、裸機、Kuberntes環境中運行,這里我使用的是Docker容器。
2哪吒開發板Docker安裝
Ubuntu22.04上的Docker安裝可以參照官方文檔:
https://docs.docker.com/engine/install/
首先安裝依賴:
sudo apt update sudo apt install ca-certificates curl
然后添加Docker的GPG密鑰,如果你的網絡可以正常訪問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
如果無法正常訪問,就需要換成國內鏡像源,這里以阿里源為例:
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環境的鏡像:
https://hub.docker.com/r/openvino/model_server/tags
sudo docker pull openvino/model_server:latest-gpu sudo docker images
4準備模型
首先在哪吒開發板上新建一個models文件夾,文件夾的結構如下,這里我在models文件夾下存放了resnet50和Transformer兩個模型,版本都為1,模型為OpenVINO IR格式。
5啟動OpenVINO Model Server容器
在哪吒開發板上啟動帶有iGPU環境的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
各個參數的含義可在官方文檔查看:https://docs.openvino.ai/2024/ovms_docs_parameters.html
容器啟動后可以通過以下命令查看容器ID、狀態信息等。
sudo docker ps
這樣Transformer模型就通過OpenVINO Model Server部署在了哪吒開發板上。
6請求推理服務
接下來通過gRPC API訪問推理服務,以python為例,首先安裝ovmsclient包。
pip install ovmsclient
請求推理的代碼如下,這里在局域網的另一臺機器上請求哪吒開發板上的推理服務,10.0.70.164為哪吒開發板的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')
推理結果成功返回,平均推理時間12ms,如果換成更穩定的以太網速度應該會更快。
7總結
以上就是在哪吒開發板上使用OpenVINO(C++)推理模型,并通過OpenVINO Model Server進行模型部署的過程,可以看出OpenVINO的使用還是比較方便、簡潔的,推理速度也很快。
-
英特爾
+關注
關注
61文章
9949瀏覽量
171692 -
開發板
+關注
關注
25文章
5032瀏覽量
97371 -
模型
+關注
關注
1文章
3226瀏覽量
48807 -
Docker
+關注
關注
0文章
457瀏覽量
11846 -
OpenVINO
+關注
關注
0文章
92瀏覽量
196
原文標題:使用 OpenVINO? Model Server 在哪吒開發板上部署模型|開發者實戰
文章出處:【微信號:英特爾物聯網,微信公眾號:英特爾物聯網】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論