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.
- Implante o modelo para inferência: implante o modelo treinado em um endpoint da plataforma de agentes do Gemini Enterprise para atender solicitações de inferência on-line.
- Gerencie o ciclo de vida do modelo: use o Model Registry da Gemini Enterprise Agent Platform para versionar, rastrear e comparar os modelos treinados, o que ajuda a manter a governança e a reprodutibilidade do modelo.
- Configure o monitoramento de modelos: após a implantação, monitore o modelo em busca de desvio de desempenho e anomalias de dados para ajudar a manter a eficácia do modelo na produção.
- Otimize os custos e gerencie o cluster: analise regularmente a utilização do cluster e gerencie o ciclo de vida dele (por exemplo, exclua o cluster quando não estiver em uso) para otimizar os custos do hardware reservado.