3.6. シングルモデルサービングプラットフォームにデプロイされたモデルに対する推論リクエストの実行
シングルモデルサービングプラットフォームを使用してモデルをデプロイすると、そのモデルは、API リクエストを使用してアクセスできるサービスとして利用できます。これにより、データ入力に基づく予測を返すことができます。API リクエストを使用してデプロイされたモデルと対話するには、モデルの推論エンドポイントを知っておく必要があります。
さらに、トークン認可を有効にすることで推論エンドポイントを保護した場合は、推論リクエストで認可トークンを指定できるように、認可トークンへのアクセス方法を理解する必要があります。
3.6.1. デプロイされたモデルの認可トークンにアクセスする
トークン認可を有効にすることで推論エンドポイントを保護した場合は、推論リクエストで認可トークンを指定できるように、認可トークンへのアクセス方法を理解する必要があります。
前提条件
- Red Hat OpenShift AI にログインしている。
-
特殊な OpenShift AI グループを使用している場合は、OpenShift のユーザーグループ、または、管理者グループ (
rhoai-users
、rhoai-admins
など) に属している。 - シングルモデルサービングプラットフォームを使用してモデルをデプロイした。
手順
OpenShift AI ダッシュボードから、Data Science Projects をクリックします。
Data Science Projects ページが開きます。
デプロイされたモデルが含まれるプロジェクトの名前をクリックします。
プロジェクトの詳細ページが開きます。
- Models タブをクリックします。
Models and model servers リストで、モデルのセクションを展開します。
認可トークンは、Token authorization セクションの Token secret フィールドに表示されます。
- オプション: 推論リクエストで使用する認可トークンをコピーするには、トークン値の横に表示される Copy ボタン ( ) をクリックします。
3.6.2. デプロイされたモデルの推論エンドポイントにアクセスする
デプロイされたモデルに対して推論リクエストを行うには、利用可能な推論エンドポイントへのアクセス方法を知っておく必要があります。
前提条件
- Red Hat OpenShift AI にログインしている。
-
特殊な OpenShift AI グループを使用している場合は、OpenShift のユーザーグループ、または、管理者グループ (
rhoai-users
、rhoai-admins
など) に属している。 - シングルモデルサービングプラットフォームを使用してモデルをデプロイした。
- デプロイされたモデルに対してトークン認可を有効にしている場合は、関連付けられたトークン値があります。
手順
OpenShift AI ダッシュボードで、Model Serving をクリックします。
モデルの推論エンドポイントは、Inference endpoint フィールドに表示されます。
モデルに対して実行するアクション (およびモデルがそのアクションをサポートしているかどうか) に応じて、表示されている推論エンドポイントをコピーし、URL の末尾に次のいずれかのパスを追加します。
Caikit TGIS ServingRuntime for KServe
-
:443/api/v1/task/text-generation
-
:443/api/v1/task/server-streaming-text-generation
Caikit Standalone ServingRuntime for KServe
REST エンドポイント
-
/api/v1/task/embedding
-
/api/v1/task/embedding-tasks
-
/api/v1/task/sentence-similarity
-
/api/v1/task/sentence-similarity-tasks
-
/api/v1/task/rerank
-
/api/v1/task/rerank-tasks
gRPC エンドポイント
-
:443 caikit.runtime.Nlp.NlpService/EmbeddingTaskPredict
-
:443 caikit.runtime.Nlp.NlpService/EmbeddingTasksPredict
-
:443 caikit.runtime.Nlp.NlpService/SentenceSimilarityTaskPredict
-
:443 caikit.runtime.Nlp.NlpService/SentenceSimilarityTasksPredict
-
:443 caikit.runtime.Nlp.NlpService/RerankTaskPredict
-
:443 caikit.runtime.Nlp.NlpService/RerankTasksPredict
注記デフォルトでは、Caikit スタンドアロンランタイムは REST エンドポイントを公開して使用します。gRPC プロトコルを使用するには、カスタム Caikit Standalone ServingRuntime を手動でデプロイします。詳細は、シングルモデルサービングプラットフォーム用のカスタムモデルサービングランタイムの追加 を参照してください。
サンプルのマニフェストは caikit-tgis-serving GitHub リポジトリー で入手できます。
TGIS Standalone ServingRuntime for KServe
-
:443 fmaas.GenerationService/Generate
:443 fmaas.GenerationService/GenerateStream
注記TGIS スタンドアロンランタイムのエンドポイントをクエリーするには、Open Data Hub
text-generation-inference
リポジトリーの proto ディレクトリーにあるファイルもダウンロードする必要があります。
OpenVINO Model Server
-
/v2/models/<model-name>/infer
vLLM ServingRuntime for KServe
-
:443/version
-
:443/docs
-
:443/v1/models
-
:443/v1/chat/completions
-
:443/v1/completions
:443/v1/embeddings
注記vLLM ランタイムは OpenAI REST API と互換性があります。vLLM ランタイムがサポートするモデルのリストについては、サポートされるモデル を参照してください。
注記vLLM で embeddings 推論エンドポイントを使用するには、vLLM でサポートされている embeddings モデルを使用する必要があります。生成モデルでは embeddings エンドポイントは使用できません。詳細は、vLLM でサポートされている embeddings モデル を参照してください。
上記のパスで示されているように、シングルモデルサービングプラットフォームは、OpenShift ルーターの HTTPS ポート (通常はポート 443) を使用して、外部 API リクエストを処理します。
-
次のコマンド例に示すように、エンドポイントを使用して、デプロイされたモデルに API リクエストを作成します。
注記モデルのデプロイ時にトークン認可を有効にした場合は、
Authorization
ヘッダーを追加してトークン値を指定する必要があります。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 -H 'Authorization: Bearer <token>'
Caikit Standalone ServingRuntime for KServe .REST
curl -H 'Content-Type: application/json' -d '{"inputs": "<text>", "model_id": "<model_id>"}' <inference_endpoint_url>/api/v1/task/embedding -H 'Authorization: Bearer <token>'
gRPC
grpcurl -insecure -d '{"text": "<text>"}' -H \"mm-model-id: <model_id>\" <inference_endpoint_url>:443 caikit.runtime.Nlp.NlpService/EmbeddingTaskPredict -H 'Authorization: Bearer <token>'
TGIS Standalone ServingRuntime for KServe
grpcurl -proto text-generation-inference/proto/generation.proto -d '{"requests": [{"text":"<text>"}]}' -H 'Authorization: Bearer <token>' -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>] }]}' -H 'Authorization: Bearer <token>'
vLLM ServingRuntime for KServe
curl -v https://<inference_endpoint_url>:443/v1/chat/completions -H "Content-Type: application/json" -d '{ "messages": [{ "role": "<role>", "content": "<content>" }] -H 'Authorization: Bearer <token>'