Use um IP privado para a preparação sem servidor da Vertex AI

A utilização de IP privado para estabelecer ligação aos seus trabalhos de preparação oferece mais segurança de rede e uma latência de rede inferior do que a utilização de IP público. Para usar o IP privado, usa a nuvem virtual privada (VPC) para estabelecer uma ligação ponto a ponto entre a sua rede e qualquer tipo de tarefa de preparação sem servidor do Vertex AI. Isto permite que o seu código de preparação aceda a endereços IP privados dentro das suas Google Cloud ou redes no local.

Este guia mostra como executar tarefas de preparação sem servidor na sua rede depois de já ter configurado o peering de redes VPC para estabelecer o peering da sua rede com um recurso CustomJob, HyperparameterTuningJob ou personalizado do Vertex AI TrainingPipeline.

Vista geral

Antes de enviar uma tarefa de preparação sem servidor através de um IP privado, tem de configurar o acesso privado aos serviços para criar ligações de peering entre a sua rede e o Vertex AI. Se já configurou esta opção, pode usar as suas associações de peering existentes.

Este guia aborda as seguintes tarefas:

  • Compreender que intervalos de IP reservar para a preparação sem servidor.
  • Verifique o estado das suas ligações de peering existentes.
  • Realize a preparação sem servidor do Vertex AI na sua rede.
  • Verifique se está a ocorrer formação ativa numa rede antes de fazer a formação noutra rede.
  • Teste se o seu código de preparação consegue aceder a IPs privados na sua rede.

Reserve intervalos de IP para a preparação sem servidor

Quando reserva um intervalo de IPs para produtores de serviços, o intervalo pode ser usado pelo Vertex AI e outros serviços. Esta tabela mostra o número máximo de tarefas de preparação paralelas que pode executar com intervalos reservados de /16 a /18, partindo do princípio de que o intervalo é usado quase exclusivamente pelo Vertex AI. Se se ligar a outros produtores de serviços através do mesmo intervalo, atribua um intervalo maior para os acomodar, de modo a evitar o esgotamento de IPs.

Configuração da máquina para tarefa de preparação Intervalo reservado Número máximo de tarefas paralelas
Até 8 nós.
Por exemplo: 1 réplica principal no primeiro conjunto de trabalhadores, 6 réplicas no segundo conjunto de trabalhadores e 1 trabalhador no terceiro conjunto de trabalhadores (para atuar como um servidor de parâmetros)
/16 63
/17 31
/18 15
Até 16 nós.
Por exemplo: 1 réplica principal no primeiro grupo de trabalhadores, 14 réplicas no segundo grupo de trabalhadores e 1 trabalhador no terceiro grupo de trabalhadores (para atuar como um servidor de parâmetros)
/16 31
/17 15
/18 7
Até 32 nós.
Por exemplo: 1 réplica principal no primeiro conjunto de trabalhadores, 30 réplicas no segundo conjunto de trabalhadores e 1 trabalhador no terceiro conjunto de trabalhadores (para atuar como um servidor de parâmetros)
/16 15
/17 7
/18 3

Saiba como configurar pools de trabalhadores para a formação distribuída.

Verifique o estado das associações de peering existentes

Se tiver associações de peering existentes que usa com o Vertex AI, pode listá-las para verificar o estado:

gcloud compute networks peerings list --network NETWORK_NAME

Deve ver que o estado das suas associações de peering é ACTIVE. Saiba mais acerca das associações de peering ativas.

Realize formação sem servidor

Quando realiza a preparação sem servidor, tem de especificar o nome da rede à qual quer que o Vertex AI tenha acesso.

Consoante a forma como realiza a preparação sem servidor, especifique a rede num dos seguintes campos da API:

Se não especificar um nome de rede, o Vertex AI executa a preparação sem servidor sem uma ligação de peering e sem acesso a IPs privados no seu projeto.

Exemplo: criar um CustomJob com a CLI gcloud

O exemplo seguinte mostra como especificar uma rede quando usa a CLI gcloud para executar um CustomJob que usa um contentor pré-criado. Se estiver a realizar o treino sem servidor de uma forma diferente, adicione o campo network, conforme descrito para o tipo de tarefa de treino sem servidor que está a usar.

  1. Crie um ficheiro config.yaml para especificar a rede. Se estiver a usar a VPC partilhada, use o número do projeto anfitrião da VPC.

    Certifique-se de que o nome da rede está formatado corretamente:

    PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format="value(projectNumber)")
    
    cat <<EOF > config.yaml
    network: projects/PROJECT_NUMBER/global/networks/NETWORK_NAME
    EOF
    
  2. Crie uma aplicação de preparação para ser executada no Vertex AI.

  3. Crie o CustomJob, transmitindo o seu ficheiro config.yaml:

    gcloud ai custom-jobs create \
      --region=LOCATION \
      --display-name=JOB_NAME \
      --python-package-uris=PYTHON_PACKAGE_URIS \
      --worker-pool-spec=machine-type=MACHINE_TYPE,replica-count=REPLICA_COUNT,executor-image-uri=PYTHON_PACKAGE_EXECUTOR_IMAGE_URI,python-module=PYTHON_MODULE \
      --config=config.yaml
    

Para saber como substituir os marcadores de posição neste comando, leia o artigo Criar tarefas de preparação personalizadas.

Execute tarefas em redes diferentes

Não pode realizar a preparação sem servidor numa nova rede enquanto estiver a realizar a preparação sem servidor noutra rede. Antes de mudar para uma rede diferente, tem de aguardar que todos os recursos CustomJob, HyperparameterTuningJob e TrainingPipeline personalizados enviados terminem ou cancelá-los.

Testar o acesso ao trabalho de preparação

Esta secção explica como testar se um recurso de preparação sem servidor consegue aceder a IPs privados na sua rede.

  1. Crie uma instância do Compute Engine na sua rede de VPC.
  2. Verifique as regras da firewall para se certificar de que não restringem a entrada da rede da Vertex AI. Se for o caso, adicione uma regra para garantir que a rede do Vertex AI pode aceder ao intervalo de IPs que reservou para o Vertex AI (e outros produtores de serviços).
  3. Configure um servidor local na instância da VM para criar um ponto final para o Vertex AI CustomJob aceder.
  4. Crie uma aplicação de preparação em Python para ser executada no Vertex AI. Em vez de código de preparação de modelos, crie código que aceda ao ponto final que configurou no passo anterior.
  5. Siga o exemplo anterior para criar um(a) CustomJob.

Problemas comuns

Esta secção apresenta alguns problemas comuns para configurar o intercâmbio da rede da VPC com a Vertex AI.

  • Quando configurar o Vertex AI para usar a sua rede, especifique o nome completo da rede:

    "projects/YOUR_PROJECT_NUMBER/global/networks/YOUR_NETWORK_NAME"

  • Certifique-se de que não está a fazer a preparação sem servidor numa rede antes de fazer a preparação sem servidor noutra rede.

  • Certifique-se de que atribuiu um intervalo de IP suficiente para todos os produtores de serviços aos quais a sua rede se liga, incluindo o Vertex AI.

Para mais informações sobre a resolução de problemas, consulte o guia de resolução de problemas da interligação de redes VPC.

O que se segue?