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

  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/0/demos/common/static/images/zebra.jpeg
wget https://raw.githubusercontent.com/openvinotoolkit/model_server/releases/2024/0/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* 用のコンパイル済みバイナリーを使用します。

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

wget https://github.com/openvinotoolkit/model_server/releases/download/v2023.1/ovms_ubuntu20.tar.gz

または自身でビルド:

# Clone the model server repository
git clone https://github.com/openvinotoolkit/model_server
cd model_server
# Build docker images (the binary is one of the artifacts)
make docker_build BASE_OS=ubuntu20
# Unpack the package
tar -xzvf dist/ubuntu/ovms.tar.gz

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

sudo apt update -y && apt install -y libpugixml1v5 libtbb2

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

wget https://github.com/openvinotoolkit/model_server/releases/download/v2023.1/ovms_ubuntu22.tar.gz

または自身でビルド:

# Clone the model server repository
git clone https://github.com/openvinotoolkit/model_server
cd model_server
# Build docker images (the binary is one of the artifacts)
make docker_build
# Unpack the package
tar -xzvf dist/ubuntu/ovms.tar.gz

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

sudo apt update -y && apt install -y libpugixml1v5 libtbb12

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

wget https://github.com/openvinotoolkit/model_server/releases/download/v2023.1/ovms_redhat.tar.gz

または自身でビルド:

# Clone the model server repository
git clone https://github.com/openvinotoolkit/model_server
cd model_server
# Build docker images (the binary is one of the artifacts)
make docker_build BASE_OS=redhat
# Unpack the package
tar -xzvf dist/redhat/ovms.tar.gz

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

sudo dnf install -y pkg-config && sudo rpm -ivh https://vault.centos.org/centos/8/AppStream/x86_64/os/Packages/tbb-2018.2-9.el8.x86_64.rpm

サーバーを開始:

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. で説明したオペレーターについては、デプロイプロセスの説明を参照してください。

次のステップ