In dieser Anleitung wird beschrieben, wie Sie ein Gemma 3-Modell mit dem Ray-Framework in einem GKE-Cluster mit mehreren Knoten abstimmen. Der Cluster verwendet zwei virtuelle A4-Maschinen (VM), an die jeweils acht NVIDIA B200-GPUs angehängt sind.
Der Inhalt dieser Anleitung ist in zwei Teile unterteilt:
- Ray-Cluster auf einem GKE Autopilot-Cluster vorbereiten.
- Ausführen eines verteilten Trainingsjobs mit 2 A4-Instanzen mit jeweils 8 B200-GPUs.
Diese Anleitung richtet sich an Entwickler von maschinellem Lernen (ML), Forscher, Plattformadministratoren und ‑betreiber sowie an Daten- und KI-Spezialisten, die daran interessiert sind, eine KI-Arbeitslast auf mehrere Knoten und GPUs zu verteilen.
Ziele
Über Hugging Face auf ein Gemma 3-Modell zugreifen
Bereiten Sie Ihre Umgebung vor.
Erstellen Sie einen GKE Autopilot-Cluster mit installiertem Ray-Operator.
Konfigurieren Sie den Ray-Cluster im GKE-Cluster so, dass Ray-Jobs akzeptiert werden.
Konfigurieren und führen Sie einen Ray-Job aus, mit dem das Gemma 3-Modell auf Grundlage visueller Eingaben optimiert wird.
Arbeitslast ü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 erforderliche API:
Rollen, die zum Aktivieren von APIs erforderlich sind
Zum Aktivieren von APIs benötigen Sie die Berechtigung
serviceusage.services.enable. Wenn Sie das Projekt erstellt haben, haben Sie diese Berechtigung wahrscheinlich bereits über die Rolle „Inhaber“ (roles/owner). Andernfalls können Sie diese Berechtigung über die Rolle „Service Usage-Administrator“ (roles/serviceusage.serviceUsageAdmin) erhalten. Informationen zum Zuweisen von Rollengcloud services enable compute.googleapis.com logging.googleapis.com cloudresourcemanager.googleapis.com servicenetworking.googleapis.com container.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 erforderliche API:
Rollen, die zum Aktivieren von APIs erforderlich sind
Zum Aktivieren von APIs benötigen Sie die Berechtigung
serviceusage.services.enable. Wenn Sie das Projekt erstellt haben, haben Sie diese Berechtigung wahrscheinlich bereits über die Rolle „Inhaber“ (roles/owner). Andernfalls können Sie diese Berechtigung über die Rolle „Service Usage-Administrator“ (roles/serviceusage.serviceUsageAdmin) erhalten. Informationen zum Zuweisen von Rollengcloud services enable compute.googleapis.com logging.googleapis.com cloudresourcemanager.googleapis.com servicenetworking.googleapis.com container.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/file.editor, roles/storage.admin, roles/container.clusterAdmin, 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:
gcloud iam service-accounts enable PROJECT_NUMBER-compute@developer.gserviceaccount.com \ --project=PROJECT_ID
Ersetzen Sie PROJECT_NUMBER durch die Projekt-ID. Informationen zum Abrufen Ihrer Projektnummer finden Sie unter Vorhandenes Projekt abrufen.
- 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
- 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:
Einwilligungsvereinbarung unterzeichnen, um Gemma 3 zu verwenden
Kopieren und speichern Sie den
read access-Tokenwert. Sie benötigen sie später in dieser Anleitung.
Umgebung vorbereiten
Bereiten Sie Ihre Umgebung vor, indem Sie die erforderlichen Einstellungen konfigurieren und die Umgebungsvariablen festlegen.
Führen Sie den folgenden Befehl aus:
Ersetzen Sie Folgendes:
YOUR_PROJECT_ID: Der Name des Google Cloud ProjektsYOUR_PROJECT_ID, in dem Sie den GKE-Cluster erstellen möchten.YOUR_RESERVATION_ID: die URL der Reservierung, die Sie zum Erstellen des Clusters verwenden möchten. Geben Sie je nach Projekt, in dem die Reservierung vorhanden ist, einen der folgenden Werte an:- Die Reservierung ist in Ihrem Projekt vorhanden: Geben Sie den Namen der Reservierung an, z.B.
my-reservation. - Die Reservierung ist in einem anderen Projekt vorhanden: Geben Sie den vollständigen Pfad im Format
projects/RESERVATION_PROJECT_ID/reservations/RESERVATION_NAMEan.
- Die Reservierung ist in Ihrem Projekt vorhanden: Geben Sie den Namen der Reservierung an, z.B.
YOUR_REGION: die Region, in der Sie Ihren GKE-Cluster erstellen möchten. Sie können den Cluster nur in der Region erstellen, in der sich Ihre Reservierung befindet.YOUR_CLUSTER_NAME: Der Name des zu erstellenden GKE-Cluster.HUGGING_FACE_TOKEN: das Hugging Face-Token, das Sie in einem früheren Schritt erstellt haben.YOUR_RAY_SA: Der Name des Dienstkontos im Kubernetes-Cluster.YOUR_GSA_NAME: der Name des Google-Dienstkontos.YOUR_GCS_BUCKET: Der Name des Buckets, in dem Sie die Ergebnisse des Trainings-Checkpoints speichern.
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. Wenn Sie prüfen möchten, ob Google Cloud die Erstellung Ihres Clusters abgeschlossen hat, rufen Sie in der Google Cloud Console die Seite Kubernetes-Cluster auf.
Kubernetes-Secret für Hugging Face-Anmeldedaten erstellen
So erstellen Sie in Cloud Shell ein Kubernetes-Secret für Hugging Face-Anmeldedaten:
Konfigurieren Sie
kubectl, um eine Verbindung zu Ihrem Cluster herzustellen:Erstellen Sie ein Kubernetes-Secret zum Speichern Ihres Hugging Face-Tokens:
Cloud Storage-Bucket erstellen
Wenn Sie einen neuen Bucket zum Speichern Ihrer Trainingsartefakte verwenden möchten, führen Sie Folgendes aus:
Wenn Sie einen vorhandenen Bucket verwenden möchten, können Sie diesen Schritt überspringen. Sie müssen jedoch darauf achten, dass sich Ihr Bucket in derselben Region wie Ihr Cluster befindet.
IAM-Dienstkonto erstellen
Führen Sie in Cloud Shell die folgenden Schritte aus, um ein IAM-Dienstkonto (auch als Google-Dienstkonto oder GSA bezeichnet) zu erstellen und ihm Berechtigungen für den Zugriff auf Ihren Cloud Storage-Bucket zu erteilen:
Erstellen Sie ein IAM-Dienstkonto:
Weisen Sie Ihrem IAM-Dienstkonto für Ihren Cloud Storage-Bucket die Rolle „Storage-Administrator“ (
roles/storage.admin) zu:
Kubernetes-Dienstkonto erstellen
Erstellen Sie in Cloud Shell ein Kubernetes-Dienstkonto und konfigurieren Sie Workload Identity, um Ray-Pods Zugriff auf Google Cloud -Ressourcen zu gewähren:
Erstellen Sie ein Kubernetes-Dienstkonto:
Binden Sie Ihr Kubernetes-Dienstkonto an das IAM-Dienstkonto, das Sie zuvor zum Aktivieren von Workload Identity erstellt haben:
Kennzeichnen Sie Ihr Kubernetes-Dienstkonto mit der E-Mail-Adresse des IAM-Dienstkontos:
Trainingscode als ConfigMap speichern
Damit Sie Ihr Trainingsskript nicht in ein Container-Image einbetten müssen, speichern Sie es als ConfigMap in Ihrem Cluster. Diese ConfigMap wird in die Pod-Dateisysteme eingebunden. So können Sie das Trainingsskript aktualisieren, ohne den gesamten Ray-Cluster neu erstellen zu müssen.
Führen Sie die folgenden Schritte aus, um Ihr Trainingsskript als ConfigMap in Ihrem Cluster zu speichern:
Erstellen Sie ein Verzeichnis mit dem Namen
codeund darin eine Datei mit dem Namenvision_train.py.Kopieren Sie den folgenden Code in die Datei
vision_train.py:Speichern Sie die Datei.
Erstellen Sie ein ConfigMap-Objekt in Ihrem Cluster:
Wenn Sie das Trainingsskript aktualisieren möchten, führen Sie den vorherigen Befehl noch einmal aus. Es kann eine Minute dauern, bis Änderungen auf alle Pods übertragen werden.
Ray-Cluster konfigurieren
Um einen Ray-Cluster in Ihrem GKE-Cluster zu erstellen, speichern Sie das folgende YAML als Datei mit dem Namen
ray_cluster.yaml.Wenden Sie diese YAML-Definition mit dem folgenden Befehl auf Ihren Cluster an:
Das Flag$RESERVATIONwird automatisch durch den Namen ersetzt, den Sie als Umgebungsvariable konfiguriert haben.Der Ray-Operator erstellt die Raylet-Pods, was wiederum das Autoscaling des Clusters auslöst, um diese Pods mit den entsprechenden Knoten zu versehen. In Ihrem Cluster werden drei Pods erstellt: ein Head-Knoten und zwei Worker-Knoten. Die Worker-Knoten sind mit B200-GPUs ausgestattet.
Führen Sie den folgenden Befehl aus, um zu prüfen, ob alle drei Pods bereit sind:
Die Pod-Liste eines einsatzbereiten Ray-Clusters sieht in etwa so aus:NAME READY STATUS RESTARTS AGE gemma3-tuning-gpu-group-worker-s4h8f 2/2 Running 0 16m gemma3-tuning-gpu-group-worker-stg5f 2/2 Running 0 5m34s gemma3-tuning-head-zbdvp 2/2 Running 0 16m
Trainingsjob planen
Speichern Sie Folgendes als
ray_job.yaml-Datei:Senden Sie die RayJob-Definition an Ihren RayCluster:
Prüfen Sie, ob sich ein neuer Pod in Ihrem Cluster befindet:
Notieren Sie sich den vollständigen Namen des
test-ray-job--Pods, der in der Ausgabe angezeigt wird. Dieser Name ist für Ihren Job eindeutig.Überprüfen Sie den Fortschritt Ihres Trainings. Ersetzen Sie
gemma-training-ray-job-UNIQUE_IDdurch den eindeutigen Pod-Namen, den Sie im vorherigen Schritt notiert haben.Die Ausgabe sieht in etwa so aus:
2025-08-20 08:29:34,966 INFO cli.py:41 -- Job submission server address: http://gemma3-tuning-head-svc.default.svc.cluster.local:8265 2025-08-20 08:29:34,991 SUCC cli.py:65 -- ----------------------------------------------- 2025-08-20 08:29:34,991 SUCC cli.py:66 -- Job 'test-ray-job-82mm7' submitted successfully 2025-08-20 08:29:34,991 SUCC cli.py:67 -- ----------------------------------------------- 2025-08-20 08:29:34,992 INFO cli.py:291 -- Next steps 2025-08-20 08:29:34,992 INFO cli.py:292 -- Query the logs of the job: 2025-08-20 08:29:34,992 INFO cli.py:294 -- ray job logs test-ray-job-82mm7 2025-08-20 08:29:34,992 INFO cli.py:296 -- Query the status of the job: 2025-08-20 08:29:34,992 INFO cli.py:298 -- ray job status test-ray-job-82mm7 2025-08-20 08:29:34,992 INFO cli.py:300 -- Request the job to be stopped: 2025-08-20 08:29:34,992 INFO cli.py:302 -- ray job stop test-ray-job-82mm7 2025-08-20 08:29:35,003 INFO cli.py:312 -- Tailing logs until the job exits (disable with --no-wait): 2025-08-20 08:29:34,982 INFO job_manager.py:531 -- Runtime env is setting up. Starting training task! Commencing training! 2025-08-20 08:30:08,498 INFO worker.py:1606 -- Using address 10.76.0.17:6379 set in the environment variable RAY_ADDRESS 2025-08-20 08:30:08,506 INFO worker.py:1747 -- Connecting to existing Ray cluster at address: 10.76.0.17:6379... 2025-08-20 08:30:08,527 INFO worker.py:1918 -- Connected to Ray cluster. View the dashboard at 10.76.0.17:8265 2025-08-20 08:30:08,701 INFO tune.py:253 -- Initializing Ray automatically. For cluster usage or custom Ray initialization, call `ray.init(...)` before `<FrameworkTrainer>(...)`. 2025-08-20 08:30:08,951 WARNING tune_controller.py:2132 -- The maximum number of pending trials has been automatically set to the number of available cluster CPUs, which is high (519 CPUs/pending trials). If you're running an experiment with a large number of trials, this could lead to scheduling overhead. In this case, consider setting the `TUNE_MAX_PENDING_TRIALS_PG` environment variable to the desired maximum number of concurrent pending trials. 2025-08-20 08:30:08,953 WARNING tune_controller.py:2132 -- The maximum number of pending trials has been automatically set to the number of available cluster CPUs, which is high (519 CPUs/pending trials). If you're running an experiment with a large number of trials, this could lead to scheduling overhead. In this case, consider setting the `TUNE_MAX_PENDING_TRIALS_PG` environment variable to the desired maximum number of concurrent pending trials. View detailed results here: YOUR_GCS_BUCKET/gemma_vision_train_2025_08_20_08_30_07 To visualize your results with TensorBoard, run: `tensorboard --logdir /tmp/ray/session_2025-08-20_04-43-14_215096_1/artifacts/2025-08-20_08-30-08/gemma_vision_train_2025_08_20_08_30_07/driver_artifacts` Training started with configuration: ╭──────────────────────────────────────────────────────────────────────╮ │ Training config │ ├──────────────────────────────────────────────────────────────────────┤ │ train_loop_config/dataset_name ...-descriptions-vlm │ │ train_loop_config/gcs_bucket ...-bucket-yooo-west │ │ train_loop_config/gradient_accumulation_steps 4 │ │ train_loop_config/learning_rate 0.0002 │ │ train_loop_config/logging_steps 10 │ │ train_loop_config/lora_alpha 16 │ │ train_loop_config/lora_dropout 0.05 │ │ train_loop_config/lora_r 16 │ │ train_loop_config/max_seq_length 512 │ │ train_loop_config/model_id google/gemma-3-4b-it │ │ train_loop_config/num_train_epochs 3 │ │ train_loop_config/output_dir ...-4b-seo-optimized │ │ train_loop_config/per_device_train_batch_size 1 │ │ train_loop_config/push_to_hub False │ │ train_loop_config/save_steps 100 │ │ train_loop_config/save_strategy epoch │ ╰──────────────────────────────────────────────────────────────────────╯ (RayTrainWorker pid=45455, ip=10.76.0.71) Setting up process group for: env:// [rank=0, world_size=16] (TorchTrainer pid=45197, ip=10.76.0.71) Started distributed worker processes: (TorchTrainer pid=45197, ip=10.76.0.71) - (node_id=4c934ab2f646a578b03cc335586f30b943e811b645526a74c50bfca1, ip=10.76.0.71, pid=45455) world_rank=0, local_rank=0, node_rank=0 (TorchTrainer pid=45197, ip=10.76.0.71) - (node_id=4c934ab2f646a578b03cc335586f30b943e811b645526a74c50bfca1, ip=10.76.0.71, pid=45450) world_rank=1, local_rank=1, node_rank=0 (TorchTrainer pid=45197, ip=10.76.0.71) - (node_id=4c934ab2f646a578b03cc335586f30b943e811b645526a74c50bfca1, ip=10.76.0.71, pid=45454) world_rank=2, local_rank=2, node_rank=0 (TorchTrainer pid=45197, ip=10.76.0.71) - (node_id=4c934ab2f646a578b03cc335586f30b943e811b645526a74c50bfca1, ip=10.76.0.71, pid=45448) world_rank=3, local_rank=3, node_rank=0 (TorchTrainer pid=45197, ip=10.76.0.71) - (node_id=4c934ab2f646a578b03cc335586f30b943e811b645526a74c50bfca1, ip=10.76.0.71, pid=45453) world_rank=4, local_rank=4, node_rank=0 (TorchTrainer pid=45197, ip=10.76.0.71) - (node_id=4c934ab2f646a578b03cc335586f30b943e811b645526a74c50bfca1, ip=10.76.0.71, pid=45452) world_rank=5, local_rank=5, node_rank=0 (TorchTrainer pid=45197, ip=10.76.0.71) - (node_id=4c934ab2f646a578b03cc335586f30b943e811b645526a74c50bfca1, ip=10.76.0.71, pid=45451) world_rank=6, local_rank=6, node_rank=0 (TorchTrainer pid=45197, ip=10.76.0.71) - (node_id=4c934ab2f646a578b03cc335586f30b943e811b645526a74c50bfca1, ip=10.76.0.71, pid=45449) world_rank=7, local_rank=7, node_rank=0 (TorchTrainer pid=45197, ip=10.76.0.71) - (node_id=c0db52b44f891f3d6a1cedcbea4c6beb2c8434c66ef414dc15e65743, ip=10.76.0.135, pid=45729) world_rank=8, local_rank=0, node_rank=1 (TorchTrainer pid=45197, ip=10.76.0.71) - (node_id=c0db52b44f891f3d6a1cedcbea4c6beb2c8434c66ef414dc15e65743, ip=10.76.0.135, pid=45726) world_rank=9, local_rank=1, node_rank=1 (TorchTrainer pid=45197, ip=10.76.0.71) - (node_id=c0db52b44f891f3d6a1cedcbea4c6beb2c8434c66ef414dc15e65743, ip=10.76.0.135, pid=45728) world_rank=10, local_rank=2, node_rank=1 (TorchTrainer pid=45197, ip=10.76.0.71) - (node_id=c0db52b44f891f3d6a1cedcbea4c6beb2c8434c66ef414dc15e65743, ip=10.76.0.135, pid=45727) world_rank=11, local_rank=3, node_rank=1 (TorchTrainer pid=45197, ip=10.76.0.71) - (node_id=c0db52b44f891f3d6a1cedcbea4c6beb2c8434c66ef414dc15e65743, ip=10.76.0.135, pid=45725) world_rank=12, local_rank=4, node_rank=1 (TorchTrainer pid=45197, ip=10.76.0.71) - (node_id=c0db52b44f891f3d6a1cedcbea4c6beb2c8434c66ef414dc15e65743, ip=10.76.0.135, pid=45724) world_rank=13, local_rank=5, node_rank=1 (TorchTrainer pid=45197, ip=10.76.0.71) - (node_id=c0db52b44f891f3d6a1cedcbea4c6beb2c8434c66ef414dc15e65743, ip=10.76.0.135, pid=45723) world_rank=14, local_rank=6, node_rank=1 (TorchTrainer pid=45197, ip=10.76.0.71) - (node_id=c0db52b44f891f3d6a1cedcbea4c6beb2c8434c66ef414dc15e65743, ip=10.76.0.135, pid=45722) world_rank=15, local_rank=7, node_rank=1 ... Training finished iteration 3 at 2025-08-20 08:40:43. Total running time: 10min 34s ╭─────────────────────────────────────────╮ │ Training result │ ├─────────────────────────────────────────┤ │ checkpoint_dir_name checkpoint_000002 │ │ time_this_iter_s 152.6374 │ │ time_total_s 525.88585 │ │ training_iteration 3 │ │ epoch 2.75294 │ │ grad_norm 47.27161 │ │ learning_rate 0.0002 │ │ loss 22.5275 │ │ mean_token_accuracy 0.90325 │ │ num_tokens 1583017. │ │ step 60 │ ╰─────────────────────────────────────────╯ ... Training completed after 3 iterations at 2025-08-20 08:40:52. Total running time: 10min 43s 2025-08-20 08:40:53,113 INFO tune.py:1009 -- Wrote the latest version of all result files and experiment state to 'YOUR_GCS_BUCKET/gemma_vision_train_2025_08_20_08_30_07' in 0.1663s. 2025-08-20 08:40:58,304 SUCC cli.py:65 -- ---------------------------------- 2025-08-20 08:40:58,305 SUCC cli.py:66 -- Job 'test-ray-job-82mm7' succeeded 2025-08-20 08:40:58,305 SUCC cli.py:67 -- ----------------------------------Arbeitslast überwachen
Mit dem Dashboard in Ray können Sie die Arbeitslasten überwachen, die in Ihrem Cluster geplant sind.
Um auf dieses Dashboard zuzugreifen, müssen Sie die Portweiterleitung zu Ihrem Cluster einrichten. Führen Sie dazu den folgenden Befehl in einem neuen Terminalfenster aus:
Öffnen Sie den folgenden Link in Ihrem Browser:
http://localhost:8265.Wenn Sie Cloud Shell verwenden, können Sie nach dem Ausführen des Befehls im vorherigen Schritt optional auf den Button Webvorschau klicken.
Wählen Sie die Option Port ändern aus, geben Sie
8265ein und klicken Sie dann auf Ändern und Vorschau. Das Ray-Dashboard wird in einem neuen Tab geöffnet.
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 Ray-Cluster zu löschen und den GPU-basierten Knoten freizugeben:
GKE skaliert Ihren Cluster automatisch herunter und gibt die von Ray verwendeten A4-Maschinen frei.Führen Sie den folgenden Befehl aus, um den gesamten GKE-Cluster zu löschen:
Führen Sie den folgenden Befehl aus, um den gesamten Cloud Storage-Bucket mit allen Inhalten zu löschen:
Projekt löschen
Google Cloud -Projekt löschen:
gcloud projects delete PROJECT_ID