In dieser Anleitung wird beschrieben, wie Sie ein Gemma 3-LLM (Large Language Model) in einem GKE-Cluster mit mehreren Knoten und mehreren GPUs in Google Cloudabstimmen. Dieser Cluster verwendet eine virtuelle A4-Maschine (VM) mit 8 NVIDIA B200-GPUs.
Die beiden in dieser Anleitung beschriebenen Hauptprozesse sind:
- Stellen Sie einen leistungsstarken GKE-Cluster mit GKE Autopilot bereit. Im Rahmen dieser Bereitstellung erstellen Sie ein benutzerdefiniertes VM-Image mit der erforderlichen vorinstallierten Software.
- Nachdem der Cluster bereitgestellt wurde, führen Sie einen verteilten Feinabstimmungsjob mit den Skripts aus, die in dieser Anleitung enthalten sind. Für den Job wird die Hugging Face Accelerate-Bibliothek verwendet.
Diese Anleitung richtet sich an Entwickler von maschinellem Lernen (ML), Forscher, Plattformadministratoren und ‑operatoren sowie an Daten- und KI-Spezialisten, die daran interessiert sind, GKE-Cluster auf Google Cloud bereitzustellen, um LLMs zu trainieren.
Ziele
Über Hugging Face auf das Gemma 3-Modell zugreifen
Bereiten Sie Ihre Umgebung vor.
A4-GKE-Cluster erstellen und bereitstellen
Optimieren Sie das Gemma 3-Modell mit der Hugging Face Accelerate-Bibliothek mit vollständig fragmentierter Datenparallelität (Fully Sharded Data Parallelism, FSDP).
den Job überwachen
bereinigen.
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.
Hinweis
- Melden Sie sich in Ihrem Google Cloud -Konto an. Wenn Sie mit Google Cloudnoch nicht vertraut sind, erstellen Sie ein Konto, um die Leistungsfähigkeit unserer Produkte in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
-
Installieren Sie die Google Cloud CLI.
-
Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.
-
Führen Sie den folgenden Befehl aus, um die gcloud CLI zu initialisieren:
gcloud init -
Erstellen Sie ein Google Cloud Projekt oder wählen Sie eines aus.
Rollen, die zum Auswählen oder Erstellen eines Projekts erforderlich sind
- Projekt auswählen: Für die Auswahl eines Projekts ist keine bestimmte IAM-Rolle erforderlich. Sie können jedes Projekt auswählen, für das Ihnen eine Rolle zugewiesen wurde.
-
Projekt erstellen: Zum Erstellen eines Projekts benötigen Sie die Rolle „Projektersteller“ (
roles/resourcemanager.projectCreator), die die Berechtigungresourcemanager.projects.createenthält. Weitere Informationen zum Zuweisen von Rollen
-
So erstellen Sie ein Google Cloud Projekt:
gcloud projects create PROJECT_ID
Ersetzen Sie
PROJECT_IDdurch einen Namen für das Google Cloud Projekt, das Sie erstellen. -
Wählen Sie das von Ihnen erstellte Google Cloud Projekt aus:
gcloud config set project PROJECT_ID
Ersetzen Sie
PROJECT_IDdurch den Namen Ihres Projekts in Google Cloud .
-
Prüfen Sie, ob die Abrechnung für Ihr Google Cloud Projekt aktiviert ist.
Aktivieren Sie die erforderlichen APIs:
Rollen, die zum Aktivieren von APIs erforderlich sind
Zum Aktivieren von APIs benötigen Sie die IAM-Rolle „Service Usage-Administrator“ (
roles/serviceusage.serviceUsageAdmin), die die Berechtigungserviceusage.services.enableenthält. Weitere Informationen zum Zuweisen von Rollengcloud services enable compute.googleapis.com
container.googleapis.com file.googleapis.com logging.googleapis.com cloudresourcemanager.googleapis.com servicenetworking.googleapis.com -
Installieren Sie die Google Cloud CLI.
-
Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.
-
Führen Sie den folgenden Befehl aus, um die gcloud CLI zu initialisieren:
gcloud init -
Erstellen Sie ein Google Cloud Projekt oder wählen Sie eines aus.
Rollen, die zum Auswählen oder Erstellen eines Projekts erforderlich sind
- Projekt auswählen: Für die Auswahl eines Projekts ist keine bestimmte IAM-Rolle erforderlich. Sie können jedes Projekt auswählen, für das Ihnen eine Rolle zugewiesen wurde.
-
Projekt erstellen: Zum Erstellen eines Projekts benötigen Sie die Rolle „Projektersteller“ (
roles/resourcemanager.projectCreator), die die Berechtigungresourcemanager.projects.createenthält. Weitere Informationen zum Zuweisen von Rollen
-
So erstellen Sie ein Google Cloud Projekt:
gcloud projects create PROJECT_ID
Ersetzen Sie
PROJECT_IDdurch einen Namen für das Google Cloud Projekt, das Sie erstellen. -
Wählen Sie das von Ihnen erstellte Google Cloud Projekt aus:
gcloud config set project PROJECT_ID
Ersetzen Sie
PROJECT_IDdurch den Namen Ihres Projekts in Google Cloud .
-
Prüfen Sie, ob die Abrechnung für Ihr Google Cloud Projekt aktiviert ist.
Aktivieren Sie die erforderlichen APIs:
Rollen, die zum Aktivieren von APIs erforderlich sind
Zum Aktivieren von APIs benötigen Sie die IAM-Rolle „Service Usage-Administrator“ (
roles/serviceusage.serviceUsageAdmin), die die Berechtigungserviceusage.services.enableenthält. Weitere Informationen zum Zuweisen von Rollengcloud services enable compute.googleapis.com
container.googleapis.com file.googleapis.com logging.googleapis.com cloudresourcemanager.googleapis.com servicenetworking.googleapis.com -
Weisen Sie Ihrem Nutzerkonto Rollen zu. Führen Sie den folgenden Befehl für jede der folgenden IAM-Rollen einmal aus:
roles/compute.admin, roles/iam.serviceAccountUser, roles/cloudbuild.builds.editor, roles/artifactregistry.admin, roles/storage.admin, roles/serviceusage.serviceUsageAdmingcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE
Ersetzen Sie Folgendes:
PROJECT_ID: Ihre Projekt-ID.USER_IDENTIFIER: Die Kennung für Ihr Nutzerkonto . Beispiel:myemail@example.comROLE: Die IAM-Rolle, die Sie Ihrem Nutzerkonto zuweisen.
- Aktivieren Sie das Standarddienstkonto für Ihr Google Cloud Projekt:
export PROJECT_NUMBER="$(gcloud projects describe "PROJECT_ID" --format "value(project_number)")" gcloud iam service-accounts enable "${PROJECT_NUMBER}-compute@developer.gserviceaccount.com \ --project=PROJECT_ID
- Weisen Sie dem Standarddienstkonto die Rolle „Bearbeiter“ (
roles/editor) zu:gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com" \ --role=roles/editor
- Erstellen Sie lokale Anmeldedaten zur Authentifizierung für Ihr Nutzerkonto:
gcloud auth application-default login
- Aktivieren Sie OS Login für Ihr Projekt:
gcloud compute project-info add-metadata --metadata=enable-oslogin=TRUE
- Melden Sie sich in einem Hugging Face-Konto an oder erstellen Sie ein Konto.
Über Hugging Face auf Gemma 3 zugreifen
So greifen Sie mit Hugging Face auf Gemma 3 zu:
- Bei Hugging Face anmelden
- Erstellen Sie ein Hugging Face-Zugriffstoken für
write.
Klicken Sie auf Profil > Einstellungen > Zugriffstokens > +Neues Token erstellen. - Kopieren und speichern Sie den
write access-Tokenwert. Sie benötigen sie später in dieser Anleitung.
Umgebung vorbereiten
So bereiten Sie Ihre Umgebung vor:
Ersetzen Sie Folgendes:
PROJECT_ID: Der Name des Google Cloud ProjektsPROJECT_ID, in dem Sie den GKE-Cluster erstellen möchten.RESERVATION: die Kennung für Ihre reservierte Kapazität.CLUSTER_NAME: Der Name des zu erstellenden GKE-Cluster.CLUSTER_REGION: die Region, in der Sie Ihren GKE-Cluster erstellen möchten. Sie können den Cluster nur in der Region erstellen, in der Ihre Reservierung vorhanden ist.HF_TOKEN: Das Hugging Face-Zugriffstoken, das Sie im vorherigen Abschnitt erstellt haben.ARTIFACT_REPO_LOCATION: der Speicherort, an dem Sie Ihr Artifact Registry-Repository erstellen möchten.
GKE-Cluster im Autopilot-Modus erstellen
Führen Sie den folgenden Befehl aus, um einen GKE-Cluster im Autopilot-Modus zu erstellen:
Das Erstellen des GKE-Cluster kann einige Zeit dauern. Rufen Sie in der Google Cloud Console die Seite Kubernetes-Cluster auf, um zu prüfen, ob Google Cloud den Cluster erstellt hat.
Kubernetes-Secret für Hugging Face-Anmeldedaten erstellen
So erstellen Sie ein Kubernetes-Secret für Hugging Face-Anmeldedaten:
Konfigurieren Sie
kubectlfür die Kommunikation mit Ihrem GKE-Cluster:Erstellen Sie ein Kubernetes-Secret zum Speichern Ihres Hugging Face-Tokens:
Arbeitslast vorbereiten
So bereiten Sie Ihre Arbeitslast vor:
Arbeitslastskripts erstellen
So erstellen Sie die Skripts, die von Ihrer Arbeitslast zum Feinabstimmen verwendet werden:
Erstellen Sie ein Verzeichnis für die Arbeitslastskripts. Verwenden Sie dieses Verzeichnis als Arbeitsverzeichnis.
Erstellen Sie die Datei
cloudbuild.yaml, um Google Cloud Build zu verwenden. Mit dieser Datei wird der Container für Ihre Arbeitslast erstellt und in Artifact Registry gespeichert:Erstellen Sie eine
Dockerfile-Datei, um den Job für die Feinabstimmung auszuführen:Erstellen Sie die Datei
accel_fsdp_gemma3_config.yaml. Diese Konfigurationsdatei weist Hugging Face Accelerate an, den Abstimmungsjob auf mehrere GPUs aufzuteilen.Erstellen Sie die Datei
finetune.yaml.Erstellen Sie die Datei
finetune.py.
Container für die Feinabstimmung mit Docker und Cloud Build erstellen
Artifact Registry-Docker-Repository erstellen:
Führen Sie im Verzeichnis
llm-finetuning-gemma, das Sie in einem vorherigen Schritt erstellt haben, den folgenden Befehl aus, um das Feinabstimmungs-Image zu erstellen und per Push an Artifact Registry zu übertragen.Exportieren Sie die Bild-URL. Sie benötigen sie in einem späteren Schritt dieser Anleitung:
Arbeitslast für das Feinabstimmen starten
So starten Sie die Arbeitslast für das Fine-Tuning:
Wenden Sie das Manifest für die Feinabstimmung an, um den Job für die Feinabstimmung zu erstellen:
Da Sie Cluster im GKE Autopilot-Modus verwenden, kann es einige Minuten dauern, bis Ihr GPU-fähiger Knoten gestartet wird.
Überwachen Sie den Job mit folgendem Befehl:
Prüfen Sie die Logs des Jobs mit dem folgenden Befehl:
Die Jobressource lädt die Modelldaten herunter und optimiert das Modell dann auf allen acht GPUs. Der Download dauert etwa fünf Minuten. Nach dem Download dauert das Feinabstimmungsverfahren etwa zweieinhalb Stunden.
Arbeitslast überwachen
Sie können die Nutzung der GPUs in Ihrem GKE-Cluster überwachen, um zu prüfen, ob Ihr Fine-Tuning-Job effizient ausgeführt wird. Öffnen Sie dazu den folgenden Link in Ihrem Browser:
Wenn Sie Ihre Arbeitslast überwachen, sehen Sie Folgendes:
- GPU-Nutzung: Bei einem ordnungsgemäß ausgeführten Fine-Tuning-Job sollte die Nutzung aller 8 GPUs während des gesamten Trainings auf ein hohes Niveau ansteigen und sich dort stabilisieren.
- Job-Dauer: Die Ausführung des Jobs sollte auf dem angegebenen A4-Cluster etwa 10 Minuten dauern.
Bereinigen
Damit Ihrem Google Cloud-Konto die in dieser Anleitung verwendeten Ressourcen nicht in Rechnung gestellt werden, löschen Sie entweder das Projekt, das die Ressourcen enthält, oder Sie behalten das Projekt und löschen die einzelnen Ressourcen.
Ressourcen löschen
Führen Sie den folgenden Befehl aus, um den Fine-Tuning-Job zu löschen:
Führen Sie den folgenden Befehl aus, um Ihren GKE-Cluster zu löschen:
Projekt löschen
Google Cloud -Projekt löschen:
gcloud projects delete PROJECT_ID