このチュートリアルでは、 vLLM サービング フレームワークを使用して Gemma 3 27B 大規模言語モデル(LLM)をデプロイしてサービングする方法について説明します。Google Kubernetes Engine(GKE)上の単一の A4 仮想マシン(VM)インスタンスに Gemma 3 をデプロイします。
このチュートリアルは、Kubernetes コンテナ オーケストレーション機能を使用して推論ワークロードを処理することに関心のある ML エンジニア、プラットフォーム管理者、オペレーター、データおよび AI のスペシャリストを対象としています。
目標
Hugging Face を使用して Gemma 3 にアクセスする。
環境を準備する。
Autopilot モードで GKE クラスタを作成する。
Hugging Face の認証情報用の Kubernetes Secret を作成する。
vLLM コンテナを GKE クラスタにデプロイする。
curl を使用して Gemma 3 を操作する。
クリーンアップする。
費用
このチュートリアルでは、Google Cloud の課金対象となる以下のコンポーネントを使用します。
始める前に
- アカウントにログインします Google Cloud を初めて使用する場合は、 Google Cloud、 アカウントを作成して、 実際のシナリオで Google プロダクトのパフォーマンスを評価してください。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。
-
Google Cloud CLI をインストールします。
-
外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。
-
gcloud CLI を初期化するには、次のコマンドを実行します:
gcloud init -
プロジェクトを Google Cloud 作成または選択します。
プロジェクトを選択または作成するために必要なロール
- プロジェクトを選択する: プロジェクトの選択に特定の IAM ロールは必要ありません。ロールが付与されているプロジェクトを選択できます。
-
プロジェクトを作成する: プロジェクトを作成するには、プロジェクト作成者ロール
(
roles/resourcemanager.projectCreator)が必要です。これにはresourcemanager.projects.create権限が含まれています。詳しくは、ロールを付与する方法をご覧ください。
-
プロジェクトを作成する Google Cloud :
gcloud projects create PROJECT_ID
PROJECT_IDは、作成する Google Cloud プロジェクトの名前に置き換えます。 -
作成した Google Cloud プロジェクトを選択します。
gcloud config set project PROJECT_ID
PROJECT_IDは、 Google Cloud プロジェクト名に置き換えます。
必要な API を有効にします。
API を有効にするために必要なロール
API を有効にするには、 権限を含む Service Usage 管理者 IAM ロール(
roles/serviceusage.serviceUsageAdmin)が必要です。serviceusage.services.enable詳しくは、ロールを付与する方法をご覧ください。gcloud services enable container.googleapis.com
-
Google Cloud CLI をインストールします。
-
外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。
-
gcloud CLI を初期化するには、次のコマンドを実行します:
gcloud init -
プロジェクトを Google Cloud 作成または選択します。
プロジェクトを選択または作成するために必要なロール
- プロジェクトを選択する: プロジェクトの選択に特定の IAM ロールは必要ありません。ロールが付与されているプロジェクトを選択できます。
-
プロジェクトを作成する: プロジェクトを作成するには、プロジェクト作成者ロール
(
roles/resourcemanager.projectCreator)が必要です。これにはresourcemanager.projects.create権限が含まれています。詳しくは、ロールを付与する方法をご覧ください。
-
プロジェクトを作成する Google Cloud :
gcloud projects create PROJECT_ID
PROJECT_IDは、作成する Google Cloud プロジェクトの名前に置き換えます。 -
作成した Google Cloud プロジェクトを選択します。
gcloud config set project PROJECT_ID
PROJECT_IDは、 Google Cloud プロジェクト名に置き換えます。
必要な API を有効にします。
API を有効にするために必要なロール
API を有効にするには、 権限を含む Service Usage 管理者 IAM ロール(
roles/serviceusage.serviceUsageAdmin)が必要です。serviceusage.services.enable詳しくは、ロールを付与する方法をご覧ください。gcloud services enable container.googleapis.com
-
ユーザー アカウントにロールを付与します。次の IAM ロールごとに次のコマンドを 1 回実行します。
roles/container.admingcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE
次のように置き換えます。
PROJECT_ID: プロジェクト ID。USER_IDENTIFIER: ユーザー アカウントの識別子。 例:myemail@example.com。ROLE: ユーザー アカウントに付与する IAM ロール。
- Hugging Face アカウントにログインするか、Hugging Face アカウントを作成します 。
Hugging Face を使用して Gemma 3 にアクセスする
Hugging Face を使用して Gemma 3 にアクセスする手順は次のとおりです。
- Hugging Face にログインします。
- Hugging Face の
readアクセス トークンを作成します。 Your Profile > Settings > Access tokens > +Create new token をクリックします。 read accessトークン値をコピーして保存します。この値は、このチュートリアルの後半で使用します。
環境を準備する
環境を準備するには、デフォルトの環境変数を設定します。
次のように置き換えます。
PROJECT_ID: GKE クラスタを作成する Google Cloud プロジェクト の ID。RESERVATION_URL: GKE クラスタの作成に使用する予約の URL。予約が存在するプロジェクトに基づいて、次のいずれかの値を指定します。予約がプロジェクトに存在する場合:
RESERVATION_NAME予約が別のプロジェクトに存在し、プロジェクトで予約を使用できる場合: 予約を使用できます:
projects/RESERVATION_PROJECT_ID/reservations/RESERVATION_NAME
REGION: GKE クラスタを作成するリージョン。クラスタを作成できるのは、予約が存在するリージョンのみです。CLUSTER_NAME: 作成する GKE クラスタの名前。HUGGING_FACE_TOKEN: 前のセクションで作成した Hugging Face アクセス トークン。NETWORK: GKE クラスタが使用するネットワーク。次のいずれかの値を指定します。カスタム ネットワークを作成した場合は、ネットワークの名前を指定します。
それ以外の場合は、
defaultを指定します。
SUBNETWORK: GKE クラスタが使用するサブネットワーク。次のいずれかの値を指定します。カスタム サブネットワークを作成した場合は、サブネットワークの名前を指定します。指定できるサブネットワークは、予約と同じリージョンに存在するサブネットワークのみです。
それ以外の場合は、
defaultを指定します。
Autopilot モードの GKE クラスタを作成する
Autopilot モードで GKE クラスタを作成するには、次のコマンドを実行します。
GKE クラスタの作成が完了するまでに時間がかかることがあります。がクラスタの作成を完了したことを確認するには、コンソールで Kubernetes クラスタ に移動します。 Google Cloud Google Cloud
Hugging Face の認証情報用の Kubernetes Secret を作成する
Hugging Face の認証情報用の Kubernetes Secret を作成する手順は次のとおりです。
GKE クラスタと通信するように
kubectlを構成します。Hugging Face トークンを保存する Kubernetes Secret を作成します。
vLLM コンテナを GKE クラスタにデプロイする
Kubernetes Deployment を使用して Gemma 3 27B モデルをサービングする vLLM コンテナをデプロイする手順は次のとおりです。
選択した vLLM デプロイを含む
vllm-3-27b-it.yamlファイルを作成します。vllm-3-27b-it.yamlファイルを GKE クラスタに適用します。デプロイ プロセス中に、コンテナは Hugging Face から Gemma 3 をダウンロードする必要があります。そのため、コンテナのデプロイが完了するまでに最大 30 分かかることがあります。
デプロイが完了するまで待ちます。
curl を使用して Gemma 3 を操作する
デプロイした Gemma 3 27B の指示チューニング済みモデルを確認する手順は次のとおりです。
Gemma 3 へのポート転送を設定します。
新しいターミナル ウィンドウを開きます。
curlを使用してモデルとチャットできます。出力は次のようになります。
{ "id": "chatcmpl-e4a2e624bea849d9b09f838a571c4d9e", "object": "chat.completion", "created": 1741763029, "model": "google/gemma-3-27b-it", "choices": [ { "index": 0, "message": { "role": "assistant", "reasoning_content": null, "content": "Okay, let's break down why the sky appears blue! It's a fascinating phenomenon rooted in physics, specifically something called **Rayleigh scattering**. Here's the explanation: ...", "tool_calls": [] }, "logprobs": null, "finish_reason": "stop", "stop_reason": 106 } ], "usage": { "prompt_tokens": 15, "total_tokens": 668, "completion_tokens": 653, "prompt_tokens_details": null }, "prompt_logprobs": null }
モデルのパフォーマンスをモニタリングする場合は、Cloud Monitoring で vLLM ダッシュボードの統合を使用できます。このダッシュボードでは、トークンのスループット、ネットワーク レイテンシ、エラー率など、モデルの重要なパフォーマンス指標を確認できます。詳細については、 Monitoring のドキュメントのvLLMをご覧ください。
クリーンアップ
このチュートリアルで使用したリソースについて、Google Cloud アカウントに課金されないようにするには、リソースを含むプロジェクトを削除するか、プロジェクトを維持して個々のリソースを削除します。
リソースの削除
vllm-3-27b-it.yamlファイルで定義された Deployment と Service、および Kubernetes Secret を GKE クラスタから削除するには、次のコマンドを実行します。GKE クラスタを削除するには、次のコマンドを実行します。
プロジェクトの削除
プロジェクトを削除する: Google Cloud
gcloud projects delete PROJECT_ID