モデルサーバーのデプロイ#

  1. 推奨される OpenVINO モデルサーバーのデプロイ方法は、Docker を使用することです。事前ビルドされたコンテナイメージは、Docker Hub および Red Hat エコシステム・カタログで入手できます。

  2. ベアメタル上のホスト・モデル・サーバー。

  3. ヘルムチャート、Kubernetes オペレーター、または OpenShift オペレーターを介して OpenVINO モデルサーバーを Kubernetes にデプロイします。

Docker コンテナへのモデルサーバーのデプロイ#

ここでは、ビルド済みの Docker コンテナを使用して Linux* に OpenVINO™ モデルサーバーをデプロイする方法をステップごとに示します。

次のものが揃っていることを確認してください:

  • Docker エンジンがインストールされている

  • インテル® Core™ プロセッサー (6 - 13 世代) またはインテル® Xeon® プロセッサー (1 - 4 世代)

  • Linux*、macOS*、または WSL と Windows*

  • (オプション) OpenVINO でサポートされる AI アクセラレーター。アクセラレーターは、ベアメタル Linux* ホストでのみテストされています。

モデル・サーバー・コンテナの起動#

この例は、ResNet50 画像分類モデルを使用してモデルサーバーをクラウドストレージから起動する方法を示しています:

ステップ 1. サーバーイメージを取得#

Docker からイメージを取得:

docker pull openvino/model_server:latest

または RedHat エコシステム・カタログ から取得:

docker pull registry.connect.redhat.com/intel/openvino-model-server:latest

ステップ 2. 提供するデータの準備#

2.1 モデルとコンテナを起動#
wget https://storage.openvinotoolkit.org/repositories/open_model_zoo/2022.1/models_bin/2/resnet50-binary-0001/FP32-INT1/resnet50-binary-0001.{xml,bin} -P models/resnet50/1 docker run -u $(id -u) -v $(pwd)/models:/models -p 9000:9000 openvino/model_server:latest \ 
--model_name resnet --model_path /models/resnet50 \ 
--layout NHWC:NCHW --port 9000
2.2 入力ファイルのダウンロード: 画像とラベル・マッピング・ファイル#
wget https://raw.githubusercontent.com/openvinotoolkit/model_server/releases/2024/3/demos/common/static/images/zebra.jpeg
 
wget https://raw.githubusercontent.com/openvinotoolkit/model_server/releases/2024/3/demos/common/python/classes.py
2.3 Python ベースの ovmsclient パッケージをインストール#
pip3 install ovmsclient

ステップ 3. 推論の実行#

echo 'import numpy as np 
from classes import imagenet_classes 
from ovmsclient import make_grpc_client
 
client = make_grpc_client("localhost:9000") 

with open("zebra.jpeg", "rb") as f: 
    img = f.read() 

output = client.predict({"0": img}, "resnet") 
result_index = np.argmax(output[0]) 
print(imagenet_classes[result_index])' >> predict.py 

python predict.py 
zebra

すべてが正しく設定されている場合、出力に ‘zebra’ 予測が表示されます。

ベアメタルへのモデルサーバーのデプロイ (コンテナなし)#

モデルサーバーをコンテナ外部にデプロイできます。モデルサーバーをベアメタル上にデプロイするには、Ubuntu* 20、Ubuntu* 22、または RHEL8* 用のコンパイル済みバイナリーを使用します。

バイナリーのビルド:

# モデル・サーバー・リポジトリーをクローンする 
git clone https://github.com/openvinotoolkit/model_server 
cd model_server 
# Docker イメージをビルドする (バイナリーは成果物の 1 つ) 
make docker_build BASE_OS=ubuntu20 PYTHON_DISABLE=1 RUN_TESTS=0 
# パッケージをアンパック 
tar -xzvf dist/ubuntu20/ovms.tar.gz

必要なライブラリーをインストール:

sudo apt update -y && apt install -y liblibxml2 curl

ライブラリーへのパスを設定

export LD_LIBRARY_PATH=${pwd}/ovms/lib

MediaPipe グラフ用の Python 計算機を使用してビルドする場合 (PYTHON_DISABLE=0)、次も実行します:

export PYTHONPATH=${pwd}/ovms/lib/python 
sudo apt -y install libpython3.8

コンパイル済みパッケージをダウンロード:

wget https://github.com/openvinotoolkit/model_server/releases/download/v2024.3/ovms_ubuntu22.tar.gz 
tar -xzvf ovms_ubuntu22.tar.gz

または自身でビルド:

# モデル・サーバー・リポジトリーをクローンする 
git clone https://github.com/openvinotoolkit/model_server 
cd model_server 
# Docker イメージをビルドする (バイナリーは成果物の 1 つ) 
make docker_build PYTHON_DISABLE=1 RUN_TESTS=0 
# パッケージをアンパック 
tar -xzvf dist/ubuntu22/ovms.tar.gz

必要なライブラリーをインストール:

sudo apt update -y && apt install -y libxml2 curl

ライブラリーへのパスを設定

export LD_LIBRARY_PATH=${pwd}/ovms/lib

MediaPipe グラフ用の Python 計算機を使用してビルドする場合 (PYTHON_DISABLE=0)、次も実行します:

export PYTHONPATH=${pwd}/ovms/lib/python 
sudo apt -y install libpython3.10

コンパイル済みパッケージをダウンロード:

wget https://github.com/openvinotoolkit/model_server/releases/download/v2024.3/ovms_ubuntu22.tar.gz 
tar -xzvf ovms_ubuntu22.tar.gz

または自身でビルド:

# モデル・サーバー・リポジトリーをクローンする 
git clone https://github.com/openvinotoolkit/model_server 
cd model_server 
# Docker イメージをビルドする (バイナリーは成果物の 1 つ) 
make docker_build PYTHON_DISABLE=1 RUN_TESTS=0 
# パッケージをアンパック 
tar -xzvf dist/ubuntu22/ovms.tar.gz

必要なライブラリーをインストール:

sudo apt update -y && apt install -y libxml2 curl

ライブラリーへのパスを設定

export LD_LIBRARY_PATH=${pwd}/ovms/lib

MediaPipe グラフ用の Python 計算機を使用してビルドする場合 (PYTHON_DISABLE=0)、次も実行します:

export PYTHONPATH=${pwd}/ovms/lib/python 
sudo apt -y install libpython3.10

コンパイル済みパッケージをダウンロード:

wget https://github.com/openvinotoolkit/model_server/releases/download/v2024.3/ovms_redhat.tar.gz 
tar -xzvf ovms_redhat.tar.gz

または自身でビルド:

# モデル・サーバー・リポジトリーをクローンする 
git clone https://github.com/openvinotoolkit/model_server 
cd model_server  
# Docker イメージをビルドする (バイナリーは成果物の 1 つ) 
make docker_build BASE_OS=redhat PYTHON_DISABLE=1 RUN_TESTS=0
# パッケージをアンパック 
tar -xzvf dist/redhat/ovms.tar.gz

ライブラリーへのパスを設定

export LD_LIBRARY_PATH=${pwd}/ovms/lib

MediaPipe グラフ用の Python 計算機を使用してビルドする場合 (PYTHON_DISABLE=0)、次も実行します:

export PYTHONPATH=${pwd}/ovms/lib/python 
sudo yum install -y python39-libs

コンパイル済みパッケージをダウンロード:

wget https://github.com/openvinotoolkit/model_server/releases/download/v2024.3/ovms_redhat.tar.gz 
tar -xzvf ovms_redhat.tar.gz

または自身でビルド:

# モデル・サーバー・リポジトリーをクローンする 
git clone https://github.com/openvinotoolkit/model_server 
cd model_server  
# Docker イメージをビルドする (バイナリーは成果物の 1 つ) 
make docker_build BASE_OS=redhat PYTHON_DISABLE=1 RUN_TESTS=0
# パッケージをアンパック 
tar -xzvf dist/redhat/ovms.tar.gz

必要なライブラリーをインストール:

sudo yum install compat-openssl11.x86_64

ライブラリーへのパスを設定

export LD_LIBRARY_PATH=${pwd}/ovms/lib

MediaPipe グラフ用の Python 計算機を使用してビルドする場合 (PYTHON_DISABLE=0)、次も実行します:

export PYTHONPATH=${pwd}/ovms/lib/python 
sudo yum install -y python39-libs

サーバーを開始:

wget https://storage.openvinotoolkit.org/repositories/open_model_zoo/2022.1/models_bin/2/resnet50-binary-0001/FP32-INT1/resnet50-binary-0001.{xml,bin} -P models/resnet50/1 

./ovms/bin/ovms --model_name resnet --model_path models/resnet50

または、Linux* ディストリビューションと特定のホスティング要件に応じて、バックグラウンド・プロセスまたは systemctl/initd に登録されるデーモンとして開始します。

モデルサーバーのドキュメントではコンテナの使用法が示されていますが、バイナリーパッケージだけでも同じことができます。
モデルサーバーの詳細については、起動パラメーターをご覧ください。

: AI アクセラレーターでモデルを提供する場合、デバイスドライバーと依存関係をインストールするため追加手順が必要になることがあります。詳細については、追加のハードウェア設定を参照してください。

Kubernetes でのモデルサーバーのデプロイ#

Kubernetes に OpenVINO モデルサーバーをデプロイするには、次の 3 つの推奨方法があります:

  1. helm チャート - Kubernetes の helm パッケージ・マネージャーを使用してモデルサーバーのインスタンスをデプロイします

  2. Kubernetes オペレーター - Kubernetes オペレーターを使用してモデルサーバーを管理します

  3. OpenShift オペレーター - Red Hat OpenShift でモデルサーバーのインスタンスを管理します

2. および 3. で説明したオペレーターについては、デプロイプロセスの説明を参照してください

次のステップ#

関連情報#