Visualizzazione dei job con Vertex AI TensorBoard

Se ti interessa l'addestramento gestito di Gemini Enterprise Agent Platform, contatta il tuo rappresentante di vendita per l'accesso.

Con l'addestramento gestito, puoi visualizzare i log di addestramento quasi in tempo reale utilizzando Vertex AI TensorBoard. Configura il carico di lavoro in modo da salvare i log in un bucket Cloud Storage e questi verranno trasmessi automaticamente all'interfaccia di TensorBoard per l'analisi.

Prerequisiti

Prima di iniziare, assicurati di avere:

  • Un cluster di addestramento gestito in esecuzione.
  • Un bucket Cloud Storage per archiviare i log di TensorBoard. Questo bucket deve trovarsi nella stessa regione dell'istanza di TensorBoard. Per le istruzioni di configurazione, consulta Creare un bucket Cloud Storage.
  • Un'istanza di Vertex AI TensorBoard. Per le istruzioni di creazione, consulta Creare un'istanza di Vertex AI TensorBoard.
  • Le autorizzazioni IAM corrette. Per consentire a Cloud Storage FUSE di leggere e scrivere nel bucket di archiviazione, il account di servizio utilizzato dalle VM del cluster richiede il ruolo Storage Object User (roles/storage.objectUser).

Abilitare il caricamento di TensorBoard

Per configurare l'integrazione di TensorBoard per il job, trasmetti i seguenti argomenti utilizzando il flag --extra nell'invio del job Slurm:

  • tensorboard_base_output_dir: specifica il percorso Cloud Storage in cui caricare i log. Ad esempio, gs://my-bucket/my-logs.

  • tensorboard_url: specifica l'URL dell'istanza, dell'esperimento o dell'esecuzione di Vertex AI TensorBoard. Se viene fornita solo un'istanza, vengono creati un nuovo esperimento e una nuova esecuzione. Se omessa, viene utilizzata l'istanza di TensorBoard predefinita per il progetto. Ad esempio, projects/123/locations/us-central1/tensorboards/456.

Esempio

# 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

Scrivere i log dal job di addestramento

Nello script di addestramento, accedi alla variabile di ambiente AIP_TENSORBOARD_LOG_DIR. Questa variabile fornisce il percorso Cloud Storage univoco in cui lo script deve scrivere i log di TensorBoard.

Il percorso segue questa struttura:

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

L'esempio seguente mostra un workflow completo con due componenti chiave: lo script di invio di Slurm che configura il job e lo script di addestramento Python che legge la variabile di ambiente per scrivere i log.

Script del job Slurm (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

Script Python (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} ---")

Sincronizzazione dei log in tempo reale

Per visualizzare le metriche di un job in esecuzione, devi chiudere e ricreare periodicamente il writer di riepilogo nel codice di addestramento. Questa operazione è necessaria perché gcsfuse sincronizza i file di log con Cloud Storage solo dopo che sono stati chiusi. Questa tecnica di "svuotamento" garantisce che i risultati intermedi siano visibili nella console di TensorBoard prima del completamento del job.

Visualizzare Vertex AI TensorBoard

Una volta inviato il job, puoi monitorarne l'avanzamento accedendo a la pagina Esperimenti di Vertex AI nella Cloud de Confiance console.

Passaggi successivi

Analizza le metriche di addestramento, visualizza i grafici dei modelli e profila il rendimento in Vertex AI TensorBoard per eseguire il debug dei problemi, ottimizzare il modello e prepararlo per l'integrazione in un workflow MLOps completo.