Quando usa a preparação personalizada para preparar modelos, pode configurar a tarefa de preparação para carregar automaticamente os registos do Vertex AI TensorBoard para o Vertex AI TensorBoard.
Pode usar esta integração para monitorizar a sua preparação quase em tempo real à medida que o Vertex AI TensorBoard transmite os registos do Vertex AI TensorBoard à medida que são escritos no Cloud Storage.
Para a configuração inicial, consulte o artigo Configure o Vertex AI TensorBoard.
Alterações ao seu script de preparação
O seu script de preparação tem de ser configurado para escrever registos do TensorBoard no contentor do Cloud Storage, cuja localização o serviço Vertex AI Training disponibiliza automaticamente através de uma variável de ambiente predefinida AIP_TENSORBOARD_LOG_DIR.
Normalmente, pode fazê-lo fornecendo os.environ['AIP_TENSORBOARD_LOG_DIR']
como o diretório de registo às APIs de escrita de registos do TensorBoard de código aberto. Normalmente, a localização do AIP_TENSORBOARD_LOG_DIR é definida com a variável staging_bucket.
Para configurar o seu script de preparação no TensorFlow 2.x, crie um callback do TensorBoard e defina a variável log_dir como os.environ['AIP_TENSORBOARD_LOG_DIR']. O callback do TensorBoard é, em seguida, incluído na lista de callbacks do TensorFlow model.fit.
tensorboard_callback = tf.keras.callbacks.TensorBoard( log_dir=os.environ['AIP_TENSORBOARD_LOG_DIR'], histogram_freq=1 ) model.fit( x=x_train, y=y_train, epochs=epochs, validation_data=(x_test, y_test), callbacks=[tensorboard_callback], )
Saiba como a Vertex AI define variáveis de ambiente no seu ambiente de preparação personalizado.
Crie uma tarefa de preparação personalizada
O exemplo seguinte mostra como criar a sua própria tarefa de preparação personalizada.
Para ver um exemplo detalhado de como criar uma tarefa de preparação personalizada, consulte o artigo Olá, preparação personalizada. Para ver os passos para criar contentores de preparação personalizados, consulte o artigo Crie uma imagem de contentor personalizada para preparação.
Para criar uma tarefa de preparação personalizada, use o SDK Vertex AI para Python ou REST.
Python
Python
- project: . Pode encontrar estes IDs na página de Google Cloud boas-vindas da consola.
 
- location: a localização onde executar o CustomJob. Esta deve ser a mesma localização que a instância do TensorBoard fornecida.
- staging_bucket: o contentor do Cloud Storage para preparar artefactos durante as chamadas API, incluindo registos do TensorBoard.
- display_name: nome a apresentar da tarefa de preparação personalizada.
- script_path: o caminho, relativo ao diretório de trabalho no seu sistema de ficheiros local, para o script que é o ponto de entrada para o seu código de preparação.
- container_uri: O URI da imagem do contentor de preparação pode ser o Vertex AI. Contentor de preparação pré-criado ou um contentor personalizado.
- model_serving_container_image_uri: o URI do contentor de publicação do modelo adequado para publicar o modelo produzido pelo script de preparação.
- dataset_id: o número de ID do conjunto de dados a usar para a preparação.
- model_display_name: nome a apresentar do modelo preparado.
- args: argumentos da linha de comandos a transmitir ao script Python.
- replica_count: o número de réplicas de trabalhadores a usar. Na maioria dos casos, defina este valor como 1 para o seu primeiro conjunto de trabalhadores.
- machine_type: o tipo de VM a usar. Para ver uma lista das VMs compatíveis, consulte Tipos de máquinas
- accelerator_type: O tipo de GPU a associar a cada VM no conjunto de recursos. Para ver uma lista das GPUs suportadas, consulte a secção GPUs.
- accelerator_countO número de GPUs a associar a cada VM no conjunto de recursos. O valor predefinido é- 1.
- training_fraction_split: a fração do conjunto de dados a usar para preparar o modelo.
- validation_fraction_split: a fração do conjunto de dados a usar para validar o seu modelo.
- test_fraction_split: a fração do conjunto de dados a usar para avaliar o seu modelo.
- sync: se este método deve ser executado de forma síncrona.
- tensorboard_resource_name: O nome do recurso da instância do Vertex TensorBoard para a qual o CustomJob vai carregar os registos do TensorBoard.
- service_account: obrigatório quando executado com o TensorBoard. Consulte o artigo Crie uma conta de serviço com as autorizações necessárias.
REST
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- LOCATION_ID: a localização onde executar o CustomJob, por exemplo, us-central1. Esta deve ser a mesma localização que a instância do TensorBoard fornecida.
- PROJECT_ID: o seu ID do projeto.
- TENSORBOARD_INSTANCE_NAME: (Obrigatório) O nome completo
    da instância do Vertex AI TensorBoard existente que armazena os registos do Vertex AI TensorBoard:
 projects/PROJECT_ID/locations/LOCATION_ID/tensorboards/TENSORBOARD_INSTANCE_ID
 Nota: se a instância do TensorBoard não for uma instância existente, a criação de customJobs gera um erro 404.
- GCS_BUCKET_NAME: "${PROJECT_ID}-tensorboard-logs-${LOCATION}"
 
- USER_SA_EMAIL: (obrigatório) a conta de serviço criada nos passos anteriores ou a sua própria conta de serviço. "USER_SA_NAME@${PROJECT_ID}.iam.gserviceaccount.com"
- TRAINING_CONTAINER: TRAINING_CONTAINER.
- INVOCATION_TIMESTAMP: "$(date +'%Y%m%d-%H%M%S')"
- JOB_NAME: "tensorboard-example-job-${INVOCATION_TIMESTAMP}"
- BASE_OUTPUT_DIR: (obrigatório) o Google Cloud caminho onde toda a saída da formação é escrita. "gs://$GCS_BUCKET_NAME/$JOB_NAME"
Método HTTP e URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/customJobsCorpo JSON do pedido:
{
"displayName": JOB_NAME,
"jobSpec":{
"workerPoolSpecs":[
  {
    "replicaCount": "1",
     "machineSpec": {
        "machineType": "n1-standard-8",
      },
      "containerSpec": {
        "imageUri": TRAINING_CONTAINER,
      }
    }
  ],
  
  "base_output_directory": {
  "output_uri_prefix": BASE_OUTPUT_DIR,
   },
  "serviceAccount": USER_SA_EMAIL,
  "tensorboard": TENSORBOARD_INSTANCE_NAME,
  }
}
Para enviar o seu pedido, expanda uma destas opções:
Deve receber uma resposta JSON semelhante à seguinte:
{
  "name": "projects/PROJECT_ID/locations/LOCATION_ID/customJobs/CUSTOM_JOB_ID",
  "displayName": "DISPLAY_NAME",
  "jobSpec": {
    "workerPoolSpecs": [
      {
        "machineSpec": {
          "machineType": "n1-standard-8"
        },
        "replicaCount": "1",
        "diskSpec": {
          "bootDiskType": "pd-ssd",
          "bootDiskSizeGb": 100
        },
        "containerSpec": {
          "imageUri": "IMAGE_URI"
        }
      }
    ],
    "serviceAccount": "SERVICE_ACCOUNT",
    "baseOutputDirectory": {
      "outputUriPrefix": "OUTPUT_URI_PREFIX"
    },
    "tensorboard": "projects//locations/LOCATION_ID/tensorboards/tensorboard-id"
  },
  "state": "JOB_STATE_PENDING",
  "createTime": "CREATE-TIME",
  "updateTime": "UPDATE-TIME"
}
 O que se segue?
- Consulte o artigo Ver o Vertex AI TensorBoard.
- Saiba como otimizar o desempenho das tarefas de preparação personalizadas através do Cloud Profiler.