2.20. NVIDIA NIM モデルサービングプラットフォームについて
NVIDIA NIM モデルサービングプラットフォーム で NVIDIA NIM 推論サービスを使用してモデルを展開できます。
NVIDIA AI Enterprise の一部である NVIDIA NIM は、クラウド、データセンター、ワークステーションをまたいで推論を実行する高性能 AI モデルの、セキュアで信頼性の高いデプロイメントのために設計されたマイクロサービスのセットです。
関連情報
2.20.1. NVIDIA NIM モデルサービングプラットフォームの有効化
管理者は、Red Hat OpenShift AI ダッシュボードを使用して、NVIDIA NIM モデルサービングプラットフォームを有効にできます。
以前に OpenShift AI で NVIDIA NIM モデルサービングプラットフォーム を有効にし、その後新しいバージョンにアップグレードした場合は、NVIDIA NGC API キーを再入力して、NVIDIA NIM モデルサービングプラットフォームを再度有効にしてください。
前提条件
- Red Hat OpenShift AI に管理者としてログインしている。
- シングルモデルサービングプラットフォームを有効にしている。プリインストールされているランタイムを有効にする必要はありません。シングルモデルサービングプラットフォームを有効にする方法の詳細は、シングルモデルサービングプラットフォームの有効化 を参照してください。
disableNIMModelServing
OpenShift AI ダッシュボード設定がfalse
に設定されている。disableNIMModelServing: false
詳細は、ダッシュボード設定オプション を参照してください。
- OpenShift AI で GPU サポートを有効にした。これには、Node Feature Discovery Operator と NVIDIA GPU Operator のインストールが含まれます。詳細は、Node Feature Discovery Operator のインストール と NVIDIA GPU の有効化 を参照してください。
- NVIDIA Cloud Account (NCA) をお持ちで、NVIDIA GPU Cloud (NGC) ポータルにアクセスできる。詳細は、NVIDIA GPU Cloud user guide を参照してください。
- お使いの NCA アカウントが NVIDIA AI Enterprise Viewer ロールに関連付けられている。
- NGC ポータルで NGC API キーを生成した。詳細は、NGC API keys を参照してください。
手順
- OpenShift AI にログインします。
-
OpenShift AI ダッシュボードの左側のメニューで、Applications
Explore をクリックします。 - Explore ページで、NVIDIA NIM タイルを見つけます。
- アプリケーションタイルで Enable をクリックします。
- NGC API キーを入力し、Submit をクリックします。
検証
- 有効にした NVIDIA NIM アプリケーションが Enabled ページに表示されます。
2.20.2. NVIDIA NIM モデルサービングプラットフォームにモデルをデプロイする
NVIDIA NIM モデルサービングプラットフォーム を有効にすると、プラットフォーム上で NVIDIA 向けに最適化されたモデルのデプロイを開始できます。
前提条件
- Red Hat OpenShift AI にログインしている。
-
OpenShift AI グループを使用している場合は、OpenShift のユーザーグループまたは管理者グループ (
rhoai-users
やrhoai-admins
など) に属している。 - NVIDIA NIM モデルサービングプラットフォーム を有効にした。
- データサイエンスプロジェクトを作成している。
- OpenShift AI でグラフィックプロセッシングユニット (GPU) のサポートを有効にした。これには、Node Feature Discovery Operator と NVIDIA GPU Operator のインストールが含まれます。詳細は、Node Feature Discovery Operator のインストール と NVIDIA GPU の有効化 を参照してください。
手順
左側のメニューで、Data Science Projects をクリックします。
Data Science Projects ページが開きます。
モデルをデプロイするプロジェクトの名前をクリックします。
プロジェクトの詳細ページが開きます。
- Models タブをクリックします。
Models セクションで、次のいずれかの操作クションを実行します。
- NVIDIA NIM model serving platform タイルで、タイル上の Select NVIDIA NIM をクリックし、Deploy model をクリックします。
- 以前に NVIDIA NIM モデルサービングタイプを選択した場合は、Models ページの右上隅に NVIDIA model serving enabled が表示され、Deploy model ボタンも表示されます。続行するには、Deploy model をクリックします。
Deploy model ダイアログが開きます。
モデルをデプロイするためのプロパティーを次のように設定します。
- Model deployment name フィールドに、デプロイメントの一意の名前を入力します。
- NVIDIA NIM リストから、デプロイする NVIDIA NIM モデルを選択します。詳細は、Supported Models を参照してください。
- NVIDIA NIM storage size フィールドで、NVIDIA NIM モデルを保存するために作成されるクラスターストレージインスタンスのサイズを指定します。
- Number of model server replicas to deploy フィールドに値を指定します。
- Model server size リストから値を選択します。
Accelerator リストからアクセラレーターを選択します。
Number of accelerators フィールドが表示されます。
- Number of accelerators フィールドで、使用するアクセラレーターの数を指定します。デフォルト値は 1 です。
- オプション: Model route セクションで、Make deployed models available through an external route チェックボックスをオンにして、デプロイされたモデルを外部クライアントが利用できるようにします。
デプロイされたモデルに対する推論リクエストにトークン認証を要求するには、次のアクションを実行します。
- Require token authentication を選択します。
- Service account name フィールドに、トークンが生成されるサービスアカウント名を入力します。
- 追加のサービスアカウントを追加するには、Add a service account をクリックし、別のサービスアカウント名を入力します。
- Deploy をクリックします。
検証
- デプロイされたモデルがプロジェクトの Models タブに表示され、ダッシュボードの Model Serving ページで Status 列にチェックマークが付いて表示されていることを確認します。
2.20.3. 既存の NIM デプロイメントの NVIDIA NIM メトリクスの有効化
以前に OpenShift AI に NIM モデルをデプロイし、その後 2.18 にアップグレードした場合は、メトリクスの収集とグラフの生成を有効にするアノテーションを追加して、既存のデプロイメントに対して NIM メトリクスを手動で有効にする必要があります。
2.17 では、NIM メトリクスとグラフが新しいデプロイメントに対して自動的に有効になります。
2.20.3.1. 既存の既存の NIM デプロイメントのグラフ生成の有効化
次の手順では、既存の NIM デプロイメントでグラフ生成を有効にする方法を説明します。
前提条件
- OpenShift クラスターのクラスター管理者権限を持っている。
- OpenShift コマンドラインインターフェイス (CLI) がダウンロードおよびインストールされている。詳細は、OpenShift CLI のインストール を参照してください。
- OpenShift AI に既存の NIM デプロイメントがある。
手順
- ターミナルウィンドウで、クラスター管理者として OpenShift クラスターにまだログインしていない場合は、OpenShift CLI にログインします。
NIM デプロイメントに関連付けられている
ServingRuntime
の名前を確認します。oc get servingruntime -n <namespace>
<namespace>
は、NIM モデルがデプロイされているプロジェクトの namespace に置き換えます。ServingRuntime
設定に既存のmetadata.annotations
セクションがあるかどうかを確認します。oc get servingruntime -n <namespace> <servingruntime-name> -o json | jq '.metadata.annotations'
<servingruntime-name> は、前の手順の
ServingRuntime
の名前に置き換えます。次のいずれかの操作を実行します。
設定に
metadata.annotations
セクションが存在しない場合は、必要なアノテーションを含むセクションを追加します。oc patch servingruntime -n <namespace> <servingruntime-name> --type json --patch \ '[{"op": "add", "path": "/metadata/annotations", "value": {"runtimes.opendatahub.io/nvidia-nim": "true"}}]'
以下のような出力が表示されます。
servingruntime.serving.kserve.io/nim-serving-runtime patched
既存の
metadata.annotations
セクションがある場合は、必要なアノテーションをセクションに追加します。oc patch servingruntime -n <project-namespace> <runtime-name> --type json --patch \ '[{"op": "add", "path": "/metadata/annotations/runtimes.opendatahub.io~1nvidia-nim", "value": "true"}]'
以下のような出力が表示されます。
servingruntime.serving.kserve.io/nim-serving-runtime patched
検証
アノテーションが既存の NIM デプロイメントの
ServingRuntime
に追加されていることを確認します。oc get servingruntime -n <namespace> <servingruntime-name> -o json | jq '.metadata.annotations'
追加したアノテーションが出力に表示されます。
... "runtimes.opendatahub.io/nvidia-nim": "true"
注記メトリクスをグラフ生成に使用できるようにするには、デプロイメントでメトリクスの収集も有効にする必要があります。既存の NIM デプロイメントのメトリクス収集の有効化 を参照してください。
2.20.3.2. 既存の NIM デプロイメントのメトリクス収集を有効にする
既存の NIM デプロイメントのメトリクス収集を有効にするには、デプロイメントの InferenceService
に Prometheus エンドポイントとポートアノテーションを手動で追加する必要があります。
次の手順では、NIM デプロイメントの InferenceService
に必要な Prometheus アノテーションを追加する方法を説明します。
前提条件
- OpenShift クラスターのクラスター管理者権限を持っている。
- OpenShift コマンドラインインターフェイス (CLI) がダウンロードおよびインストールされている。詳細は、OpenShift CLI のインストール を参照してください。
- OpenShift AI に既存の NIM デプロイメントがある。
手順
- ターミナルウィンドウで、クラスター管理者として OpenShift クラスターにまだログインしていない場合は、OpenShift CLI にログインします。
NIM デプロイメントに関連付けられている
InferenceService
の名前を確認します。oc get inferenceservice -n <namespace>
<namespace>
は、NIM モデルがデプロイされているプロジェクトの namespace に置き換えます。InferenceService
設定にspec.predictor.annotations
セクションが存在するかどうかを確認します。oc get inferenceservice -n <namespace> <inferenceservice-name> -o json | jq '.spec.predictor.annotations'
<inferenceservice-name> は、前の手順の
InferenceService
の名前に置き換えます。次のいずれかの操作を実行します。
設定に
spec.predictor.annotations
セクションが存在しない場合は、そのセクションと必要なアノテーションを追加します。oc patch inferenceservice -n <namespace> <inference-name> --type json --patch \ '[{"op": "add", "path": "/spec/predictor/annotations", "value": {"prometheus.io/path": "/metrics", "prometheus.io/port": "8000"}}]'
追加したアノテーションが出力に表示されます。
inferenceservice.serving.kserve.io/nim-serving-runtime patched
既存の
spec.predictor.annotations
セクションがある場合は、そのセクションに Prometheus アノテーションを追加します。oc patch inferenceservice -n <namespace> <inference-service-name> --type json --patch \ '[{"op": "add", "path": "/spec/predictor/annotations/prometheus.io~1path", "value": "/metrics"}, {"op": "add", "path": "/spec/predictor/annotations/prometheus.io~1port", "value": "8000"}]'
追加したアノテーションは出力に表示されます。
inferenceservice.serving.kserve.io/nim-serving-runtime patched
検証
アノテーションが
InferenceService
に追加されていることを確認します。oc get inferenceservice -n <namespace> <inferenceservice-name> -o json | jq '.spec.predictor.annotations'
出力に追加したアノテーションが表示されます。
{ "prometheus.io/path": "/metrics", "prometheus.io/port": "8000" }
2.20.4. NIM モデルの NVIDIA NIM メトリクスの表示
OpenShift AI では、NVIDIA NIM モデルサービスプラットフォームにデプロイされた NIM モデルの次の NVIDIA NIM メトリクスを確認できます。
- GPU キャッシュ使用量の推移 (ミリ秒)
- 現在実行中、待機中、および最大のリクエスト数
- トークンの数
- 最初のトークンまでの時間
- 出力トークンあたりの時間
- リクエスト結果
これらのメトリクスの時間範囲と更新間隔を指定すると、指定した時間におけるピーク使用時間やモデルのパフォーマンスなどを判断するのに役立ちます。
前提条件
- NVIDIA NIM モデルサービングプラットフォームを有効にした。
- NVIDIA NIM モデルサービスプラットフォームに NIM モデルがデプロイされている。
-
OpenShift AI グループを使用している場合は、OpenShift のユーザーグループまたは管理者グループ (
rhoai-users
やrhoai-admins
など) に属している。 disableKServeMetrics
OpenShift AI ダッシュボード設定オプションは、デフォルト値のfalse
に設定されている。disableKServeMetrics: false
詳細は、ダッシュボード設定オプション を参照してください。
手順
OpenShift AI ダッシュボードのナビゲーションメニューから、Data Science Projects をクリックします。
Data Science Projects ページが開きます。
- 監視する NIM モデルを含むプロジェクトの名前をクリックします。
- プロジェクトの詳細ページで、Models タブをクリックします。
- 確認する NIM モデルをクリックします。
NIM Metrics タブで、以下のオプションを設定します。
- 時間範囲 - メトリクスを追跡する期間を指定します。1 時間、24 時間、7 日、30 日のいずれかの値を選択できます。
- 更新間隔 - (最新のデータを表示するために) メトリクスページのグラフを更新する頻度を指定します。15 秒、30 秒、1 分、5 分、15 分、30 分、1 時間、2 時間、1 日の値のいずれかを選択できます。
- NIM メトリクスのデータグラフを表示するには、下にスクロールします。
検証
NIM メトリクス タブには、デプロイされた NIM モデルの NIM メトリクスのグラフが表示されます。
2.20.5. NIM モデルのパフォーマンスメトリクスの表示
NVIDIA NIM モデルサービスプラットフォームにデプロイされた NIM モデルでは、次のパフォーマンスメトリクスを確認できます。
- リクエスト数 - 特定のモデルに対して失敗または成功したリクエストの数。
- 平均応答時間 (ミリ秒) - 特定のモデルがリクエストに応答するまでにかかる平均時間。
- CPU 使用率 (%) - 特定のモデルによって現在使用されている、モデルレプリカごとの CPU 制限の割合。
- メモリー使用率 (%) - 特定のモデルによって使用されているモデルレプリカごとのメモリー制限の割合。
これらのメトリクスの時間範囲と更新間隔を指定すると、指定した時間におけるピーク使用時間やモデルのパフォーマンスなどを判断するのに役立ちます。
前提条件
- NVIDIA NIM モデルサービングプラットフォームを有効にした。
- NVIDIA NIM モデルサービスプラットフォームに NIM モデルがデプロイされている。
-
OpenShift AI グループを使用している場合は、OpenShift のユーザーグループまたは管理者グループ (
rhoai-users
やrhoai-admins
など) に属している。 disableKServeMetrics
OpenShift AI ダッシュボード設定オプションは、デフォルト値のfalse
に設定されている。disableKServeMetrics: false
詳細は、ダッシュボード設定オプション を参照してください。
手順
OpenShift AI ダッシュボードのナビゲーションメニューから、Data Science Projects をクリックします。
Data Science Projects ページが開きます。
- 監視する NIM モデルを含むプロジェクトの名前をクリックします。
- プロジェクトの詳細ページで、Models タブをクリックします。
- 確認する NIM モデルをクリックします。
Endpoint performance タブで、次のオプションを設定します。
- 時間範囲 - メトリクスを追跡する期間を指定します。1 時間、24 時間、7 日、30 日のいずれかの値を選択できます。
- Refresh interval - メトリクスページのグラフを更新して最新のデータを表示する頻度を指定します。15 秒、30 秒、1 分、5 分、15 分、30 分、1 時間、2 時間、1 日の値のいずれかを選択できます。
- 下にスクロールすると、パフォーマンスメトリクスのデータグラフが表示されます。
検証
Endpoint performance タブには、デプロイされた NIM モデルのパフォーマンスメトリクスのグラフが表示されます。