In dieser Anleitung erfahren Sie, wie Sie das multimodale Mixture of Experts-Modell Gemma 4 26B (google/gemma-4-26B-A4B-it) in Google Kubernetes Engine (GKE) mit Cloud TPU v6e (Trillium)-Beschleunigern mit mehreren Hosts und vLLM TorchTPU bereitstellen und bereitstellen.
Da die Arbeitslast mehrere TPU-Hosts in einer 2x4-Topologie umfasst, verwenden Sie die Kubernetes LeaderWorkerSet API und Ray, um die verteilte tensorparallele Inferenz über acht TPU-Chips hinweg zu koordinieren.
Ziele
- Richten Sie Ihren GKE-Cluster und den TPU v6e-Knotenpool mit mehreren Hosts ein.
- Stellen Sie den vLLM-Server mit mehreren Hosts mit LeaderWorkerSet bereit.
- Text- und multimodale Inferenzanfragen senden
- Führen Sie eine Benchmark-Arbeitslast für die Bereitstellung aus.
- bereinigen.
Kosten
In diesem Dokument verwenden Sie die folgenden kostenpflichtigen Komponenten vonGoogle Cloud:
Mit dem Preisrechner können Sie eine Kostenschätzung Ihrer voraussichtlichen Nutzung vornehmen.
Nach Abschluss der in diesem Dokument beschriebenen Aufgaben können Sie weitere Kosten vermeiden, indem Sie die erstellten Ressourcen löschen. Weitere Informationen finden Sie unter Bereinigen.
Hinweis
Für diese Anleitung benötigen Sie ein Hugging Face-Zugriffstoken. Sie können sich bei Hugging Face für ein kostenloses Konto registrieren. Nachdem Sie ein Konto erstellt haben, generieren Sie ein Zugriffstoken:
- Klicken Sie auf der Seite Willkommen bei Hugging Face auf Ihren Konto-Avatar und wählen Sie Zugriffstokens aus.
- Klicken Sie auf der Seite Zugriffstokens auf Neues Token erstellen.
- Wählen Sie den Tokentyp Lesen aus und geben Sie einen Namen für das Token ein.
- Ihr Zugriffstoken wird angezeigt. Speichern Sie das Token an einem sicheren Ort.
- Installieren und initialisieren Sie die Google Cloud CLI und installieren Sie
kubectl. Wenn Sie Cloud Shell verwenden, sind beide Tools vorinstalliert.
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für Ihr Projekt zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Ausführen dieser Anleitung benötigen:
- Kubernetes Engine-Administrator (
roles/container.admin) - Compute-Administrator (
roles/compute.admin) - Service Account User (
roles/iam.serviceAccountUser)
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.
Umgebungsvariablen einrichten
Richten Sie die Umgebungsvariablen ein:
Ersetzen Sie Folgendes:
YOUR_PROJECT_ID: die ID Ihres Google Cloud-Projekts.YOUR_RESERVATION_NAME: der Name Ihrer Reservierung.YOUR_REGION: die Region, in der Sie Ihren GKE-Cluster bereitstellen möchten.YOUR_ZONE: die Zone, in der Sie Ihren TPU v6e-Knotenpool bereitstellen möchten.YOUR_CLUSTER_NAME: Name Ihres GKE-Clusters.YOUR_HF_TOKEN: Ihr Hugging Face-Zugriffstoken.YOUR_VLLM_TPU_IMAGE: das zu verwendende vLLM-TPU-Image. Informationen zu öffentlichen Images finden Sie im vLLM TorchTPU-Repository.
GKE-Cluster erstellen
Führen Sie die folgenden Schritte aus, um den GKE-Cluster zu erstellen und einen TPU v6e-Knotenpool mit mehreren Hosts anzuhängen:
Erstellen Sie einen regionalen GKE-Cluster, der
e2-standard-4-Knoten für den Standardknotenpool verwendet, und einen TPU v6e-Knotenpool mit zweict6e-standard-4t-Knoten, die in einer2x4-Topologie angeordnet sind (insgesamt acht TPU-Chips). Der GKE-Standardmaschinentyp (e2-medium) bietet nicht genügend CPU-Ressourcen für den LeaderWorkerSet-Controller. Daher wird in dieser Anleitunge2-standard-4angegeben:Anstatt eine bestimmte Reservierung zu verwenden, können Sie den Knotenpool auch mit Spot-Kapazität oder Flex-Start-VMs erstellen. Übergeben Sie dazu die folgenden Flags:
- Spot-VMs: Ersetzen Sie die Flags
--reservation-affinityund--reservationdurch--spot, um Spot-Kapazität zu verwenden. Es kann einige Zeit dauern, bis Instanzen, die Spot-Kapazität verwenden, nach dem Erstellen des Knotenpools erstellt werden. Außerdem können sie während der Ausführung von Arbeitslasten vorzeitig beendet werden. Wenn die Erstellung Ihrer Pods lange dauert oder Arbeitslasten während der Ausführung beendet werden, kann dies die Ursache sein. - Flex-Start-VMs: Übergeben Sie
--flex-start, um den Knotenpool mit der Verbrauchsoption Flex-Start bereitzustellen. Weitere Informationen finden Sie unter Kleine Batcharbeitslast mit TPUs und Flex-Start-VMs ausführen.
- Spot-VMs: Ersetzen Sie die Flags
Konfigurieren Sie
kubectl-Anmeldedaten für die Kommunikation mit Ihrem Cluster:
Anmeldedaten konfigurieren und LeaderWorkerSet installieren
Führen Sie die folgenden Schritte aus, um Ihren Cluster für die Bereitstellung auf mehreren Hosts vorzubereiten:
Exportieren Sie Ihr Hugging Face-Token und erstellen Sie ein Kubernetes-Secret mit dem Namen
hf-secret:Installieren Sie die LeaderWorkerSet-CustomResourceDefinition und den Controller in Ihrem Cluster:
vLLM-Server mit mehreren Hosts bereitstellen
Das Arbeitslastmanifest (gemma4-26b-multihost-v6e-2x4.yaml) definiert zwei Ressourcen:
- Eine LeaderWorkerSet-Ressource (
vllm-tpu-gemma4-26b) mitsize: 2(ein Leader-Pod und ein Worker-Pod), die auf den beidenct6e-standard-4t-Knoten im2x4-TPU-Slice geplant ist. In jedem Pod wird ein InitContainer ausgeführt, der diegoogle/gemma-4-26B-A4B-it-Modellgewichtungen von Hugging Face in ein In-Memory-Volume vorabruft, bevor Ray und der vLLM OpenAI API-Server mit den Flags--tensor-parallel-size=8,--kv-cache-dtype=fp8,--max-model-len=5248und--max-num-seqs=128gestartet werden. - Ein ClusterIP-Dienst (
vllm-service), der Port8000auf dem Leader-Pod verfügbar macht.
Führen Sie die folgenden Schritte aus, um die Arbeitslast bereitzustellen und zu überwachen:
Rufen Sie das LeaderWorkerSet-Manifest von GitHub ab:
Alternativ können Sie eine Datei mit dem Namen
gemma4-26b-multihost-v6e-2x4.yamlund folgendem Inhalt erstellen:Wenden Sie das LeaderWorkerSet-Manifest an:
Überwachen Sie den Status und die Logs des Leader-Pods, bis die Anwendung gestartet wurde:
Der erste Dienststart dauert etwa 9 Minuten, während die Pods die Modellgewichtungen vorab abrufen, den Ray-Cluster mit zwei Knoten über alle acht TPU-Chips hinweg bilden und das Modell kompilieren. Warten Sie, bis in den Logs
Application startup completeangezeigt wird, bevor Sie Traffic senden.Leiten Sie in einer zweiten Terminalsitzung den lokalen Port
8000anvllm-serviceweiter:Lassen Sie die Portweiterleitung in dieser Terminalsitzung laufen.
Inferenzanfragen senden
Kehren Sie zu Ihrer ersten Terminalsitzung zurück und testen Sie das bereitgestellte Modell mit Text- und multimodalen Chatausführungsanfragen:
Senden Sie eine Anfrage zur Textchat-Vervollständigung an den
/v1/chat/completions-Endpunkt:Senden Sie eine multimodale Anfrage, die sowohl eine Bild-URL als auch einen Text-Prompt enthält:
Benchmark-Arbeitslast ausführen
Führen Sie den folgenden Befehl aus, um das bereitgestellte Modell zu benchmarken:
Bereinigen
Löschen Sie die Kubernetes-Arbeitslasten, den TPU-Knotenpool und den GKE-Cluster, um zu vermeiden, dass Ihrem Google Cloud Konto die in dieser Anleitung verwendeten Ressourcen in Rechnung gestellt werden:
Löschen Sie das vLLM-Server-Deployment und das Hugging Face-Secret:
Löschen Sie den TPU v6e-Knotenpool und den GKE-Cluster:
Kehren Sie zur zweiten Terminalsitzung zurück und beenden Sie die Portweiterleitung.
Nächste Schritte
- Weitere Informationen zu vLLM TorchTPU
- Weitere Informationen zu Cloud TPU