AI アプリケーションを作成するには、AI ワークロード向けに最適化された安全なプライベート Google Kubernetes Engine(GKE)クラスタをプロビジョニングし、helm チャートを使用してワークロードをデプロイします。このガイドでは、AI アプリケーションをデプロイするためにカスタマイズできる次のテンプレートについて説明します。
AI 事前トレーニング済み推論 GKE クラスタ: 高パフォーマンスのモデル提供に必要な基盤となるインフラストラクチャを作成します。このテンプレートは、AI 推論向けに最適化された安全なプライベート GKE クラスタを設定します。
AI 事前トレーニング済み推論 GKE ワークロード (プレビュー): AI ワークロードの構成を含む helm チャートをデプロイします。helm チャートを使用して、vLLM サービング エンジンを使用して事前トレーニング済みの Gemma モデルをデプロイします。ワークロードは、効率的な GPU リソース リクエストと、GPU キャッシュの使用量に基づいてスケーリングする HorizontalPodAutoscaler(HPA)用に構成されています。
たとえば、クラスタ テンプレートとワークロード テンプレートをデプロイして、次のようなビジネスニーズに対応できます。
| 例 | ビジネスニーズ | 実装 |
|---|---|---|
| リアルタイム動画分析 | セキュリティ会社は、数百台のカメラからの動画ストリームを処理して、異常や特定のオブジェクトをリアルタイムで検出する必要があります。 | GPU 対応ノードプールに動画処理モデルをデプロイします。GPU は、同時動画ストリームの高スループット、低レイテンシの要求を処理できます。 |
| 特殊なドキュメント処理 | 保険会社は、レイアウトや手書きが異なる何千もの請求書から情報を自動的に抽出する必要があります。 | GKE クラスタを使用してカスタムモデルをホストし、処理中にデータが安全な環境から流出しないようにします。 |
| 大容量レコメンデーション エンジン | e コマース プラットフォームは、ホリデー ショッピングのピーク時に、パーソナライズされた商品のおすすめをユーザーに提供する必要があります。 | Google Kubernetes Engine Gateway API を使用して、大量のユーザー トラフィックをレコメンデーション モデルにルーティングします。Gateway API は、レイテンシの低下なしにトラフィックの急増に対応できます。 |
アーキテクチャ
次の図は、テンプレートのコンポーネントと接続を示しています。
このテンプレートのコンポーネント構成は次のとおりです。
GKE Standard クラスタ: AI ワークロードが実行される安全なプライベート クラスタ。
次の表に、このテンプレートのクラスタ構成を示します。
構成 目的 node_locationsは["us-central1-a", "us-central1-b", "us-central1-c"]に設定されている。us-central1リージョン内の 3 つのゾーンにクラスタのノードを分散することで、高可用性と復元力を確保します。enable_intranode_visibilityはtrueに設定されている。VPC フローログで、同じノード内の Pod 間トラフィックの可視性を有効にします。この可視性は、ネットワーク モニタリング、トラブルシューティング、セキュリティ分析に必要です。 gateway_api_configは{"channel":"CHANNEL_STANDARD"}を使用して有効になっている。GKE Inference Gateway API を使用すると、Kubernetes サービスへの上り(内向き)トラフィックを管理できます。この API を使用すると、きめ細かいルーティング、高度な負荷分散、一元的なポリシーの適用を構成できます。 private_cluster_config.enable_private_endpointはfalseに設定されている。private_cluster_config.enable_private_nodesはtrue。control_plane_endpoints_config.dns_endpoint_config.allow_external_trafficはtrueに設定されている。AI モデルが実行されるワーカーノードにプライベート IP アドレスが割り当てられるようにします。これにより、ノードが公共インターネットから分離されます。GKE コントロール プレーンは、Virtual Private Cloud(VPC)ネットワークの外部からクラスタを管理できるように、一般公開されるように構成されています。 release_channelは{"channel":"REGULAR"}に設定されている。GKE クラスタが安定した予測可能なアップデートを受け取り、新機能と信頼性のバランスが取れるようにします。 GKE ノードプール: アプリケーションのコンテナを実行するワーカーノードのグループ。
次の表に、このテンプレートのノードプール構成を示します。
構成 目的 autoscaling.min_node_countは0に設定されている。autoscaling.max_node_countは3に設定されている(デフォルトは100)。AI ワークロードが実行されていない場合、ノードプールは完全にスケールダウンできるため、アイドル時の費用を削減できます。スケーリングの上限は、費用とリソースの使用量を制御するのに役立ちます。 node_config.guest_acceleratorパラメータが追加された。gpu_driver_installation_config.gpu_driver_version:は"LATEST"に設定されている。gpu_sharing_configはTIME_SHARINGで有効になっている。max_shared_clients_per_gpu:は2に設定されている。AI 推論タスクに NVIDIA L4 GPU を使用することを指定します。必要な GPU ドライバが自動的にインストールされます。複数の小規模なワークロードで 1 つの GPU を共有できます。 node_config.machine_typeが"g2-standard-8"に変更された。このマシンタイプは、L4 GPU を補完するように設計されています。GPU をサポートし、AI 推論アプリケーションを実行するために、vCPU(8 個)とメモリ(32 GB)が作成されます。 node_config.oauth_scopesにhttps://www.googleapis.com/auth/cloud-platformが含まれている。ノードのサービス アカウントは Google Cloud サービスへの広範なアクセス権を持ち、ロギング、モニタリング、コンテナ イメージの pull などのタスクで API を操作できます。 node_config.shielded_instance_config.enable_secure_bootはtrueに設定されている。セキュアブートは、ブートローダーとカーネルの暗号署名を実行前に検証することで、ブートレベルのマルウェアからノードを保護します。
Helm チャートの構成
次の表に、GKE で AI 推論サービスをデプロイしてスケーリングするためにカスタマイズされた helm チャートの構成を示します。
| 構成 | 目的 |
|---|---|
replicaCount: 1 |
単一の初期レプリカを作成します。 |
image.repository: vllm/vllm-openai |
vLLM イメージを使用します。これは、OpenAI 互換 API を使用して公開される、大規模言語モデル(LLM)推論用に最適化されたライブラリです。 |
model.id: google/gemma-7b-it |
サービングするモデルとして Gemma 7B 命令チューニング済みモデルを定義します。 |
model.hfSecret: hf-secret |
モデルには、安全な認証情報管理のために Kubernetes Secret を使用した認証が必要であることを示します。 |
resources.limits と requests(nvidia.com/gpu: "1") |
各 Pod に専用の GPU が割り当てられるようにします。 |
nodeSelector.cloud.google.com/gke-accelerator: nvidia-l4 |
AI モデル Pod が NVIDIA L4 GPU を搭載した GKE Standard ノードでのみスケジュールされるようにします。これは、費用対効果の高い高パフォーマンスの推論に最適です。 |
hpa.enabled: true |
HorizontalPodAutoscaler を有効にします。これにより、アプリケーションは targetCPUUtilizationPercentage: 80% に基づいて Pod の数を自動的にスケーリングできます(minReplicas: 1 と maxReplicas: 10 の間)。ピーク負荷時のパフォーマンスと、使用量が少ない場合の費用対効果を確保します。 |
tensorParallelSize: 1 |
モデルが単一の Pod 内の複数の GPU に分割されていないことを示します。 |
maxModelLen: 512 |
Gemma 7B モデルが処理できる最大シーケンス長を制御します。 |
service.type: ClusterIP |
サービスは、クラスタ内の内部アクセス用に構成されています。 |
pdb.enabled: true と minAvailable: 1 |
高可用性を確保するために、Pod Disruption Budget が有効になっています。ノードのメンテナンスなどの自発的な中断中も、AI モデルのレプリカが少なくとも 1 つは使用可能な状態になります。 |
AI アプリケーションを作成する
AI 事前トレーニング済み推論 GKE クラスタとワークロード テンプレートを使用して、AI アプリケーションをデプロイします。
AI インフラストラクチャをデプロイする
AI 事前トレーニング済み推論 GKE クラスタ テンプレートを構成してデプロイし、AI ワークロードが実行される基盤となるインフラストラクチャを作成します。
__AI 事前トレーニング済み推論 GKE クラスタ テンプレートを複製して、アプリケーションとしてデプロイします。
選択したデプロイ プロジェクトに GKE クラスタが作成されます。
コンポーネントを構成します。詳しくは以下をご覧ください。
[デプロイ] をクリックします。数分後にアプリケーションがデプロイされます。
[アプリケーションの詳細] パネルで、[出力] タブをクリックします。
アプリケーションのcluster_id を確認します。この情報は、helm チャートをデプロイするときに使用します。
AI ワークロードをデプロイする
AI 事前トレーニング済み推論 GKE ワークロード テンプレートを使用して、作成したクラスタに AI ワークロードをデプロイします。AI ワークロード構成を含む helm チャートをデプロイします。
[Google カタログ] ページで、[AI 事前トレーニング済み推論 GKE ワークロード] テンプレートの [新しいアプリケーションを作成] をクリックします。
[名前] フィールドに、アプリケーションの一意の名前を入力します。
[GKE デプロイ ターゲット] 領域で、次の操作を行います。
[**プロジェクト リスト**] から、 __AI 事前トレーニング済み推論 GKE クラスタ アプリケーションから GKE クラスタをデプロイしたプロジェクトを選択します。
[リージョン] リストから、GKE クラスタをデプロイしたリージョンを選択します。
[クラスタ] リストから、デプロイされた GKE クラスタを選択します。
[Namespace] リストに、GKE クラスタをデプロイした Namespace を入力します。名前を変更していない場合は、「
default」と入力します。[アプリケーションを作成] をクリックします。
アプリケーションが作成され、構成ファイルが表示されます。
[Helm チャート] パネルで、次の操作を行います。
構成の詳細を確認します。
省略可: 独自のニーズに合わせて構成をカスタマイズします。
helm チャートをクラスタにデプロイするには、[デプロイ] をクリックします。
詳細な手順については、アプリケーションをデプロイするをご覧ください。
数分後、helm チャートの構成が GKE クラスタにデプロイされます。
次のステップ
- テンプレートを複製してカスタマイズする方法については、クイックスタート: Google テンプレートをカスタマイズしてデプロイするをご覧ください。
- アプリケーション テンプレートを設計して、独自の構成を定義します。
- アーキテクチャ フレームワークを使用して、一般的なアーキテクチャのベスト プラクティスを確認します。Google Cloud