モデルサーバーのデプロイ#
推奨される 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 90002.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.py2.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/libMediaPipe グラフ用の 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/libMediaPipe グラフ用の 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/libMediaPipe グラフ用の 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/libMediaPipe グラフ用の 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/libMediaPipe グラフ用の 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 つの推奨方法があります:
helm チャート - Kubernetes の helm パッケージ・マネージャーを使用してモデルサーバーのインスタンスをデプロイします
Kubernetes オペレーター - Kubernetes オペレーターを使用してモデルサーバーを管理します
OpenShift オペレーター - Red Hat OpenShift でモデルサーバーのインスタンスを管理します
2. および 3. で説明したオペレーターについては、デプロイプロセスの説明を参照してください