Jobs mit Vertex AI TensorBoard visualisieren

Wenn Sie an verwalteten Trainingsclustern auf der Gemini Enterprise Agent Platform interessiert sind, wenden Sie sich an Ihren Vertriebsmitarbeiter, um Zugriff zu erhalten.

Mit verwalteten Trainingsclustern auf der Gemini Enterprise Agent Platform können Sie Ihre Trainingslogs mit Vertex AI TensorBoard nahezu in Echtzeit visualisieren. Konfigurieren Sie Ihre Arbeitslast einfach so, dass Logs in einem Cloud Storage-Bucket gespeichert werden. Sie werden dann automatisch zur Analyse an die TensorBoard-Oberfläche gestreamt.

Vorbereitung

Bevor Sie beginnen, benötigen Sie Folgendes:

  • Ein laufender Cluster für verwaltete Trainingscluster.
  • Ein Cloud Storage-Bucket zum Speichern Ihrer TensorBoard-Logs. Dieser Bucket muss sich in derselben Region wie Ihre TensorBoard-Instanz befinden. Eine Anleitung zum Einrichten finden Sie unter Cloud Storage-Bucket erstellen.
  • Eine Vertex AI TensorBoard-Instanz. Eine Anleitung zum Erstellen finden Sie unter Vertex AI TensorBoard-Instanz erstellen.
  • Die richtigen IAM-Berechtigungen. Damit Cloud Storage FUSE aus dem Storage-Bucket lesen und in ihn schreiben kann, benötigt das von den VMs Ihres Clusters verwendete Dienstkonto die Rolle „Storage-Objekt-Nutzer“ (roles/storage.objectUser).

TensorBoard-Upload aktivieren

Wenn Sie die TensorBoard-Integration für Ihren Job konfigurieren möchten, übergeben Sie die folgenden Argumente mit dem Flag --extra in Ihrer Slurm-Job-Einreichung:

  • tensorboard_base_output_dir: Gibt den Cloud Storage-Pfad an, in den Logs hochgeladen werden sollen. Beispiel: gs://my-bucket/my-logs.

  • tensorboard_url: Gibt die URL der Vertex AI TensorBoard-Instanz, des Experiments oder der Ausführung an. Wenn nur eine Instanz angegeben wird, werden ein neues Experiment und ein neuer Lauf erstellt. Wenn nichts angegeben ist, wird die Standard-TensorBoard-Instanz für das Projekt verwendet. Beispiel: projects/123/locations/us-central1/tensorboards/456

Beispiel

# Using specific tensorboard instance
sbatch --extra="tensorboard_base_output_dir=<your-cloud-storage-dir>,tensorboard_url=projects/<project-id>/locations/<location>/tensorboards/<tensorboard-instance-id>" your_script.sbatch

Logs aus dem Trainingsjob schreiben

Greifen Sie in Ihrem Trainingsskript auf die Umgebungsvariable AIP_TENSORBOARD_LOG_DIR zu. Diese Variable stellt den eindeutigen Cloud Storage-Pfad bereit, in den Ihr Script seine TensorBoard-Logs schreiben soll.

Der Pfad hat folgende Struktur:

gs://<your-cloud-storage-path>/<cluster-id>-<cluster-uuid>/tensorboard/job-<job-id>/

Das folgende Beispiel zeigt einen vollständigen Workflow mit zwei Schlüsselkomponenten: dem Slurm-Übermittlungsskript, das den Job konfiguriert, und dem Python-Trainingsskript, das die Umgebungsvariable liest, um die Logs zu schreiben.

Slurm-Jobskript (simple_job.sbatch):

#!/bin/bash
#SBATCH --job-name=tensorboard-simple-test
#SBATCH --output=tensorboard-simple-test-%j.out
# Activate your Python virtual environment if needed
# source /path/to/your/venv/bin/activate
python3 simple_logger.py

Python-Script (simple_logger.py):

import tensorflow as tf
import os

# Get the log directory from the environment variable
log_dir = os.environ.get("AIP_TENSORBOARD_LOG_DIR")

print(f"Writing TensorBoard logs to: {log_dir}")
writer = tf.summary.create_file_writer(log_dir)

with writer.as_default():
    for step in range(10):
        # Simulate some metrics
        loss = 1.0 - (step * 0.1)
        accuracy = 0.6 + (step * 0.04)

        # Log the metrics
        tf.summary.scalar('loss', loss, step=step)
        tf.summary.scalar('accuracy', accuracy, step=step)
        writer.flush()
        print(f"Step {step}: loss={loss:.4f}, accuracy={accuracy:.4f}")

writer.close()
print(f"--- Finished writing metrics to {log_dir} ---")

Echtzeit-Logsynchronisierung

Wenn Sie Messwerte aus einem laufenden Job visualisieren möchten, müssen Sie den Summary Writer in Ihrem Trainingscode regelmäßig schließen und neu erstellen. Dies ist erforderlich, da gcsfuse Logdateien erst dann mit Cloud Storage synchronisiert, wenn sie geschlossen wurden. Diese „Flushing“-Technik sorgt dafür, dass Zwischenergebnisse in der TensorBoard-Konsole sichtbar sind, bevor der Job abgeschlossen ist.

Vertex AI TensorBoard ansehen

Nachdem Sie den Job gesendet haben, können Sie den Fortschritt auf der Seite Experimente auf der Gemini Enterprise Agent Platform in der Google Cloud Console verfolgen.

Nächste Schritte

Analysieren Sie Trainingsmesswerte, visualisieren Sie Modellgraphen und erstellen Sie Leistungsprofile in Vertex AI TensorBoard, um Probleme zu beheben, Ihr Modell zu optimieren und es für die Einbindung in einen vollständigen MLOps-Workflow vorzubereiten.