Fazer upload de registros para o TensorBoard da Vertex AI

É possível fazer upload de registros para sua instância do TensorBoard da Vertex AI que foram criados por treinamento local, treinamentos fora da Vertex AI, criados por um colega, registros de exemplo ou criados usando um instância do TensorBoard. Os registros podem ser compartilhados entre várias instâncias do TensorBoard da Vertex AI.

O TensorBoard da Vertex AI oferece a CLI do Google Cloud e o SDK da Vertex AI para Python para fazer upload de registros do TensorBoard. É possível fazer upload de registros de qualquer ambiente que possa se conectar ao Google Cloud.

SDK da Vertex AI para Python

Monitoramento contínuo

Para fazer o monitoramento contínuo, chame aiplatform.start_upload_tb_log no início do treinamento. O SDK abre uma nova linha de execução para upload. Essa linha de execução monitora novos dados no diretório e faz upload deles para seu experimento do TensorBoard da Vertex AI. Quando o treinamento for concluído, chame end_upload_tb_log para encerrar a linha de execução do usuário que fez o envio.

Observe que, depois de chamar start_upload_tb_log(), sua linha de execução vai continuar ativa mesmo que uma exceção seja gerada. Para garantir que a linha de execução seja encerrada, coloque qualquer código depois de start_upload_tb_log() e antes de end_upload_tb_log() em uma instrução try e chame end_upload_tb_log() em finally.

Python

from typing import Optional

from google.cloud import aiplatform


def upload_tensorboard_log_continuously_sample(
    tensorboard_experiment_name: str,
    logdir: str,
    tensorboard_id: str,
    project: str,
    location: str,
    experiment_display_name: Optional[str] = None,
    run_name_prefix: Optional[str] = None,
    description: Optional[str] = None,
) -> None:

    aiplatform.init(project=project, location=location)

    # Continuous monitoring
    aiplatform.start_upload_tb_log(
        tensorboard_id=tensorboard_id,
        tensorboard_experiment_name=tensorboard_experiment_name,
        logdir=logdir,
        experiment_display_name=experiment_display_name,
        run_name_prefix=run_name_prefix,
        description=description,
    )

    try:
        print("Insert your code here")
    finally:
        aiplatform.end_upload_tb_log()

  • tensorboard_experiment_name: o nome do experimento do TensorBoard para o qual será feito upload.
  • logdir: o local do diretório para verificar os registros do TensorBoard.
  • tensorboard_id: o ID da instância do TensorBoard. Se não for definido, o tensorboard_id em aiplatform.init será usado.
  • project: o ID do projeto. Você encontra o ID do projeto na página de boas-vindas do console do Google Cloud.
  • location: a região em que sua instância do TensorBoard está localizada.
  • experiment_display_name: o nome de exibição do experimento.
  • run_name_prefix: se presente, todas as execuções criadas por esta invocação terão o nome prefixado por esse valor.
  • description: uma descrição de string para atribuir ao experimento.

Geração de registros única

Fazer upload de registros do TensorBoard

Chame aiplatform.upload_tb_log para fazer um upload único dos registros do TensorBoard. Isso carrega os dados existentes no logdir e retorna imediatamente.

Python

from typing import Optional

from google.cloud import aiplatform


def upload_tensorboard_log_one_time_sample(
    tensorboard_experiment_name: str,
    logdir: str,
    tensorboard_id: str,
    project: str,
    location: str,
    experiment_display_name: Optional[str] = None,
    run_name_prefix: Optional[str] = None,
    description: Optional[str] = None,
    verbosity: Optional[int] = 1,
) -> None:

    aiplatform.init(project=project, location=location)

    # one time upload
    aiplatform.upload_tb_log(
        tensorboard_id=tensorboard_id,
        tensorboard_experiment_name=tensorboard_experiment_name,
        logdir=logdir,
        experiment_display_name=experiment_display_name,
        run_name_prefix=run_name_prefix,
        description=description,
    )

  • tensorboard_experiment_name: o nome do experimento do TensorBoard.
  • logdir: o local do diretório para verificar os registros do TensorBoard.
  • tensorboard_id: o ID da instância do TensorBoard. Se não for definido, o tensorboard_id em aiplatform.init será usado.
  • project: o ID do projeto. Esses IDs do projeto estão na página de boas-vindas do console do Google Cloud.
  • location: a região em que sua instância do TensorBoard está localizada.
  • experiment_display_name: o nome de exibição do experimento.
  • run_name_prefix: se presente, todas as execuções criadas por esta invocação terão o nome prefixado por esse valor.
  • description: uma descrição de string para atribuir ao experimento.
  • verbosity: nível de detalhamento das estatísticas, um número inteiro. Valores compatíveis: 0: nenhuma estatística de upload é impressa. 1 - Imprimir estatísticas durante o upload de dados (padrão).

Fazer upload de registros do perfil

Chame aiplatform.upload_tb_log para fazer upload dos registros de perfil do TensorBoard para um experimento.

Python

from typing import FrozenSet

from google.cloud import aiplatform


def upload_tensorboard_profile_logs_to_experiment_sample(
    experiment_name: str,
    logdir: str,
    project: str,
    location: str,
    run_name_prefix: str,
    allowed_plugins: FrozenSet[str] = ["profile"],
) -> None:

    aiplatform.init(project=project, location=location, experiment=experiment_name)

    # one time upload
    aiplatform.upload_tb_log(
        tensorboard_experiment_name=experiment_name,
        logdir=logdir,
        run_name_prefix=run_name_prefix,
        allowed_plugins=allowed_plugins,
    )

  • experiment_name: o nome do experimento do TensorBoard.
  • logdir: o local do diretório para verificar os registros do TensorBoard.
  • project: o ID do projeto. Essas IDs do projeto estão na página de boas-vindas do console do Google Cloud.
  • location: o local em que sua instância do TensorBoard está localizada.
  • run_name_prefix: para dados de perfil, é o prefixo de execução. O formato do diretório em LOG_DIR precisa corresponder ao seguinte:
    • /RUN_NAME_PREFIX/plugins/profile/YYYY_MM_DD_HH_SS/
  • allowed_plugins: uma lista de plug-ins adicionais a serem permitidos. Para fazer o upload de dados do perfil, inclua "profile".

CLI da gcloud

  1. (Opcional) Crie um ambiente virtual dedicado para instalar a CLI Python do upload do TensorBoard da Vertex AI.
    python3 -m venv PATH/TO/VIRTUAL/ENVIRONMENT
    source PATH/TO/VIRTUAL/ENVIRONMENT/bin/activate
    
    • PATH/TO/VIRTUAL/ENVIRONMENT: seu ambiente virtual dedicado.
  2. Instalar o TensorBoard Uploader da Vertex AI pelo SDK do Vertex AI
    pip install -U pip
    pip install google-cloud-aiplatform[tensorboard]
    
  3. Faça upload dos registros do TensorBoard
    1. Dados de série temporal e blob
      tb-gcp-uploader --tensorboard_resource_name \
      TENSORBOARD_RESOURCE_NAME \
      --logdir=LOG_DIR \
      --experiment_name=TB_EXPERIMENT_NAME --one_shot=True
      
    2. Dados de perfil
      tb-gcp-uploader \
      --tensorboard_resource_name TENSORBOARD_RESOURCE_NAME \
      --logdir=LOG_DIR --experiment_name=TB_EXPERIMENT_NAME \
      --allowed_plugins="profile" --run_name_prefix=RUN_NAME_PREFIX \
      --one_shot=True
      
    • TENSORBOARD_RESOURCE_NAME: o nome do recurso do TensorBoard usado para identificar totalmente a instância do TensorBoard da Vertex AI.
    • LOG_DIR: o local dos logs de eventos, que fica no sistema de arquivos local ou no Cloud Storage
    • TB_EXPERIMENT_NAME: o nome do experimento do TensorBoard, por exemplo, test-experiment.
    • RUN_NAME_PREFIX: para dados de perfil, é o prefixo de execução. O formato do diretório em LOG_DIR precisa corresponder ao seguinte:
      • /RUN_NAME_PREFIX/plugins/profile/YYYY_MM_DD_HH_SS/

Por padrão, a CLI do usuário que fez o envio é executada indefinidamente, monitorando alterações no LOG_DIR e faz upload de registros recém-adicionados. --one_shot=True desativa o comportamento. Execute tb-gcp-uploader --help para mais informações.