Visualizar jobs com o TensorBoard da Vertex AI

Se você tiver interesse no treinamento gerenciado da Gemini Enterprise Agent Platform, entre em contato com seu representante de vendas para ter acesso.

Com o treinamento gerenciado, é possível visualizar os registros de treinamento quase em tempo real usando o TensorBoard da Vertex AI. Basta configurar sua carga de trabalho para salvar registros em um bucket do Cloud Storage, e eles serão transmitidos automaticamente para a interface do TensorBoard para análise.

Pré-requisitos

Antes de começar, verifique se você tem o seguinte:

  • Um cluster de treinamento gerenciado em execução.
  • Um bucket do Cloud Storage para armazenar os registros do TensorBoard. Esse bucket precisa estar na mesma região da instância do TensorBoard. Para instruções de configuração, consulte Criar um bucket do Cloud Storage.
  • Uma instância do TensorBoard da Vertex AI. Para instruções de criação, consulte Criar uma instância do TensorBoard da Vertex AI.
  • As permissões corretas do IAM. Para permitir que o Cloud Storage FUSE leia e grave no bucket de armazenamento, a conta de serviço usada pelas VMs do cluster precisa da função Usuário de objetos do Storage (roles/storage.objectUser).

Como ativar o upload do TensorBoard

Para configurar a integração do TensorBoard para seu job, transmita os seguintes argumentos usando a flag --extra no envio do job do Slurm:

  • tensorboard_base_output_dir: especifica o caminho do Cloud Storage para fazer upload dos registros. Por exemplo, gs://my-bucket/my-logs.

  • tensorboard_url: especifica a instância do TensorBoard da Vertex AI, o experimento ou o URL de execução. Se apenas uma instância for fornecida, um novo experimento e execução serão criados. Se omitido, a instância padrão do TensorBoard para o projeto será usada. Por exemplo, projects/123/locations/us-central1/tensorboards/456.

Exemplo

# 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

Como gravar registros do job de treinamento

No script de treinamento, acesse a variável de ambiente AIP_TENSORBOARD_LOG_DIR. Essa variável fornece o caminho exclusivo do Cloud Storage em que o script precisa gravar os registros do TensorBoard.

O caminho segue esta estrutura:

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

O exemplo a seguir mostra um fluxo de trabalho completo com dois componentes principais: o script de envio do Slurm que configura o job e o script de treinamento do Python que lê a variável de ambiente para gravar os registros.

Script de job do 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 do 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} ---")

Sincronização de registros em tempo real

Para visualizar métricas de um job em execução, é necessário fechar e recriar periodicamente o gravador de resumo no código de treinamento. Isso é necessário porque o gcsfuse só sincroniza arquivos de registro com o Cloud Storage depois que eles são fechados. Essa técnica de "liberação" garante que os resultados intermediários fiquem visíveis no console do TensorBoard antes da conclusão do job.

Como visualizar o TensorBoard da Vertex AI

Depois que o job for enviado, você poderá monitorar o progresso acessando a página Experimentos da Vertex AI no Cloud de Confiance console.

A seguir

Analise as métricas de treinamento, visualize gráficos de modelos e crie perfis de desempenho no TensorBoard da Vertex AI para depurar problemas, otimizar o modelo e prepará-lo para integração em um fluxo de trabalho completo de MLOps.