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ê estiver criando um
CustomJob
, especifique o campoCustomJob.jobSpec.network
.Se você estiver usando a CLI do Google Cloud, use a sinalização
--config
no comandogcloud ai custom-jobs create
para especificar o camponetwork
.Saiba mais sobre como criar um
CustomJob
.Se você estiver criando um
HyperparameterTuningJob
. specifyHyperparameterTuningJob.trialJobSpec.network
campo.Se estiver usando a CLI gcloud, será possível usar a sinalização
--config
no comandogcloud ai hpt-tuning-jobs create
para especificar o camponetwork
.Saiba mais sobre como criar um
HyperparameterTuningJob
.Se você estiver criando um
TrainingPipeline
sem ajuste de hiperparâmetro, especifique o campoTrainingPipeline.trainingTaskInputs.network
.Saiba mais sobre como criar um
TrainingPipeline
personalizado.Se você estiver criando uma
TrainingPipeline
com ajuste de hiperparâmetro, especifique o campoTrainingPipeline.trainingTaskInputs.trialJobSpec.network
.
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 CLI gcloud
O exemplo a seguir mostra como especificar uma rede quando você usa a
CLI 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.
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
Crie um aplicativo de treinamento para ser executado na Vertex AI.
Crie o
CustomJob
, transmitindo o arquivoconfig.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.
- Crie uma instância do Compute Engine na sua rede VPC.
- 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).
- Configure um servidor local na instância de VM para criar um endpoint acessível pela
CustomJob
da Vertex AI. - 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.
- 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
- Saiba mais sobre o peering de rede VPC.
- Consulte arquiteturas de referência e práticas recomendadas para o design da VPC.