OpenVINO モデル・サーバー・アダプター#
OVMSAdapter は ModelAdapter インターフェイスを実装します。OVMSAdapter を使用すると、OpenVINO モデルサーバーでホストされているモデルでモデル API を使用できるようになります。
必要条件#
OVMSAdapter が OpenVINO モデルサーバーへの gRPC 呼び出しによる推論を有効にするには、次の 2 つが必要です:
モデルを提供する OpenVINO モデルサーバー
ovmsclientモデルサーバーとの通信を可能にするためインストールされたパッケージ
OpenVINO モデルサーバーのデプロイ#
モデルサーバーは Docker イメージとして配布され、DockerHub で入手でき、docker run コマンドで使用できます。OpenVINO モデルサーバーを使用して OpenVINO に最適化されたモデルをデプロイする方法は、モデルサーバーのドキュメントを参照してください。
ovmsclient のインストール#
ovmsclient パッケージは PyPI で配布されているため、インストールの最も簡単な方法は以下です:
pip3 install ovmsclientモデル構成#
OpenVINO モデルサーバーを使用する場合、クライアント・アプリケーション (OMZ デモなど) からモデルに直接アクセスすることはできません。したがって、設定はすべてモデルサーバー側で行う必要があります。
入力の再形成#
ユースケースによっては、特定のサイズの入力に一致するようにモデルの再形成が必要です。その場合、モデルサーバー起動コマンドに --shape auto パラメーターを指定します。このオプションを使用すると、モデルサーバーは入力データと一致するようにオンデマンドでモデル入力を再形成します。
推論オプション#
次のオプションで、OpenVINO モデルサーバーのモデルの推論関連オプションを構成できます:
--target_device- モデルをロードするデバイスの名前--nireq- InferRequests の番号--plugin_config- デバイスプラグインの構成
詳細については、モデルサーバーの構成パラメーターを参照してください。
OVMS 起動コマンドの例#
docker run -d --rm -v /home/user/models:/models -p 9000:9000 openvino/model_server:latest --model_path /models/model1 --model_name model1 --port 9000 --shape auto --nireq 32 --target_device CPU --plugin_config "{\"CPU_THROUGHPUT_STREAMS\": \"CPU_THROUGHPUT_AUTO\"}"注: デモでは、
--adapter ovmsを使用している間、-nireq、-nstreams-nthreadsなどの推論オプション、および-dのデバイス仕様は無視されます。
OVMSAdapter を使用したデモの実行#
OpenVINO モデルサーバーで提供されるモデルを使用してデモを実行するには、--adapter ovms オプションを指定し、モデルファイルではなくモデル推論サービスを示すように -m パラメーターを変更する必要があります。OVMSAdapter のモデル・パラメーターは次のスキーマに従います:
<service_address>/models/<model_name>[:<model_version>]
<service_address>-<address>:<port>形式の OVMS gRPC サービスアドレス<model_name>- ターゲットモデルの名前 (モデルサーバー起動コマンドのmodel_nameパラメーターで指定されたもの)<model_version>(オプション) - 対象機種のバージョン (デフォルト: 最新)
モデルサーバーがデモと同じマシン上で実行され、ポート 9000 で gRPC サービスを公開し、model1 というモデルを提供すると仮定すると、-m パラメーターの値は次のようになります:
localhost:9000/models/model1- 最新モデルのバージョンをリクエストlocalhost:9000/models/model1:2- モデルのバージョン番号 2 をリクエスト