2.19. NVIDIA NIM モデルサービングプラットフォームについて
NVIDIA NIM モデルサービングプラットフォーム で NVIDIA NIM 推論サービスを使用してモデルを展開できます。
NVIDIA AI Enterprise の一部である NVIDIA NIM は、クラウド、データセンター、ワークステーションをまたいで推論を実行する高性能 AI モデルの、セキュアで信頼性の高いデプロイメントのために設計されたマイクロサービスのセットです。
2.19.1. NVIDIA NIM モデルサービングプラットフォームの有効化 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift AI 管理者は、Red Hat OpenShift AI ダッシュボードを使用して、NVIDIA NIM モデルサービスプラットフォームを有効にできます。
以前に OpenShift AI で NVIDIA NIM モデルサービングプラットフォーム を有効にし、その後新しいバージョンにアップグレードした場合は、NVIDIA NGC API キーを再入力して、NVIDIA NIM モデルサービングプラットフォームを再度有効にしてください。
前提条件
- OpenShift AI 管理者権限を持つユーザーとして OpenShift AI にログインしている。
- シングルモデルサービングプラットフォームを有効にした。プリインストールされているランタイムを有効にする必要はありません。シングルモデルサービングプラットフォームを有効にする方法の詳細は、シングルモデルサービングプラットフォームの有効化 を参照してください。
ダッシュボード設定オプションの
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 ダッシュボードの左側のメニューで、Applications
Explore をクリックします。 - Explore ページで、NVIDIA NIM タイルを見つけます。
- アプリケーションタイルで Enable をクリックします。
- NGC API キーを入力し、Submit をクリックします。
検証
- 有効にした NVIDIA NIM アプリケーションが Enabled ページに表示されます。
2.19.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 リストから値を選択します。
Hardware profile リストから、ハードウェアプロファイルを選択します。
重要デフォルトでは、ハードウェアプロファイルはダッシュボードのナビゲーションメニューとユーザーインターフェイスに表示されませんが、アクセラレータープロファイルは表示されます。非推奨となったアクセラレータープロファイル機能に関連付けられたユーザーインターフェイスコンポーネントは、引き続き表示されます。ハードウェアプロファイルを有効にすると、Accelerator profiles リストの代わりに Hardware profiles リストが表示されます。ダッシュボードのナビゲーションメニューの Settings
Hardware profiles オプションと、ハードウェアプロファイルに関連付けられたユーザーインターフェイスコンポーネントを表示するには、OpenShift の OdhDashboardConfig
カスタムリソース (CR) で、disableHardwareProfiles
値をfalse
に設定します。ダッシュボード設定オプションの設定に関する詳細は、ダッシュボードのカスタマイズ を参照してください。オプション: Customize resource requests and limit をクリックし、次の値を更新します。
- CPUs requests フィールドで、モデルサーバーで使用する CPU の数を指定します。このフィールドの横にあるリストを使用して、値をコアまたはミリコアで指定します。
- CPU limits フィールドで、モデルサーバーで使用する CPU の最大数を指定します。このフィールドの横にあるリストを使用して、値をコアまたはミリコアで指定します。
- Memory requests フィールドで、モデルサーバーに要求されたメモリーをギビバイト (Gi) 単位で指定します。
- Memory limits フィールドに、モデルサーバーの最大メモリー制限をギビバイト (Gi) 単位で指定します。
- オプション: Model route セクションで、Make deployed models available through an external route チェックボックスをオンにして、デプロイされたモデルを外部クライアントが利用できるようにします。
デプロイされたモデルに対する推論リクエストにトークン認証を要求するには、次のアクションを実行します。
- Require token authentication を選択します。
- Service account name フィールドに、トークンが生成されるサービスアカウント名を入力します。
- 追加のサービスアカウントを追加するには、Add a service account をクリックし、別のサービスアカウント名を入力します。
- Deploy をクリックします。
検証
- デプロイされたモデルがプロジェクトの Models タブに表示され、ダッシュボードの Model deployments ページで Status 列にチェックマークが付いて表示されていることを確認します。
2.19.3. NVIDIA NIM モデルサービングプラットフォームのモデル選択オプションのカスタマイズ リンクのコピーリンクがクリップボードにコピーされました!
NVIDIA NIM モデルサービスプラットフォームでは、NVIDIA GPU Cloud (NGC) から利用可能なすべての NVIDIA NIM モデルを利用できます。NIM モデルは Deploy model ダイアログの NVIDIA NIM リストから選択してデプロイできます。リストに表示されるモデルをカスタマイズするには、希望するモデルを指定して ConfigMap
オブジェクトを作成します。
前提条件
- OpenShift クラスターのクラスター管理者権限を持っている。
- NVIDIA Cloud Account (NCA) をお持ちで、NVIDIA GPU Cloud (NGC) ポータルにアクセスできる。
NVIDIA NIM モデルサービスプラットフォームで選択できる NVIDIA NIM モデルの ID を知っている。
注記- モデル ID は NGC Catalog で確認できます。ID は通常 URL パスの一部です。
- モデル ID は、NGC CLI を使用して検索することもできます。詳細は、NGC CLI リファレンス を参照してください。
-
アカウント
のカスタムリソース (CR) の名前と namespace を知っている。
手順
ターミナルウィンドウで、以下の例のように、クラスター管理者として OpenShift CLI にログインします。
oc login <openshift_cluster_url> -u <admin_username> -p <password>
oc login <openshift_cluster_url> -u <admin_username> -p <password>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次の例のような、NVIDIA NIM モデルサービスプラットフォームで選択できるようにするモデル ID を含む
ConfigMap
オブジェクトを YAML ファイルで定義します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow Account
CR の名前および namespace を確認します。oc get account -A
oc get account -A
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次の例のような出力が表示されます。
NAMESPACE NAME TEMPLATE CONFIGMAP SECRET redhat-ods-applications odh-nim-account
NAMESPACE NAME TEMPLATE CONFIGMAP SECRET redhat-ods-applications odh-nim-account
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ConfigMap
オブジェクトをAccount
CR と同じ namespace にデプロイします。oc apply -f <configmap-name> -n <namespace>
oc apply -f <configmap-name> -n <namespace>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow <configmap-name> は YAML ファイルの名前に、<namespace> は
Account
CR の namespace に置き換えます。以前に作成した
ConfigMap
オブジェクトを、Account
CR のspec.modelListConfig
セクションに追加します。oc patch account <account-name> \ --type='merge' \ -p '{"spec": {"modelListConfig": {"name": "<configmap-name>"}}}'
oc patch account <account-name> \ --type='merge' \ -p '{"spec": {"modelListConfig": {"name": "<configmap-name>"}}}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow <account-name> は
Account
CR の名前に、<configmap-name> はConfigMap
オブジェクトに置き換えます。ConfigMap
オブジェクトがAccount
CR に追加されたことを確認します。oc get account <account-name> -o yaml
oc get account <account-name> -o yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の出力のように、
Account
CR のspec.modelListConfig
セクションにConfigMap
オブジェクトが表示されます。spec: enabledModelsConfig: modelListConfig: name: <configmap-name>
spec: enabledModelsConfig: modelListConfig: name: <configmap-name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
- NIM モデルをデプロイするための NVIDIA NIM モデルサービスプラットフォームへのモデルのデプロイ で説明されているモデルのデプロイ手順に従います。Deploy model ダイアログの NVIDIA NIM リストには、NGC カタログで使用可能なすべてのモデルではなく、優先するモデルのリストが表示されます。
2.19.4. 既存の NIM デプロイメントの NVIDIA NIM メトリクスの有効化 リンクのコピーリンクがクリップボードにコピーされました!
以前に OpenShift AI に NIM モデルをデプロイし、その後 2.22 にアップグレードした場合は、メトリクスの収集とグラフの生成を有効にするアノテーションを追加して、既存のデプロイメントに対して NIM メトリクスを手動で有効にする必要があります。
2.17 では、NIM メトリクスとグラフが新しいデプロイメントに対して自動的に有効になります。
2.19.4.1. 既存の既存の NIM デプロイメントのグラフ生成の有効化 リンクのコピーリンクがクリップボードにコピーされました!
次の手順では、既存の NIM デプロイメントでグラフ生成を有効にする方法を説明します。
前提条件
- OpenShift クラスターのクラスター管理者権限を持っている。
- OpenShift コマンドラインインターフェイス (CLI) がダウンロードおよびインストールされている。詳細は、OpenShift CLI のインストール を参照してください。
- OpenShift AI に既存の NIM デプロイメントがある。
手順
- ターミナルウィンドウで、クラスター管理者として OpenShift クラスターにまだログインしていない場合は、OpenShift CLI にログインします。
NIM デプロイメントに関連付けられている
ServingRuntime
の名前を確認します。oc get servingruntime -n <namespace>
oc get servingruntime -n <namespace>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow <namespace>
は、NIM モデルがデプロイされているプロジェクトの namespace に置き換えます。ServingRuntime
設定に既存のmetadata.annotations
セクションがあるかどうかを確認します。oc get servingruntime -n <namespace> <servingruntime-name> -o json | jq '.metadata.annotations'
oc get servingruntime -n <namespace> <servingruntime-name> -o json | jq '.metadata.annotations'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow <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"}}]'
oc patch servingruntime -n <namespace> <servingruntime-name> --type json --patch \ '[{"op": "add", "path": "/metadata/annotations", "value": {"runtimes.opendatahub.io/nvidia-nim": "true"}}]'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のような出力が表示されます。
servingruntime.serving.kserve.io/nim-serving-runtime patched
servingruntime.serving.kserve.io/nim-serving-runtime patched
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 既存の
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"}]'
oc patch servingruntime -n <project-namespace> <runtime-name> --type json --patch \ '[{"op": "add", "path": "/metadata/annotations/runtimes.opendatahub.io~1nvidia-nim", "value": "true"}]'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のような出力が表示されます。
servingruntime.serving.kserve.io/nim-serving-runtime patched
servingruntime.serving.kserve.io/nim-serving-runtime patched
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
アノテーションが既存の NIM デプロイメントの
ServingRuntime
に追加されていることを確認します。oc get servingruntime -n <namespace> <servingruntime-name> -o json | jq '.metadata.annotations'
oc get servingruntime -n <namespace> <servingruntime-name> -o json | jq '.metadata.annotations'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 追加したアノテーションが出力に表示されます。
... "runtimes.opendatahub.io/nvidia-nim": "true"
... "runtimes.opendatahub.io/nvidia-nim": "true"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記メトリクスをグラフ生成に使用できるようにするには、デプロイメントでメトリクスの収集も有効にする必要があります。既存の NIM デプロイメントのメトリクス収集を有効にする を参照してください。
2.19.4.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>
oc get inferenceservice -n <namespace>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow <namespace>
は、NIM モデルがデプロイされているプロジェクトの namespace に置き換えます。InferenceService
設定にspec.predictor.annotations
セクションが存在するかどうかを確認します。oc get inferenceservice -n <namespace> <inferenceservice-name> -o json | jq '.spec.predictor.annotations'
oc get inferenceservice -n <namespace> <inferenceservice-name> -o json | jq '.spec.predictor.annotations'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow <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"}}]'
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"}}]'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 追加したアノテーションが出力に表示されます。
inferenceservice.serving.kserve.io/nim-serving-runtime patched
inferenceservice.serving.kserve.io/nim-serving-runtime patched
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 既存の
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"}]'
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"}]'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 追加したアノテーションは出力に表示されます。
inferenceservice.serving.kserve.io/nim-serving-runtime patched
inferenceservice.serving.kserve.io/nim-serving-runtime patched
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
アノテーションが
InferenceService
に追加されていることを確認します。oc get inferenceservice -n <namespace> <inferenceservice-name> -o json | jq '.spec.predictor.annotations'
oc get inferenceservice -n <namespace> <inferenceservice-name> -o json | jq '.spec.predictor.annotations'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力に追加したアノテーションが表示されます。
{ "prometheus.io/path": "/metrics", "prometheus.io/port": "8000" }
{ "prometheus.io/path": "/metrics", "prometheus.io/port": "8000" }
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.19.5. 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
disableKServeMetrics: false
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ダッシュボード設定オプションの設定に関する詳細は、ダッシュボードのカスタマイズ を参照してください。
手順
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.19.6. NIM モデルのパフォーマンスメトリクスの表示 リンクのコピーリンクがクリップボードにコピーされました!
NVIDIA NIM モデルサービスプラットフォームにデプロイされた NIM モデルでは、次のパフォーマンスメトリクスを確認できます。
- リクエスト数 - 特定のモデルに対して失敗または成功したリクエストの数。
- 平均応答時間 (ミリ秒) - 特定のモデルがリクエストに応答するまでにかかる平均時間。
- CPU 使用率 (%) - 特定のモデルによって現在使用されている、モデルレプリカごとの CPU 制限の割合。
- メモリー使用率 (%) - 特定のモデルによって使用されているモデルレプリカごとのメモリー制限の割合。
これらのメトリクスの時間範囲と更新間隔を指定すると、指定した時間におけるピーク使用時間やモデルのパフォーマンスなどを判断するのに役立ちます。
前提条件
- NVIDIA NIM モデルサービングプラットフォームを有効にした。
- NVIDIA NIM モデルサービスプラットフォームに NIM モデルがデプロイされている。
-
OpenShift AI グループを使用している場合は、OpenShift のユーザーグループまたは管理者グループ (
rhoai-users
やrhoai-admins
など) に属している。 disableKServeMetrics
OpenShift AI ダッシュボード設定オプションは、デフォルト値のfalse
に設定されている。disableKServeMetrics: false
disableKServeMetrics: false
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ダッシュボード設定オプションの設定に関する詳細は、ダッシュボードのカスタマイズ を参照してください。
手順
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 モデルのパフォーマンスメトリクスのグラフが表示されます。