OpenVINO モデル・サーバー・アダプター

OVMSAdapterModelAdapter インターフェイスを実装します。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 をリクエスト