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.
- Esegui il deployment del modello per l'inferenza: esegui il deployment del modello addestrato in un endpoint di Gemini Enterprise Agent Platform per gestire le richieste di inferenza online.
- Gestisci il ciclo di vita del modello: utilizza Model Registry di Gemini Enterprise Agent Platform per controllare le versioni, monitorare e confrontare i modelli addestrati, il che contribuisce a mantenere la governance e la riproducibilità dei modelli.
- Configura il monitoraggio del modello: dopo il deployment, monitora il modello per rilevare la deriva del rendimento e le anomalie dei dati per contribuire a mantenere l'efficacia del modello in produzione.
- Ottimizza i costi e gestisci il cluster: rivedi regolarmente l'utilizzo del cluster e gestisci il suo ciclo di vita (ad esempio, eliminando il cluster quando non è in uso) per ottimizzare i costi dell'hardware riservato.