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 privada virtual (VPC) para estabelecer uma ligação ponto a ponto entre a sua rede e qualquer tipo de tarefa de preparação personalizada do Vertex AI. Isto permite que o seu código de preparação aceda a endereços IP privados dentro das suas redesGoogle Cloud ou no local.
Este guia mostra como executar tarefas de preparação personalizadas 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 TrainingPipeline
personalizado do Vertex AI.
Vista geral
Antes de enviar uma tarefa de preparação personalizada com IP privado, tem de configurar o acesso a serviços privados para criar associações de peering entre a sua rede e o Vertex AI. Se já configurou esta opção, pode usar as suas ligações de peering existentes.
Este guia aborda as seguintes tarefas:
- Compreender que intervalos de IP reservar para a preparação personalizada.
- Verifique o estado das suas ligações de peering existentes.
- Realizar a preparação personalizada 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 formação personalizada
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 a 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 grupo de trabalhadores, 6 réplicas no segundo grupo de trabalhadores e 1 trabalhador no terceiro grupo 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 uma formação personalizada
Quando realiza uma preparação personalizada, tem de especificar o nome da rede à qual quer que o Vertex AI tenha acesso.
Consoante a forma como realiza a preparação personalizada, especifique a rede num dos seguintes campos da API:
Se estiver a criar um
CustomJob
, especifique o campoCustomJob.jobSpec.network
.Se estiver a usar a CLI do Google Cloud, pode usar a flag
--config
no comandogcloud ai custom-jobs create
para especificar o camponetwork
.Saiba mais sobre como criar um
CustomJob
.Se estiver a criar um
HyperparameterTuningJob
, especifique o campoHyperparameterTuningJob.trialJobSpec.network
.Se estiver a usar a CLI gcloud, pode usar a flag
--config
no comandogcloud ai hpt-tuning-jobs create
para especificar o camponetwork
.Saiba mais sobre como criar um
HyperparameterTuningJob
.Se estiver a criar um
TrainingPipeline
sem ajuste de hiperparâmetros, especifique o campoTrainingPipeline.trainingTaskInputs.network
.Saiba como criar um público-alvo personalizado.
TrainingPipeline
Se estiver a criar um
TrainingPipeline
com o ajuste de hiperparâmetros, especifique o campoTrainingPipeline.trainingTaskInputs.trialJobSpec.network
.
Se não especificar um nome de rede, o Vertex AI executa o seu treino personalizado 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 um treino personalizado de forma diferente, adicione o campo network
, conforme descrito para o tipo de tarefa de treino personalizado que está a usar.
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
Crie uma aplicação de preparação para ser executada no Vertex AI.
Crie o
CustomJob
, transmitindo o seu ficheiroconfig.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.
Executar tarefas em redes diferentes
Não pode realizar um treino personalizado numa nova rede enquanto estiver a realizar um treino personalizado 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 personalizado consegue aceder a IPs privados na sua rede.
- Crie uma instância do Compute Engine na sua rede de VPC.
- 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).
- Configure um servidor local na instância da VM para criar um ponto final para o
Vertex AI
CustomJob
aceder. - 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.
- Siga o exemplo anterior para criar um
CustomJob
.
Problemas comuns
Esta secção lista 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 uma preparação personalizada numa rede antes de fazer uma preparação personalizada numa rede diferente.
Certifique-se de que atribuiu um intervalo de IP suficiente a 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?
- Saiba mais acerca do intercâmbio da rede da VPC.
- Consulte as arquiteturas de referência e as práticas recomendadas para o design de VPC.