3.4. シングルモデルサービスプラットフォームを使用したモデルのデプロイ
シングルモデルサービングプラットフォームでは、各モデルが独自のモデルサーバー上でデプロイされます。これにより、リソースの増加を必要とする大規模なモデルのデプロイ、監視、スケーリング、保守が容易になります。
3.4.1. シングルモデルサービスプラットフォームの有効化
KServe をインストールすると、Red Hat OpenShift AI ダッシュボードを使用して、シングルモデルサービスプラットフォームを有効にすることができます。ダッシュボードを使用して、プラットフォームのモデルサービスランタイムを有効にすることもできます。
前提条件
- Red Hat OpenShift AI にログインしている。
-
特殊な OpenShift AI グループを使用している場合は、OpenShift の管理者グループ (
rhoai-admins
など) の一員である。 - KServe をインストールしている。
手順
次のようにシングルモデルサービスプラットフォームを有効にします。
-
左側のメニューで、Settings
Cluster settings をクリックします。 - Model serving platforms セクションを見つけます。
- プロジェクトに対してシングルモデルサービスプラットフォームを有効にするには、Single model serving platform チェックボックスをオンにします。
- Save Changes をクリックします。
-
左側のメニューで、Settings
次のように、シングルモデルサービングプラットフォーム用のプリインストールされたランタイムを有効にします。
OpenShift AI ダッシュボードの左側のメニューで、Settings
Serving runtimes をクリックします。 Serving runtimes ページには、追加したカスタムランタイムに加えて、次のプリインストールされたランタイムが表示されます。
- Caikit TGIS ServingRuntime for KServe
- OpenVINO Model Server
- TGIS Standalone ServingRuntime for KServe
使用するランタイムを Enabled に設定します。
これで、シングルモデルサービスプラットフォームをモデルのデプロイに使用できるようになりました。
3.4.2. シングルモデルサービスプラットフォーム用のカスタムモデルサービスランタイムの追加
モデルサービングランタイムは、指定されたモデルフレームワークのセット (つまり、形式) のサポートを追加します。OpenShift AI に組み込まれている プリインストールされたランタイム を使用するか、独自のカスタムランタイムを追加するかを選択できます。これは、プリインストールされたランタイムがニーズに合わない場合に役立ちます。たとえば、TGIS ランタイムが、Hugging Face Text Generation Inference (TGI) でサポートされている特定のモデル形式をサポートしていないことが判明する場合があります。この場合、カスタムランタイムを作成してモデルのサポートを追加できます。
管理者は、OpenShift AI インターフェイスを使用して、カスタムのモデルサービングランタイムを追加して有効にすることができます。その場合は、シングルモデルサービングプラットフォームにモデルをデプロイする際に、カスタムランタイムを選択できます。
OpenShift AI を使用すると、独自のカスタムランタイムを追加できますが、ランタイム自体はサポートされません。カスタムランタイムを正しく設定して維持することは、お客様の責任となります。また、追加するカスタムランタイムを使用するライセンスの取得について確認することも、お客様の責任となります。
前提条件
- OpenShift AI に管理者としてログインしている。
- カスタムランタイムをビルドし、イメージを Quay などのコンテナーイメージリポジトリーに追加している。
手順
OpenShift AI ダッシュボードから、Settings > Serving runtimes をクリックします。
Serving runtimes ページが開き、すでにインストールされ有効になっているモデルサービングランタイムが表示されます。
カスタムランタイムを追加するには、次のオプションのいずれかを選択します。
- 既存のランタイム (TGIS Standalone ServingRuntime for KServe など) で開始するには、既存のランタイムの横にあるアクションメニュー (⋮) をクリックしてから、Duplicate をクリックします。
- 新しいカスタムランタイムを追加するには、Add serving runtime をクリックします。
- Select the model serving platforms this runtime supports リストで、Single-model serving platform を選択します。
- Select the API protocol this runtime supports リストで、REST または gRPC を選択します。
オプション: (既存のランタイムを複製するのではなく) 新しいランタイムを開始した場合は、次のオプションのいずれかを選択してコードを追加します。
YAML ファイルをアップロードする
- Upload files をクリックします。
ファイルブラウザーで、コンピューター上の YAML ファイルを選択します。
埋め込み YAML エディターが開き、アップロードしたファイルの内容が表示されます。
エディターに YAML コードを直接入力する
- Start from scratch をクリックします。
- 埋め込みエディターに YAML コードを直接入力または貼り付けます。
注記多くの場合、カスタムランタイムを作成するには、
ServingRuntime
仕様のenv
セクションに新しいパラメーターまたはカスタムパラメーターを追加する必要があります。Add をクリックします。
Serving runtimes ページが開き、インストールされているランタイムの更新されたリストが表示されます。追加したカスタムランタイムが自動的に有効になることを確認します。ランタイム作成時に指定した API プロトコルが表示されます。
- オプション: カスタムランタイムを編集するには、アクションメニュー (⋮) をクリックし、Edit を選択します。
検証
- 追加したカスタムモデルサービスランタイムは、Serving runtimes ページに有効な状態で表示されます。
3.4.3. シングルモデルサービスプラットフォームへのモデルのデプロイ
シングルモデルサービスプラットフォームを有効にすると、カスタムまたはプリインストールされたモデルサービスランタイムを有効にして、プラットフォームへのモデルのデプロイを開始できます。
Text Generation Inference Server (TGIS) は、Hugging Face TGI の初期のフォークに基づいています。Red Hat は、TGI モデルをサポートするスタンドアロン TGIS ランタイムの開発を継続します。モデルが OpenShift AI の現在のバージョンで機能しない場合、今後のバージョンでサポートが追加される可能性があります。それまでの間は、独自のカスタムランタイムを追加して TGI モデルをサポートすることもできます。詳細は、シングルモデルサービスプラットフォーム用のカスタムモデルサービスランタイムの追加 を参照してください。
前提条件
- Red Hat OpenShift AI にログインしている。
-
特殊な OpenShift AI グループを使用している場合は、OpenShift のユーザーグループ、または、管理者グループ (
rhoai-users
、rhoai-admins
など) に属している。 - KServe をインストールしている。
- シングルモデルサービスプラットフォームを有効にしている。
- データサイエンスプロジェクトを作成した。
- Caikit-TGIS ランタイムを使用するために、モデルを Caikit 形式に変換している。例については、caikit-tgis-serving リポジトリーの Converting Hugging Face Hub models to Caikit format を参照してください。
- モデルがアクセスするデータ接続のフォルダーパスを把握している。
- モデルサーバーでグラフィックスプロセッシングユニット (GPU) を使用する場合は、OpenShift AI で GPU サポートを有効にしている。OpenShift AI での GPU サポートの有効化 を参照してください。
手順
- 左側のメニューで、Data Science Projects をクリックします。
- モデルをデプロイするプロジェクトの名前をクリックします。
Models and model servers セクションで、次のいずれかのアクションを実行します。
- Single model serving platform タイルが表示された場合は、タイル上の Deploy model をクリックします。
- タイルが表示されない場合は、Deploy model ボタンをクリックします。
Deploy model ダイアログが開きます。
モデルをデプロイするためのプロパティーを次のように設定します。
- Model name フィールドに、デプロイするモデルの一意の名前を入力します。
- Serving runtime フィールドで、有効なランタイムを選択します。
- Model framework リストから値を選択します。
- Number of model replicas to deploy フィールドに値を指定します。
- Model server size リストから値を選択します。
モデルの場所を指定するには、次の一連のアクションのいずれかを実行します。
既存のデータ接続を使用するには
- Existing data connection を選択します。
- Name リストから、以前に定義したデータ接続を選択します。
Path フィールドに、指定したデータソース内のモデルを含むフォルダーパスを入力します。
重要OpenVINO Model Server ランタイムには、モデルパスの指定方法に関する特定の要件があります。詳細は、OpenShift AI リリースノートの既知の問題 RHOAIENG-3025 を参照してください。
新しいデータ接続を使用するには
- モデルがアクセスできる新しいデータ接続を定義するには、New data connection を選択します。
- Name フィールドに、データ接続の一意の名前を入力します。
- Access key フィールドに、S3 互換オブジェクトストレージプロバイダーのアクセスキー ID を入力します。
- Secret key フィールドに、指定した S3 互換オブジェクトストレージアカウントのシークレットアクセスキーを入力します。
- Endpoint フィールドに、S3 互換オブジェクトストレージバケットのエンドポイントを入力します。
- Region フィールドに、S3 互換オブジェクトストレージアカウントのデフォルトのリージョンを入力します。
- Bucket フィールドに、S3 互換のオブジェクトストレージバケットの名前を入力します。
Path フィールドに、データファイルが含まれる S3 互換オブジェクトストレージ内のフォルダーパスを入力します。
重要OpenVINO Model Server ランタイムには、モデルパスの指定方法に関する特定の要件があります。詳細は、OpenShift AI リリースノートの既知の問題 RHOAIENG-3025 を参照してください。
- Deploy をクリックします。
検証
- デプロイされたモデルがプロジェクトの Models and model servers セクションと、ダッシュボードの Model Serving ページに表示され、Status 列にチェックマークが付いていることを確認します。
3.4.4. シングルモデルサービスプラットフォームにデプロイされたモデルの推論エンドポイントへのアクセス
シングルモデルサービスプラットフォームを使用してモデルをデプロイすると、そのモデルは、API リクエストを使用してアクセスできるサービスとして利用できます。これにより、データ入力に基づく予測を返すことができます。API リクエストを使用してデプロイされたモデルと対話するには、利用可能な推論エンドポイントにアクセスする方法を知っておく必要があります。
前提条件
- Red Hat OpenShift AI にログインしている。
-
特殊な OpenShift AI グループを使用している場合は、OpenShift のユーザーグループ、または、管理者グループ (
rhoai-users
、rhoai-admins
など) に属している。 - シングルモデルサービスプラットフォームを使用してモデルをデプロイした。
手順
- OpenShift AI ダッシュボードで、Model Serving をクリックします。
- Project リストから、モデルをデプロイしたプロジェクトを選択します。
- Deployed models テーブルで、アクセスするモデルの Inference endpoint 列に表示されている URL をコピーします。
モデルで実行するアクションに応じて (およびモデルがそのアクションをサポートしている場合)、次のいずれかのパスを推論エンドポイント URL の末尾に追加します。
Caikit TGIS ServingRuntime for KServe
-
:443/api/v1/task/text-generation
-
:443/api/v1/task/server-streaming-text-generation
TGIS Standalone ServingRuntime for KServe
-
:443 fmaas.GenerationService/Generate
:443 fmaas.GenerationService/GenerateStream
注記TGIS スタンドアロンランタイムのエンドポイントをクエリーするには、IBM text-generation-inference リポジトリーの
proto
ディレクトリーにファイルをダウンロードする必要もあります。
OpenVINO Model Server
-
/v2/models/<model-name>/infer
上記のパスで示されているように、シングルモデルサービスプラットフォームは、OpenShift ルーターの HTTPS ポート (通常はポート 443) を使用して、外部 API リクエストを処理します。
-
次のコマンド例に示すように、エンドポイントを使用して、デプロイされたモデルに API リクエストを作成します。
Caikit TGIS ServingRuntime for KServe
curl --json '{"model_id": "<model_name>", "inputs": "<text>"}' https://<inference_endpoint_url>:443/api/v1/task/server-streaming-text-generation
TGIS Standalone ServingRuntime for KServe
grpcurl -proto text-generation-inference/proto/generation.proto -d '{"requests": [{"text":"<text>"}]}' -H 'mm-model-id: <model_name>' -insecure <inference_endpoint_url>:443 fmaas.GenerationService/Generate
OpenVINO Model Server
curl -ks <inference_endpoint_url>/v2/models/<model_name>/infer -d '{ "model_name": "<model_name>", "inputs": [{ "name": "<name_of_model_input>", "shape": [<shape>], "datatype": "<data_type>", "data": [<data>] }]}'