Nutanix Enterprise AI(NAI)2.4 の動作確認として、NAI-UI で推論サーバーのエンドポイントを作成してみます。
前回はこちら。
今回の内容です。
1. エンドポイントの作成
前回の投稿でダウンロードしたモデル(gemma-2)で、推論サーバーのエンドポイントを作成します。
NAI-UI の「エンドポイント」画面で、「新規のエンドポイントを作成」をクリックします。

基本情報のパラメータを入力して、「新規のAPIキーを作成」をクリックします。
- エンドポイント名:gemma-ep-01
- モデル タイプ:テキスト生成モデル
- モデル インスタンス名:gemma2
- アクセラレーション タイプ:GPU Passthrough
- GPU カード:NVIDIA-A16(ただし、これは NAI ではサポート対象外の GPU)

起動後のエンドポイントにアクセスするための API キーを生成しておきます。
生成するキーの名前を入力して、「作成」をクリックします。
- キーの名前:demo-key-01

API キーが生成され、下記のように画面に表示されます。この仮面を閉じると再表示できないので、あとで使用できるように記録しておきます。
ここで「キーをコピー」をクリックすると、OS のクリップボードにコピーできます。

クリップボードには、下記の形式でテキストがコピーされます。
Key Name: demo-key-01 API Key: d8cb366b-d68d-4f9e-8a65-7075e137977e
API キーを記録したら、「閉じる」をクリックします。

エンドポイント作成の画面に戻るので、作成した API キーを選択して、「次へ」をクリックします。

コンピュート構成のパラメータを入力して、「次へ」をクリックします。
- 推論エンジン:TGI (Tect Generation Inference)
- GPU の数(インスタンスあたり):1
- インスタンス数:1
- コンテキスト長:1024(デフォルトは 8192)
今回は NAI でサポートされない GPU を使用するので、コンテキスト長をデフォルト値よりも下げておきます。

設定を確認して、「作成」をクリックします。

エンドポイントの作成が開始されるので、しばらく待ちます。ちなみに、推論サーバーのコンテナ イメージが大容量なこともあり、1時間程度かかることがあります。

推論サーバーの起動が完了すると、ステータスが「アクティブ」になります。

NAI のエンドポイントは、KServe の InferenceService リソースとして実装されています。NAI の admin ユーザーの Kubernetes リソースは、「nai-admin」Namespace に作成されます。
※この環境には、kubectl-tree プラグインを追加インストールしてあります。

エンドポイントの起動に時間がかかる(もしくは失敗した)場合は、InferenceService にひもづく Pod の状態を確認します。下記のように「<エンドポイント名>-predictor-<文字列>」という名前の Pod が「STATUS: Running になれば起動に成功しています。
まだローカルにイメージがない場合は、「STATUS: ContainerCreating」のあたりで長く待つことになるはずです。
$ kubectl get pods -n nai-admin NAME READY STATUS RESTARTS AGE gemma-ep-01-predictor-9955c97fb-hl48l 1/1 Running 0 105m
InferenceService は、「READY: True」になるまで待ちます。
$ kubectl get inferenceservices.serving.kserve.io -n nai-admin NAME URL READY PREV LATEST PREVROLLEDOUTREVISION LATESTREADYREVISION AGE gemma-ep-01 http://gemma-ep-01-nai-admin.example.com True 105m
2. エンドポイントのテスト
作成されたエンドポイントの名前(例では gemma-ep-01)を開きます。

「テスト」をクリックします。

「エンドポイントのテスト」画面が開くので、サンプル リクエスト(2つ表示されているうちのいずれか)を選択して、「テスト」をクリックすると・・・

推論サーバーによって、回答文のテキストが生成されます。

自由にプロンプトを入力したい場合は、「カスタム リクエスト」を選択します。

3. サンプル リクエストの確認
エンドポイントの画面の下部にある「サンプル リクエストを見る」をクリックすると、curl でエンドポイントにアクセスしてテキスト生成するコマンド例が表示されます。

サンプル リクエストは、下記のように表示されます。

NAI のAPI リファレンスにあるとおり、OpenAI API と同仕様で利用できるはずです。
参考:エンドポイントのハイバネート / 削除
エンドポイントのハイバネート(一時的な停止)や削除については、エンドポイントの画面の「アクション」から実行できます。

つづく。
