In dieser Anleitung erfahren Sie, wie Sie mit MaxText und dem Cluster Toolkit ein Multi-Host-Reinforcement-Learning-Training (RL) auf einem Tensor Processing Unit (TPU) v6e-32-Cluster ausführen. Sie verwenden das Cluster Toolkit, um eine Trainingsarbeitslast mit mehreren Hosts auszuführen und die Ergebnisse zur Bereitstellung wieder in das Hugging Face-Format zu exportieren.
Zusammenfassung der Arbeitslast
Für die Ausführung dieser RL-Arbeitslast nach dem Training auf Cloud TPU und GKE sind die folgenden Komponenten erforderlich:
- Modell: Gemma 4 26B A4B Instruct (
google/gemma-4-26b-a4b-it), ein fortschrittliches, für Anweisungen optimiertes Open-Weights-Modell. In dieser Anleitung werden die Modellgewichtungen von Hugging Face heruntergeladen, in ein MaxText-kompatibles Format konvertiert und in einem GKE-Cluster mit Cloud TPU v6e-Infrastruktur bereitgestellt. - Algorithmus für bestärkendes Lernen (RL): Group Relative Policy Optimization (GRPO) mit MaxText und Pathways. Die Arbeitslast führt eine skalierbare Post-Training-Pipeline mit dem integrierten RL-Trainer von MaxText (
maxtext.trainers.post_train.rl.train_rl) in Kombination mit einem vLLM-Sampler-Backend aus. GRPO optimiert die Richtlinie, indem pro Prompt eine Gruppe von Ausgaben generiert und die relativen Belohnungen bewertet werden, ohne dass ein separates Kritikermodell erforderlich ist. - Dataset und Vorlage: OpenMathInstruct-2 (
openmathinstruct2_rl.json), ein umfangreiches Dataset zur Feinabstimmung von mathematischen Anweisungen. Die Arbeitslast verwendet während der RL-Roll-out-Phase strukturierte Chatvorlagen, um die Fähigkeiten zur mehrstufigen mathematischen Argumentation zu verbessern. - Infrastruktur und Framework: GKE, verwaltet mit Cluster Toolkit, auf Cloud TPU v6e (
ct6e-standard-4t,v6e-32-Slice mit einer4x8-Topologie). Das Framework ist MaxText (tpu_post_training:0.2.4) mit Pathways und einem JAX-Backend.
Ziele
- Cluster Toolkit und seine Abhängigkeiten installieren
- Cluster Toolkit-Cluster bereitstellen
- Hugging Face-Modell in das MaxText-Format konvertieren.
- Führen Sie eine RL-Trainingsarbeitslast auf dem TPU v6e-Cluster aus.
- Konvertieren Sie das optimierte Modell für die Bereitstellung zurück in das Hugging Face-Format.
Kosten
In diesem Dokument verwenden Sie die folgenden kostenpflichtigen Komponenten von Google Cloud:
Mit dem Preisrechner können Sie eine Kostenschätzung für Ihre voraussichtliche 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.
- Akzeptieren Sie auf der
google/gemma-4-26b-a4b-it-Modellkarte auf Hugging Face die Lizenzvereinbarung für das Modell.
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:
- TPU-Administrator (
roles/tpu.admin) - Kubernetes Engine-Administrator (
roles/container.admin) - Compute-Administrator (
roles/compute.admin) - Storage-Administrator (
roles/storage.admin) - Service Account User (
roles/iam.serviceAccountUser) - Dienstkontoadministrator (
roles/iam.serviceAccountAdmin) - Projekt-IAM-Administrator (
roles/resourcemanager.projectIamAdmin) - Service Usage-Administrator ()
roles/serviceusage.serviceUsageAdmin
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 Projekts in Google Cloud .YOUR_REGION: die Region, in der sich Ihre TPU-Reservierung befindet und in der Sie Ihren Cluster bereitstellen.YOUR_ZONE: die Zone, in der sich Ihre TPU-Reservierung befindet und in der Sie Ihren Cluster bereitstellen.YOUR_CLUSTER_NAME: Name Ihres GKE-Clusters. Der Name muss mit einem Kleinbuchstaben beginnen, darf nur Kleinbuchstaben, Ziffern und Bindestriche enthalten und darf maximal 20 Zeichen lang sein.YOUR_BUCKET_NAME: ein global eindeutiger Name für einen Cloud Storage-Bucket.YOUR_RESERVATION_NAME: der Name Ihrer TPU v6e-Reservierung.YOUR_HF_TOKEN: Ihr Hugging Face-Zugriffstoken.
Cluster Toolkit-Abhängigkeiten installieren
Wenn Sie diese Anleitung auf einem Linux- oder macOS-Client oder einer Linux- oder macOS-Workstation ausführen möchten, folgen Sie den entsprechenden Schritten unter Abhängigkeiten installieren in der Cluster Toolkit-Dokumentation.
Wenn Sie Cloud Shell verwenden, können Sie diesen Abschnitt überspringen.
Cluster Toolkit installieren
Laden Sie das vordefinierte Bundle für die in CLUSTER_TOOLKIT_VERSION (v1.103.0) definierte Version des Cluster Toolkits herunter und extrahieren Sie es in Ihr aktuelles Arbeitsverzeichnis:
Umgebung authentifizieren
Bevor Sie die Bereitstellungsskripts ausführen, müssen Sie die Google Cloud CLI authentifizieren und Ihre Standardanmeldedaten für Anwendungen (Application Default Credentials, ADC) festlegen. So kann das Cluster Toolkit in Ihrem Namen Ressourcen bereitstellen und Images per Push an Artifact Registry senden.
Cluster Toolkit-Cluster erstellen
Führen Sie die folgenden Schritte aus, um einen Cluster Toolkit-Cluster mit 32 v6e-TPU-Chips zu erstellen und bereitzustellen:
Erstellen Sie einen Cloud Storage-Bucket:
Verwenden Sie den Befehl
gcluster deploy, um Ihren Cluster Toolkit-Cluster mit dem Blueprintgke-tpu-v6e-advanced.yamlbereitzustellen und die erforderlichen Variablen mit dem Flag--varszu übergeben:
Modell in das MaxText-Format konvertieren
Wenn Sie das Modell im MaxText-Format trainieren möchten, müssen Sie es vom Hugging Face-Format in das MaxText-Format konvertieren.
Verwenden Sie den
gcluster job config-Befehl, um Ihr Standardprojekt, Ihren Standardcluster und Ihren Standardstandort zu konfigurieren und nachfolgende Befehle zu vereinfachen:Verwenden Sie den Befehl
gcluster job submit, um das Modell vom Hugging Face-Format in das MaxText-Format zu konvertieren und in Ihrem Cloud Storage-Bucket zu speichern:Der Befehl enthält das Flag
--await-job-completion. Das bedeutet, dass er in Ihrem aktuellen Terminal wartet, bis die Konvertierung abgeschlossen ist.Optional: Wenn Sie die Konvertierungslogs streamen möchten, während der Job ausgeführt wird, öffnen Sie ein separates Terminal im Arbeitsverzeichnis, in dem Sie
gclusterextrahiert haben, und führen Sie den Befehlgcluster job logsaus:Prüfen Sie im ursprünglichen Terminal, ob die konvertierten Modelldateien in Ihrem Cloud Storage-Bucket verfügbar sind:
Trainingsarbeitslast starten
Starten Sie nach Abschluss des Konvertierungsvorgangs die RL-Trainingsarbeitslast:
Prüfen Sie den Status, warten Sie, bis der Koordinator-Pod bereit ist, und streamen Sie die Logs des Trainingsjobs:
Unmittelbar nach dem Senden wird in der Ausgabe des Befehls
./gcluster job listmöglicherweise kurzSuspendedangezeigt, während GKE den CPU-Knotenpool des Pathways-Koordinators (cpu-np) hochskaliert. Wenn der Job beginnt, wird bei Schritt 0 (Pre RL Training: ... mean_reward=...) eine erste Bewertung vor dem Training ausgegeben. Die Logausgabe wird während der ersten XLA-Kompilierung für einige Minuten pausiert. Anschließend wird der Job für 50 Schritte trainiert, wobei bei jedem SchrittReshard finishedund Rollout-Generierungen ohne Schrittnummern ausgegeben werden.Bevor Sie mit dem nächsten Schritt fortfahren, warten Sie, bis die Logs
Post RL Training: ... mean_reward=...ausgeben und die Ausgabe des Befehls./gcluster job listden Status vongemma4-trainingalsSucceededanzeigt.Prüfen Sie, ob die Trainingsprüfpunkte in Ihrem Cloud Storage-Bucket generiert werden:
Trainiertes Modell wieder in das Hugging Face-Format konvertieren
Nachdem die Trainingsarbeitslast abgeschlossen ist, konvertieren Sie das Modell wieder in das Hugging Face-Format:
Optional: Wenn Sie die Live-Konvertierungslogs überwachen möchten, während der vorherige
--await-job-completion-Befehl im ersten Terminal wartet, öffnen Sie ein separates Terminal im Arbeitsverzeichnis, in dem Siegclusterextrahiert haben, und verwenden Sie dengcluster job logs-Befehl:Prüfen Sie im ursprünglichen Terminal, ob die trainierten Hugging Face-Modellgewichtungen und ‑Konfigurationsdateien in Ihrem Cloud Storage-Bucket vorhanden sind:
Bereinigen
Verwenden Sie den Befehl gcluster destroy, um die in dieser Anleitung erstellten Ressourcen zu löschen und zusätzliche Kosten zu vermeiden:
Nächste Schritte
- Weitere Informationen zu Cloud TPU finden Sie unter Einführung in Cloud TPU.
- Details zur Architektur und Konfiguration der
v6e-32-TPU finden Sie unter TPU v6e. - Weitere Informationen zum Cluster Toolkit finden Sie unter Cluster Toolkit – Übersicht.