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.
- Modell für die Inferenz bereitstellen: Stellen Sie Ihr trainiertes Modell auf einem Gemini Enterprise Agent Platform-Endpunkt bereit, um Online-Inferenzanfragen zu verarbeiten.
- Lebenszyklus des Modells verwalten: Verwenden Sie die Model Registry der Gemini Enterprise Agent Platform, um Ihre trainierten Modelle zu versionieren, zu verfolgen und zu vergleichen. So können Sie die Modell-Governance und Reproduzierbarkeit aufrechterhalten.
- Modellmonitoring einrichten: Überwachen Sie Ihr Modell nach der Bereitstellung auf Leistungsabweichungen und Datenanomalien, um die Effektivität des Modells in der Produktion aufrechtzuerhalten.
- Kosten optimieren und Cluster verwalten: Prüfen Sie regelmäßig die Clusterauslastung und verwalten Sie den Lebenszyklus des Clusters (z. B. durch Löschen des Clusters, wenn er nicht verwendet wird), um die Kosten für reservierte Hardware zu optimieren.