Con i cluster di addestramento gestiti su Gemini Enterprise Agent Platform, puoi visualizzare i log di addestramento quasi in tempo reale utilizzando Vertex AI TensorBoard. Basta configurare il workload in modo che salvi 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 disporre di quanto segue:
- Un cluster di cluster di addestramento gestiti in esecuzione.
- Un bucket Cloud Storage per archiviare i log di TensorBoard. Questo bucket deve trovarsi nella stessa regione dell'istanza TensorBoard. Per istruzioni sulla configurazione, consulta Crea un bucket Cloud Storage.
- Un'istanza di Vertex AI TensorBoard. Per istruzioni sulla 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).
Abilitazione del caricamento di TensorBoard
Per configurare l'integrazione di TensorBoard per il tuo job, passa i seguenti argomenti utilizzando il flag --extra nell'invio del job Slurm:
tensorboard_base_output_dir: specifica il percorso di 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 omesso, viene utilizzata l'istanza 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
Scrittura dei log dal job di addestramento
All'interno dello 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 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. Questo è necessario perché gcsfuse sincronizza i file di log con Cloud Storage solo dopo che sono stati chiusi. Questa tecnica di "flushing" garantisce che i risultati intermedi siano visibili nella console TensorBoard prima del completamento del job.
Visualizzazione di Vertex AI TensorBoard
Una volta inviato il job, puoi monitorarne l'avanzamento andando alla pagina Esperimenti su Gemini Enterprise Agent Platform nella console Google Cloud .
Passaggi successivi
Analizza le metriche di addestramento, visualizza i grafici dei modelli e profila le prestazioni 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 su un endpoint 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 creare versioni, monitorare e confrontare i modelli addestrati, in modo da mantenere la governance e la riproducibilità dei modelli.
- Configura il monitoraggio del modello: dopo il deployment, monitora il modello per rilevare eventuali deviazioni delle prestazioni e anomalie dei dati per contribuire a mantenere l'efficacia del modello in produzione.
- Ottimizza i costi e gestisci il cluster: esamina 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.