Nutanix Enterprise AI(NAI)2.4 の動作確認として、NVIDIA NGC からモデルをダウンロードして、NVIDIA NIM のエンドポイントを作成してみます。
前回はこちら。
今回の内容です。
1. NGC API キーの登録
NGC からモデルをダウンロードするため、NCG の API キーを NAI に登録します。
1-1. NGC API キーの生成
事前に、下記のサイトで NGC の API キーを生成しておきます。検証用途であれば、NVIDIA Developer Program のアカウントで発行する API Key でも NGC からモデルをダウンロードできます。NGC の API キーは、「nvapi-~」といった形式の文字列です。
1-2. NAI での API キー登録
NAI UI にログインして、「設定」→「サード パーティの認証情報」タブで、「NVIDIA NGC パーソナル キー」の「追加」をクリックします。

NGC の API キーを入力して、「追加」をクリックします。
- キーの名前:ngc-token-01(これは任意の文字列)
- キーの値:NGC の API キー(nvapi-~)を入力

これで、NGC のキーが登録されました。

2. モデルのダウンロード(NVIDIA NGC カタログから)
NGC からモデルをダウンロードして、アクセスを許可します。
2-1. モデルのダウンロード
「モデル」→「List」タブで、「モデルをインポートする」→「NVIDIA NGCカタログから」を開きます。

モデルの一覧が表示されます。NAI 2.4 では、25個のモデルが表示されます。

この環境では NAI でサポートされない GPU を搭載してるため、コンピュート リソースの消費か少ないモデルを使用します。
「埋め込みモデル」でフィルタリングし、「Nv-embedga-e5-v5」を選択して「インポート」をクリックします。

NAI で管理するためのモデルの名前を入力して、「インポート」をクリックします。
- モデル インスタンス名:nv-embedga-e5v5

モデルのダウンロードが開始されます。

モデルのダウンロードが完了すると、ステータスが「準備完了」になります。

モデル インスタンス名をクリックすると、「モデルの詳細」画面が表示されます。NIM のモデルが、NVIDIA のコンテナ レジストリ(nvcr.io)からダウンロードされたことがわかります。

2-2. モデル アクセス制御の許可
モデル インスタンス名のとなりに「!」マークが表示されていますが、これはまだ NAI でモデル アクセスを許可していないためです。

「モデルアクセス制御」タブを開き、NVIDIA NGC Catalog の「許可リストを変更」をクリックします。

デフォルトでは、「特定のモデルを許可」が選択されています。

「nv-embedqa」とモデル名の一部を入力して検索し、下記のモデルのチェックボックスを ON にして「保存」をクリックします。
- モデル名:Nv-embedqa-e5-v5

NVIDIA NGC Catalog の許可されたモデルが、「1/25」となったことを確認します。

これで、モデル インスタンス名のとなりの「!」マークが表示されなくなりました。

3. エンドポイントの作成
NIM によるエンドポイントを作成します。ちなみに、この環境は CPU/メモリ/GPU リソースが多くないので、既存のエンドポイントはハイバネートで「休止状態」にしてあります。
「エンドポイント」→「リスト」タブで、「エンドポイントを作成」をクリックします。

エンドポイントのパラメータを入力して、「次へ」をクリックします。
- エンドポイント名:nv-embedqa-ep-01
- モデル タイプ:埋め込み モデル
- モデル インスタンス名:nv-embedqa-e5v5
- アクセラレーション タイプ:GPU Passthrough
- GPU カード:NVIDIA-A16(NAI ではサポートされていない GPU)
- API Key:demo-key-01(これは 以前の投稿 で作成したもの)

コンピュート構成のパラメータを入力して、「次へ」をクリックします。
- 推論エンジン:NVIDIA NIM(選択可能なのはこれだけ)
- GPU の数(インスタンスあたり):1
- インスタンス数:1
- vCPUs(インスタンスあたり):4
- メモリー(インスタンスあたり):8

「作成」をクリックします。

エンドポイントの作成が開始されます。

エンドポイントの起動が完了すると、ステータスが「アクティブ」になります。

推論エンジンとして NIM を選択した場合も、エンドポイントは KServe の InferenceService として作成されます。

4. エンドポイントの確認
「エンドポイント」→「リスト」タブを開いて、エンドポイントの名前(nv-embedqa-ep-01)をクリックします。

エンドポイントの画面が開くので、「テスト」をクリックします。

リクエストを選択(テキスト生成モデルとは異なり、自由入力は不可)して、「テスト」をクリックします。

埋め込み モデルにより、リクエストのテキストからベクトル データが生成されたことが確認できます。

個のエンドポイントの利用例を確認するため、エンドポイント画面の下方にある「サンプル リクエストを見る」をクリックします。

curl によるサンプル リクエストが表示されます。

つづく。(かもしれない)
