NKP の Kubernetes クラスタに、Nutanix Enterprise AI(NAI)2.6 を展開してみます。今回は、GPU ノードの動作確認として、GPU を使用するエンドポイントを作成してみます。今回も、Hugging Face Hub からトークンなしでダウンロードできるモデルを利用します。
前回はこちら。
今回の内容です。
- 1. モデルのアクセス許可(すべての Hugging Face モデル)
- 2. LLM のよる推論サービスの作成(Mistral)
- 3. Hugging Face アクセス トークンの登録
- 4. LLM のよる推論サービスの作成(Llama 3.2)

1. モデルのアクセス許可(すべての Hugging Face モデル)
NAI でインポートしたモデルは、デフォルトでは下記のようにアクセス許可されていません。ここからは、検証しやすいように Hugging Face Hub からインポートするモデルを、すべて許可してしまいます。

「モデル」→「モデル アクセス制御」タブを開き、「Hugging Face モデル ハブ」の行にある「許可リストを変更」をクリックします。

「すべての検証済みモデルを許可」を選択して、「保存」をクリックします。

これで、Hugging Face Hub の「許可されたモデル」の表示が、「すべてのモデル」になりました。

2. LLM のよる推論サービスの作成(Mistral)
まず、Hugging Face Hub のトークン(アカウント)登録なしでダウンロードできるモデルを利用します。
2-1. モデルのインポート
「モデル」→「リスト」タブを開き、「モデルをインポートする」→「Hugging Face モデル ハブから」をクリックします。

「機能でフィルタリング」→「Text To Text」を選択して、「フィルターを適用」をクリックします。

今回は、Hugging Face Hub 側での申請や、トークン登録なしでダウンロードでき、かつ容量が小さいモデルを利用します。ちなみに、モデル機能には「Image to Text」と表示されていますが、「+2」のところに「Text to Text」も含まれています。

モデル インスタンス名を入力して、「インポート」をクリックします。
- モデル インスタンス名:mistral

少し待つと、モデルのダウンロードとインポートが完了して、ステータスが「準備完了」になります。

2-2. エンドポイントの作成
「モデル」画面の「リスト」タブで、インポートしたモデルを選択して、「アクション」→「エンドポイントの作成」をクリックします。
- モデル インスタンス名:mistral

エンドポイントの基本パラメータを入力て「次へ」をクリックします。NAI のカタログにあるこのモデルからエンドポイントを作成する場合は、GPU が必要です。
- エンドポイント名:mistral-ep
- モデル機能:Text To Text(オプションなので、これは指定しなくてもよい)
- モデル インスタンス名:mistral
- アクセラレーション タイプ:GPU Passthrough
- アクセラレーターの詳細:NVIDIA-A16(NAI ではサポート外だが利用可能)
- アクセラレーター(GPU)のモデルは、NKP の GPU ノードに接続されているものが自動選択肢に表示されます。
- API キー:demo-key-01

推論エンジンなどのパラメータは、デフォルトのまま「次へ」をクリックします。
- 推論エンジン:vLLM
- アクセラレーター数:1(これは GPU 数)
- インスタンス数:1
- vCPUs:8
- メモリー:16

確認画面が表示されるので、「作成」をクリックします。

しばらく待つと、作成したエンドポイントのステータスが「アクティブ」になります。アクセラレーターには、エンドポイント作成時に指定した GPU が表示されています。

2-3. エンドポイントのテスト
エンドポイントをテストします。アクティブになったエンドポイントの名前をクリックします。
- エンドポイント名:mistral-ep

エンドポイントの「概要」タブが表示されるので、「テスト」をクリックします。

このエンドポイントのモデルは「Text To Text」だけでなく「Image To Text」能力(機能)も持っているので、画像を含めたサンプル リクエストが、2件用意されています。サンプル リクエストの画像とクエリは、固定値になっています。

「Sample Request 1」を選択して、「テスト」をクリックしてみます。

画像の説明文が生成されました。

「Sample Request 2」を選択して「テスト」をクリックすると、同様に説明文が生成されます。

3. Hugging Face アクセス トークンの登録
Hugging Face から認証が必要なモデルをダウロードするため、NAI に Hugging Face トークンを登録します。
3-1. Hugging Face アクセス トークンの生成
事前に、Hugging Face のサイトでトークンを生成しておきます。
アクセス トークンは、下記のページで作成できます。
3-2. NAI での Hugging Face アクセス トークン登録
NAI で、「設定」→「サードパーティーの認証情報」を開き、「認証情報を追加」をクリックします。

認証情報を入力して、「認証情報を追加」をクリックします。
- 認証情報名:hf-token-01
- Platform:Hugging Face
- トークン:アクセス トークンを入力(hf_XXXXXXX といった文字列)
ちなみに、Platform では下記を選択できます。
- Amazon Web Services (AWS)
- Anthropic
- Google Cloud Platform (GCP)
- Hugging Face
- Microsoft Azure
- NVIDIA NGC
- OpenAI
- Remote MCP Server
- Remote NAI

これで、Hugging Face の認証情報が追加されました。

4. LLM のよる推論サービスの作成(Llama 3.2)
Hugging Face から、認証が必要なモデルをダウンロードして、推論サービスのエンドポイントを作成してみます。
4-1. モデルのインポート
NAI UI で、「モデル」を開き、「Hugging Face モデル ハブからインポートする」をクリックします。

「llama」などの文字列で検索して、下記のモデルを選択して「インポート」をクリックします。

モデル インスタンスの名前を入力して、「インポート」をクリックします。
- モデル インスタンス名:llama32

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

4-2. エンドポイントの作成
「モデル」画面の「リスト」タブで、インポートしたモデルを選択して、「アクション」→「エンドポイントの作成」をクリックします。
- モデル インスタンス名:llama32-ep

エンドポイントの基本パラメータを入力て「次へ」をクリックします。NAI のカタログにあるこのモデルからエンドポイントを作成する場合は、GPU が必要です。
- エンドポイント名:llama32-ep
- モデル機能:Text To Text(オプションなので、これは指定しなくてもよい)
- モデル インスタンス名:llama32
- アクセラレーション タイプ:GPU Passthrough
- アクセラレーターの詳細:NVIDIA-A16(NAI ではサポート外だが利用可能)
- API キー:demo-key-01

推論エンジンなどのパラメータは、デフォルトのまま「次へ」をクリックします。
- 推論エンジン:vLLM
- アクセラレーター数:1(これは GPU 数)
- インスタンス数:1
- vCPUs:8
- メモリー:16

確認画面が表示されるので、「作成」をクリックします。

しばらく待つと、作成したエンドポイントのステータスが「アクティブ」になります。
GPU / CPU / メモリといったリソースが不足するとエンドポイントが起動できないので、必要に応じてほかのエンドポイント(さきほど作成した mistral-ep など)をハイバネートで休止状態にしておきます。

4-3. エンドポイントのテスト
起動されたエンドポイントをテストするため、エンドポイントの名前をクリックします。
- エンドポイント名:llama32-ep

エンドポイントの「概要」タブが表示されるので、「テスト」をクリックします。

「Text To Text」機能をもつエンドポイントなので、下記のようなテスト画面が表示されます。

「カスタム リクエスト」を選択すると自由にプロンプトを入力できるようになるので、リクエスト欄なにか文字列を入力して、「テスト」をクリックします。

テキストが生成され、エンドポイントが動作していることを確認できました。

「エンドポイント アクセス」をクリックして、サンプル コードを確認してみます。

下記のように、curl で実行できるサンプル コードが表示されます。

つづく。
