Usar um IP particular para treinamentos personalizados

O IP particular para conexão com jobs de treinamento oferece mais segurança de rede e menor latência de rede do que o IP público. Para usar o IP particular, use a nuvem privada virtual (VPC, na sigla em inglês) para fazer o peering da sua rede com qualquer tipo de job de treinamento personalizado do Vertex AI. Isso permite que o código de treinamento acesse endereços IP particulares no Google Cloud ou em redes locais.

Neste guia, você verá como executar jobs de treinamento personalizados na sua rede depois de já ter configurado o peering de rede VPC para fazer peering na sua rede com um recurso CustomJob, HyperparameterTuningJob ou TrainingPipeline personalizado do Vertex AI.

Visão geral

Antes de enviar um job de treinamento personalizado usando IP particular, é necessário configurar o acesso a serviços privados para criar conexões de peering entre sua rede e o Vertex AI. Se você já tiver configurado isso, use suas conexões de peering atuais.

Este guia abrange as seguintes tarefas:

  • Noções básicas sobre quais intervalos de IP reservar para treinamento personalizado.
  • Verificar o status das suas conexões de peering atuais.
  • Realize o treinamento personalizado da Vertex AI na rede.
  • Verifique se o treinamento ativo ocorre em uma rede antes do treinamento em outra rede.
  • Teste se o código de treinamento tem acesso a IPs privados na rede.

Reservar intervalos de IP para treinamentos personalizados

Quando você reserva um intervalo de IP para produtores de serviços, ele pode ser usado pela Vertex AI e outros serviços. Esta tabela mostra o número máximo de jobs de treinamento paralelos que podem ser executados com intervalos reservados de /16 a /19, supondo que o intervalo seja usado quase que exclusivamente pela Vertex AI. Se você se conectar com outros produtores de serviços usando o mesmo intervalo, aloque um intervalo maior para acomodá-los. Isso evita o esgotamento do IP.

Configuração da máquina para o job de treinamento Intervalo reservado Número máximo de jobs paralelos
Até 8 nós.
Por exemplo: uma réplica principal no primeiro pool de workers, 6 réplicas no segundo pool de workers e 1 worker no terceiro pool de workers (para atuar como servidor de parâmetros).
/16 63
/17 31
/18 15
/19 7
Até 16 nós.
Por exemplo: uma réplica principal no primeiro pool de workers, 14 réplicas no segundo pool de workers e 1 worker no terceiro pool de workers (para atuar como servidor de parâmetros).
/16 31
/17 15
/18 7
/19 3
Até 32 nós.
Por exemplo: uma réplica principal no primeiro pool de workers, 30 réplicas no segundo e outro no terceiro pool para atuar como servidor de parâmetros.
/16 15
/17 7
/18 3
/19 1

Saiba mais sobre como configurar pools de workers para treinamento distribuído.

Verificar o status das conexões de peering existentes

Se você tiver conexões de peering existentes com o Vertex AI, será possível listá-las para verificar o status:

gcloud compute networks peerings list --network NETWORK_NAME

Você verá que o estado das conexões de peering é ACTIVE. Saiba mais sobre conexões de peering ativas.

Realizar treinamento personalizado

Ao realizar um treinamento personalizado, especifique o nome da rede à qual a Vertex AI terá acesso.

Dependendo de como você realiza o treinamento personalizado, especifique a rede em um dos seguintes campos da API:

Se você não especificar um nome de rede, a Vertex AI executará o treinamento personalizado sem uma conexão de peering e sem acesso a IPs particulares no projeto.

Exemplo: como criar um CustomJob com a ferramenta gcloud

O exemplo a seguir mostra como especificar uma rede quando você usa a ferramenta gcloud para executar um CustomJob que usa um contêiner pré-criado. Se você realizar o treinamento personalizado de uma maneira diferente, adicione o campo network conforme descrito para o tipo de job de treinamento personalizado que você está usando.

  1. Crie um arquivo config.yaml para especificar a rede. Se você estiver usando a VPC compartilhada, use o número do projeto host da VPC.

    Verifique se 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 um aplicativo de treinamento para ser executado na Vertex AI.

  3. Crie o CustomJob, transmitindo o arquivo 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 Como criar jobs de treinamento personalizados.

Executar jobs em diferentes redes

Não é possível executar o treinamento personalizado em uma nova rede enquanto ele ainda está sendo executado em outra rede. Antes de alternar para outra rede, você precisa aguardar a conclusão de todos os recursos CustomJob, HyperparameterTuningJob e TrainingPipeline personalizados enviados ou cancelá-los.

Testar o acesso ao job de treinamento

Nesta seção, explicamos como testar se um recurso de treinamento personalizado pode acessar IPs particulares na sua rede.

  1. Crie uma instância do Compute Engine na sua rede VPC.
  2. Verifique as regras de firewall para garantir que elas não restrinjam a entrada pela rede da Vertex AI. Nesse caso, adicione uma regra para garantir que a rede da Vertex AI possa acessar o intervalo de IP reservado para a Vertex AI (e outros produtores de serviços).
  3. Configure um servidor local na instância de VM para criar um endpoint acessível pela CustomJob da Vertex AI.
  4. Crie um aplicativo de treinamento em Python para ser executado na Vertex AI. Em vez do código de treinamento do modelo, envie o código que acessa o endpoint que você configurou na etapa anterior.
  5. Siga o exemplo anterior para criar um CustomJob.

Problemas comuns

Esta seção lista alguns problemas comuns na configuração do peering de rede VPC com a Vertex AI.

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

    "projects/YOUR_PROJECT_NUMBER/global/networks/YOUR_NETWORK_NAME"

  • Verifique se você não está realizando o treinamento personalizado em uma rede antes de executar o treinamento personalizado em outra rede.

  • Verifique se você alocou um intervalo de IP suficiente para todos os produtores de serviços aos quais sua rede se conecta, incluindo a Vertex AI.

Para mais informações sobre solução de problemas, consulte o guia de solução de problemas de peering de rede VPC.

A seguir