モデルサーバーのデプロイ¶
推奨される OpenVINO モデルサーバーのデプロイ方法は、Docker を使用することです。事前ビルドされたコンテナイメージは、Docker Hub および Red Hat エコシステム・カタログで入手できます。
ベアメタル上のホスト・モデル・サーバー。
ヘルムチャート、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 つの推奨方法があります。
helm チャート - Kubernetes の helm パッケージ・マネージャーを使用してモデルサーバーのインスタンスをデプロイします
Kubernetes オペレーター - Kubernetes オペレーターを使用してモデルサーバーを管理します
OpenShift オペレーター - Red Hat OpenShift でモデルサーバーのインスタンスを管理します
2. および 3. で説明したオペレーターについては、デプロイプロセスの説明を参照してください。