Distributed Cloud ソフトウェアのみのリファレンス アーキテクチャでのオープンモデル提供

概要

このソリューション リファレンス アーキテクチャ(SRA)は、Distributed Cloud ソフトウェアのみのスタンドアロン クラスタでオープンウェイトの大規模言語モデル(LLM)をホスト、サービング、検証するためのコンセプト設計、コンポーネント トポロジ、技術的な境界を定義します。

エンタープライズ エッジ環境では、低レイテンシの推論と厳格なデータ主権が必要になることがよくあります。このソリューション リファレンス アーキテクチャは、標準化された安全でオブザーバブルなサービング スタックを提供し、お客様が提供する NVIDIA RTX PRO 6000 GPU(96 GB VRAM)を備えた単一ノードの Distributed Cloud ソフトウェア専用クラスタに Gemma 4 31B モデルをデプロイします。

特長と機能

  • ローカル モデル サービング: 業界標準の OpenAI 互換 API を Distributed Cloud ソフトウェアのみのクラスタ境界内でローカルに公開します。
  • 大規模エッジモデルのサポート: Gemma 4 31B をネイティブ精度(BF16)または量子化形式で実行するように最適化され、96 GB の VRAM 容量を最大限に活用します。
  • オブザーバビリティ: ネイティブの PodMonitoring リソースを使用して、Distributed Cloud ソフトウェアのモニタリング インフラストラクチャ(Google Cloud Managed Service for Prometheus)と統合し、GPU テレメトリーと vLLM パフォーマンス指標をエクスポートします。これにより、スタンドアロンのローカル Prometheus サーバーが不要になります。
  • インタラクティブ検証: モデルの応答性をすぐに視覚的に検証するための Gradio ベースのウェブ インターフェースをデプロイします。

アーキテクチャの原則

  • シンプルさと移植性: 複雑なサービング オペレータではなく、Kubernetes ネイティブ コンストラクト(Deployment、Service)を標準化し、単一ノード設定でのデプロイとメンテナンスを容易にします。
  • データ主権: すべての推論トラフィックとプロンプトとレスポンスのデータは、ローカル クラスタの境界内に厳密に保持されます。
  • リソースの分離: 物理 GPU アクセラレータを単一のモデル サービング インスタンス専用にして、リソースの競合を防ぎ、予測可能なレイテンシを保証します。

アーキテクチャと設計

コンポーネント

ソリューションのコンポーネントは次のとおりです。

  • 顧客 Namespace(Distributed Cloud ソフトウェアのみのクラスタ):
    • vLLM サービング エンジン: vLLM コンテナを実行する Kubernetes Deployment としてデプロイされます。永続ストレージから Gemma の重みを読み込み、OpenAI 互換 API を公開するように構成されています。
    • Gradio Web UI: 検証用のチャット インターフェースを提供する Kubernetes Deployment としてデプロイされます(省略可: クラスタの vLLM サービスに接続されたデベロッパー ワークステーションまたはテスト ランタイムで外部実行することもできます)。
  • Persistent Volume Claim(PVC): モデルの重みをホストするために、Distributed Cloud ソフトウェアのローカル共有ストレージ(local-shared StorageClass を使用)のみによって支えられます。
  • Kubernetes サービス: vLLM API エンドポイント用の ClusterIP サービス。Gradio UI を顧客ネットワークに公開するための NodePort サービスまたは LoadBalancer サービス。
  • インフラストラクチャ(お客様管理):
    • NVIDIA GPU Operator: 物理 GPU リソースをオーケストレートし、Distributed Cloud(ソフトウェアのみ)の Kubernetes ワーカーノードに公開します。
    • NVIDIA RTX PRO 6000 GPU: 基盤となる物理アクセラレータ(96 GB GDDR7 メモリ アーキテクチャ)。
  • Google Cloud との統合:
    • Google Cloud Monitoring と Logging: デフォルトの Distributed Cloud ソフトウェアのみのエージェントが、システムログ、コンテナログ、基本指標を収集してGoogle Cloudに転送します。

アーキテクチャの概要

次の図は、Distributed Cloud ソフトウェア専用クラスタ内のリクエスト フローとコンポーネントのインタラクションを示しています。

Distributed Cloud ソフトウェアのみのアーキテクチャ図でオープンモデル提供。

ハードウェアの制約

このソリューションは、NVIDIA RTX PRO 6000 Blackwell GPU を搭載したお客様提供のハードウェア向けに設計されています。

  • GPU 仕様: NVIDIA RTX PRO 6000(Blackwell Server または Workstation エディション)。
  • メモリ アーキテクチャ: 96 GB GDDR7 VRAM(ECC 付き)
  • モデル選択の影響:
    • 96 GB の VRAM により、ターゲットの Gemma 4 31B モデルをネイティブ BF16 精度で実行できます(重み付けに約 62 GB を使用し、キー値(KV)キャッシュ用に約 34 GB の VRAM ヘッドルームを残します)。
    • リファレンス実装で構成されているように、Blackwell ハードウェア アクセラレーション FP8 量子化(--quantization=fp8)が有効になっている場合、モデルの重みメモリは半分になり、約 31 GB になります。これにより、--gpu-memory-utilization=0.95 で使用可能な KV キャッシュが 約 56.5 GiB(61,728 トークン)に拡張され、メモリ不足(OOM)エラーが発生することなく、大きなコンテキスト ウィンドウや高い同時バッチサイズが可能になります。

サポート内容のマトリクス(責任)

コンポーネント 管理者 メモ
物理ハードウェアと OS 顧客 お客様が調達したハードウェア(特に NVIDIA RTX PRO 6000 Blackwell GPU を搭載したサーバーまたはワークステーション)。
Distributed Cloud ソフトウェアのみのクラスタのインストール 顧客 標準の Distributed Cloud ソフトウェアのみのインストール ドキュメントに沿って操作する必要があります。
GPU ドライバとオペレータ 顧客 NVIDIA GPU Operator と Helm チャートのインストール。Google は NVIDIA オペレーターのデプロイをサポートしていません。
vLLM サービング マニフェスト Google(ソリューション) このソリューション ガイドの一部として提供されます。
モデルのアーティファクト 顧客 Gemma モデルの重みをダウンロードしてホストする。
Gradio UI とアプリコード 顧客 検証と使用のための顧客所有のアプリケーション レイヤ。
Cloud Logging と Cloud Monitoring 共同 Google がデフォルトの統合を提供します。お客様が構成します。

コンセプトとテクノロジー

このセクションでは、機能コンポーネント、その役割、システム内での通信方法について詳しく説明します。ターゲット ユースケースをサポートするために必要なコアサービス、データ ストレージ ユニット、ネットワーキング インターフェースを特定します。

インフラストラクチャとプラットフォーム

  • NVIDIA RTX PRO 6000 GPU: 96 GB の GDDR7 VRAM を提供します。物理 GPU は、モデル提供インスタンス専用になります。モデルが VRAM とメモリ帯域幅全体に排他的にアクセスできるように、GPU パーティショニング(MIG)は有効になっていません。これにより、リソースの競合を防ぐことができます。
  • NVIDIA GPU Operator: 物理 GPU リソースをオーケストレートし、Distributed Cloud(ソフトウェアのみ)の Kubernetes ワーカーノードに公開する、顧客管理の Operator。
  • ノードローカル ストレージ(永続ボリューム クレーム): Distributed Cloud ソフトウェアのみでサポートされるノードローカル ストレージ。ノードでモデルの重みをホストして永続化します。これにより、モデルの重みがダウンロードされると、ローカルに保持されます。以降の Pod の再起動または更新では、このローカル キャッシュから重みが読み込まれるため、起動時間が短縮され、WAN の停止から保護されます。
  • 共有メモリ セグメント(/dev/shm): medium: Memory を含む emptyDir ボリュームが /dev/shm にマウントされ、vLLM での高並行テンソル オペレーション中のセグメンテーション違反を防ぐために 16 GiB が割り当てられます。

サービスとロジック

  • vLLM サービング エンジン: Vertex AI 認定の vLLM コンテナを実行する Kubernetes Deployment としてデプロイされ、ClusterIP サービス(ポート 8000)を介して公開されます。主な構成パラメータは次のとおりです。
    • --model: Gemma モデルのパスまたは ID(google/gemma-4-31B-it など)。
    • --tensor-parallel-size: 1(単一 GPU 制約)に設定します。
    • --dtype: 量子化されていないレイヤとアクティベーションでハードウェア ネイティブの精度を活用するには、bfloat16 に設定します。
    • --quantization: 参照実装では fp8 に設定して、Blackwell FP8 重み量子化(重み約 31 GB、KV キャッシュ約 56.5 GiB)を活用します。量子化されていない BF16(重み約 62 GB、KV キャッシュ約 34 GB)が優先される場合は省略します。
  • Gradio ウェブ UI: 検証用のチャット インターフェースを提供する Kubernetes Deployment としてデプロイされ、ClusterIP サービス(ポート 8080)経由で公開されます。プロンプトとレスポンスのやり取りのために vLLM サービスに接続します。

オブザーバビリティと Google Cloud 統合

  • Cloud Logging: デフォルトの Distributed Cloud ソフトウェアのみのロギング エージェントを使用して、コンテナログ(vLLM アプリケーション ログと GPU 診断)を自動的にキャプチャして Cloud Logging に転送します。
  • Cloud Monitoring(PodMonitoring): Google Cloud Managed Service for Prometheus(GMP)リソースは、vLLM Pod(トークン スループットや KV キャッシュ使用率などのテレメトリー用)と GPU エクスポーター Pod(GPU テレメトリー用)の両方をターゲットとし、指標を Cloud Monitoring にエクスポートします。

考慮事項

スケーラビリティとパフォーマンス

  • GPU の専用割り当て: NVIDIA RTX PRO 6000 GPU は vLLM コンテナ専用です。このアーキテクチャでは、予測可能な推論レイテンシを確保し、OOM を防ぐために、MIG またはタイム スライスによる GPU の共有は実装されていません。Gemma 4 31B モデルも、モデルの重み(約 62 GB)に VRAM 容量のほとんどを必要とするため、他のモデルを同時に実行するためのメモリがほとんど残りません。
  • デプロイ戦略: Recreate として適用されます。GPU が 1 つしかないため、更新中に vLLM Pod の 2 つのインスタンスを同時に実行することはできません。新しい Pod を起動する前に、古い Pod を終了して GPU ロックを解除する必要があります。

リソース管理

  • VRAM ヘッドルーム: 96 GB の NVIDIA RTX PRO 6000 は、非量子化 BF16 精度で Gemma 4 31B モデルに適合しますが(重み付けに約 62 GB、KV キャッシュに約 34 GB)、リファレンス デプロイでは Blackwell FP8 量子化(--quantization=fp8)により、重み付けメモリが約 31 GB に削減され、使用可能な KV キャッシュが ~56.5 GiB(61,728 同時トークン)に拡張されます。
  • KV キャッシュのサイズ設定: SRA は、デフォルトの vLLM 割り当て(--gpu-memory-utilization=0.95)を前提としています。これにより、エンジンの VRAM 使用率が最大化されます。

可用性と信頼性

  • キャッシュのウォームアップ: ノードローカル PV の使用が重要です。ノードが再起動すると、ホスト ディレクトリのキャッシュに保存された重みが再利用されます。
  • イメージ キャッシュ: vLLM コンテナ イメージは大きいため(10 GB 超)、Pod の再起動時にレジストリの pull が遅延しないように imagePullPolicy: IfNotPresent を設定することをおすすめします。

運用の複雑さ

  • コンソールの可視性: GKE とは異なり、Distributed Cloud ソフトウェアのみではコンソールベースの [AI/ML モデル] ビューはサポートされていません。検証とモニタリングはすべて、kubectl CLI、ポート転送、直接 Cloud Monitoring ダッシュボードを使用して行う必要があります。

設計上の意思決定

推論エンジン: vLLM、Triton、Ollama

  • 選択したオプション: vLLM
  • 理由: vLLM は、PagedAttention を介して LLM に最適なパフォーマンスをすぐに提供し、OpenAI API のパリティをサポートし、Vertex AI から事前認定されたコンテナ イメージを備えています。
  • Alternatives Rejected:(代替案が拒否されました)
    • Triton: 単一モデルのエッジ デプロイ用に構成してコンパイルするには、複雑すぎます。
    • Ollama: 本番環境のモニタリングに必要な高度なテレメトリー エンドポイントと詳細な同時実行チューニングがありません。

テレメトリー パス: ネイティブ GMP とローカル Prometheus

選択したオプション: ネイティブ GMP(PodMonitoring)

  • 理由: Distributed Cloud ソフトウェアは、Cloud Monitoring とのネイティブ統合のみをサポートしています。Managed Prometheus を使用して指標をGoogle Cloud に直接転送できるため、クラスタ内の運用オーバーヘッドを削減できます。
  • Alternatives Rejected:(代替案が拒否されました)
    • ローカルの Prometheus と Grafana スタック: 単一ノード クラスタでのコントロール プレーン リソースの使用量を最小限に抑えるため、拒否されました。

前提条件と制限事項

前提条件

  • GPU Operator の可用性: このソリューションをデプロイする前に、NVIDIA GPU Operator が正常にインストールされ、nvidia RuntimeClass が構成されていることを前提としています。
  • Hugging Face アクセス: デプロイには、制限付きの Gemma 4 リポジトリへのアクセス権を持つ有効な Hugging Face トークンが必要です。このトークンは Kubernetes Secret として保存されます。
  • ネットワーク パス: クラスタは、初期設定時にコンテナ イメージとモデルの重みをダウンロードするために、インターネット アクセス(または内部プロキシ)が必要です。

制限事項

  • 単一 GPU の境界: フェーズ 1 のアーキテクチャは、単一の NVIDIA RTX PRO 6000 GPU の物理容量によって制限されます。フェーズ 1 では、約 31B を超えるモデル(またはマルチ GPU テンソル並列処理を必要とする高同時実行ワークロード)はサポートされていません。
  • ローリング アップデートなし: Recreate 戦略では、モデルの更新または構成の変更中にサービスが一時的に停止します。これは、GPU を古い Pod と新しい Pod で共有できないためです。
  • パフォーマンス チューニングは除外: プロジェクトの範囲に沿って、ノードレベルの最適化(CPU ピニング、hugepages、PerformanceTuningProfile)はこのアーキテクチャから除外されます。

次のステップ