LLMを動かすのは、モデルをダウンロードするだけで済むのでしょうか。答えは「いいえ」です。GPUリソースの割り当て、推論エンジンの選定、モデルの保存方法、さらにはHugging Faceのモデルライセンスやトークンまで、デプロイ時の関門になり得ます。 

INFINITIXのAI-Stackプラットフォームは、企業のGPU計算リソースの一元的な割り当てとAIインフラ管理をサポートします。その中のラピッドコンテナサービス(RCS)機能を使えば、環境を作り直すことなく、モデルやアプリケーションサービスをすばやくデプロイできます。 

本記事では、AI-Stack上でRCS機能とvLLMを組み合わせて、google/gemma-3-1b-it 言語モデルをデプロイする手順を一つずつ実演します。あわせて、Hugging Faceのゲート付きモデル(Gated model)に遭遇したとき、ライセンス承認とトークン設定をどのように行うかも実際に説明します。

実践:RCSでvLLMをデプロイし、Gemma-3-1Bを動か

管理者ポータルでストレージクラスタを設定

まず、デプロイのたびにモデルを繰り返しダウンロードしないよう、モデルファイルを保存するストレージクラスタを作成します。AI-Stackの管理者ポータルにログインし、[設定]>[ストレージクラスター]>[ストレージクラスター管理]ページに進み、ストレージクラスターを新規作成します。

ストレージクラスターを作成したら、ステータスが「有効」と表示されていることを確認します。これで、このストレージクラスター上にストレージ領域を作成し、後のvLLMデプロイで使用できます。

続いて、AI-Stackのユーザーポータルにログインします。左側メニューの「機械学習プロジェクト」>「プロジェクト一覧」に進み、モデルをデプロイするプロジェクトを選択します。本例では Project 1 を選びます。

RCSコンテナの作成

次に、「RCS」>「アプリケーションのデプロイ」に進み、以下の内容を設定します。

  1. 名称」:任意です。本例では demo と入力します。
  2. バージョン履歴の上限数」:バージョンをいくつ残すかを決めます。必要なときに以前のバージョンに戻すことができます
  3. Pods」:同時にいくつのコンテナレプリカを起動してサービスを提供するかを設定します。数が多いほど、受けられる同時リクエストも増えます。今回は機能のデモなので、 1 で十分です。

設定が完了したら、「コンテナを追加」をクリックします。

これでコンテナを追加できます。[コンテナを追加]をクリックし、[名称]を任意に入力してから、[イメージを選択してください]をクリックします。 

イメージ選択ページでは「マニュアルダウンロード」を選び、「イメージパス」にvLLMの公式イメージを入力します。本例で使用するのは次のとおりです。 

vllm/vllm-openai:v0.26.0-cu129-ubuntu2404

続いて、コンテナのリソース仕様を設定します。

  1. 「仕様」:モデルのサイズに応じて適切なGPUリソースを選びます。まずモデル本体に必要なGPUメモリを推計し、vLLMの演算用にいくらか余裕を残すとよいでしょう。たとえばモデルが約6GBのGPUメモリを必要とする場合、8〜9GBのGPUスペックを選び、一定のバッファを確保することをおすすめします。
  2. 「ポート番号」:デフォルトのポート番号 8000 を入力します。vLLMはデフォルトでこのポートを通じてAPIサービスを提供します。

Hugging Faceモデルのアクセス権限を取得

次が、今回のデプロイで少し特別な部分です。gemma-3-1b-it はゲート付きモデルなので、先にモデルのアクセス権限を取得する必要があります。

まず、Hugging Faceのアカウントにログインし、新しいタブを開いて、デプロイしたいモデルのページにアクセスします。ここでは huggingface.co/google/gemma-3-1b-it を使い、「Acknowledge license」をクリックしてライセンスに同意します。

このステップは重要です。モデルのライセンスに同意して初めて、アカウントがそのモデルへのアクセス権限を得られるからです。

(図1:アドレスバーに目的のモデルのURLを入力します)

モデルのアクセス権限を取得したら、Hugging Faceトークンを1組作成し、この後作成するvLLMコンテナがそのトークンで本人確認を行い、モデルをダウンロードできるようにします。https://huggingface.co/settings/tokens のページに進み、「Create new token」をクリックします。

トークン作成時に主に設定するのは、次の2項目です。

  • Token name:任意です。本例では demo と入力します。
  • Token Type:vLLMにモデルをダウンロードさせるだけであれば、Read を選択します。

設定が完了したら「Create Token」をクリックします。システムが hf_ で始まるトークンを生成します。

ここで特に注意してください。トークンの完全な内容が表示されるのは、作成時のこの一度だけです。そのため、この段階で必ずすぐに横のコピーボタンを押してください。

トークンをコピーしたら、AI-Stackのコンテナ設定ページに戻り、「環境変数」を見つけて、環境変数を1組追加します。

  • Key:HF_TOKEN (Hugging Faceのライブラリがデフォルトで読み取る環境変数名です)
  • Value:先ほどコピーした hf_ で始まるトークンを貼り付けます 

モデル用ストレージのマウント

続いて「マウント」>「ボリュームをマウント」をクリックします。

先に作成しておいたストレージボリュームを選択します。「マウントパス」には次を入力します。

/root/.cache/huggingface

Hugging Faceのキャッシュディレクトリをストレージ領域にマウントしておけば、ダウンロードしたモデルを保存できます。以降、コンテナを作り直したり起動したりするたびに、モデルを再ダウンロードする必要がなくなります。

vLLM起動コマンドの設定

コンテナ追加ページに戻り、「コマンド」欄に、次を入力します。

vllm serve –model google/gemma-3-1b-it –served-model-name gemma3-1b –gpu-memory-utilization 0.7 –enforce-eager

このコマンドはvLLMを起動し、指定したモデルを読み込みます。内訳は次のとおりです。

  • –model google/gemma-3-1b-it:–model は読み込むモデルを指定するもので、後ろの google/gemma-3-1b-it はHugging Face上のモデル名です。
  • –served-model-name gemma3-1b:APIが外部に公開するモデル名を設定します。以降、APIを呼び出す際に gemma3-1b を使えます。 
  • –gpu-memory-utilization 0.7:vLLMが使用するGPUメモリの比率を設定します。本例では70% に設定しています。

共有メモリの設定

続いて[共有メモリ]欄で、モデルと推論の要件に応じて共有メモリを有効にするかどうかを決めます。本例で使用する google/gemma-3-1b-it はモデルが小さいため、特に設定する必要はありません。より大きなモデルを使う場合は、実際の要件に応じて増やしてください。

以上の設定が完了したら、右側の「デプロイする」ボタンをクリックし、vLLMコンテナを正式に起動します。

vLLMが正常に起動したかの確認

デプロイが完了したら、左側の「Pods」メニューをクリックし、ステータスが Running に変わるのを待ちます。Podが正常に動作したら、そのPodにチェックを入れて「コンテナ」を選び、対応するコンテナにチェックを入れて「ログ」をクリックします。

ログ画面では、vLLMコンテナの現在の起動状態を確認できます。ログの内容を更新し続け、「Application startup complete.」の表示が出れば、vLLMが正常に起動し、モデルの読み込みも完了したことを意味します。

サービスの設定

vLLM コンテナが正常に起動した後、他のアプリケーションからモデルを呼び出せるようにするには、外部接続用のサービスを公開する必要があります。

ここでは、「サービス」機能から外部向けのAPI Endpointを設定します。

「サービス」画面を開き、「サービス追加」をクリックして、以下の項目を順に設定します。

  1. 「名前」:任意の名前を設定します。管理しやすいよう、先ほどデプロイしたコンテナ名と同じ名前にすることを推奨します。
  2. 「水類」:NodePort を選択します。
  3. 「ポート」:8000 を入力します。これはvLLMがデフォルトでAPIを提供するPortです。
  4. 「プロトコル」: TCPを選択します。

設定が完了したら、「新規作成」をクリックすると、サービスの作成が完了します。

サービスの追加が完了したら、作成したサービスをクリックすると、対応する Endpoint の URL を確認できます。

この URL をコピーして Agent アプリケーションに設定することで、Gemma-3-1B モデルを外部から呼び出し、推論サービスとして利用できるようになります。

以上が、AI-StackのRCSを使ってモデルをデプロイする流れです。今回はvLLMコンテナの作成方法、GPUとストレージの構成を学んだだけでなく、ゲート付きモデルのライセンス承認とトークン設定も実際に確認しました。AI-StackのRCSを使えば、開発者は必要なLLMモデルをより柔軟にデプロイし、専用のAI推論サービスをすばやく構築できます!