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 estiver a criar um
CustomJob, especifique o campoCustomJob.jobSpec.network.Se estiver a usar a CLI do Google Cloud, pode usar a flag
--configno comandogcloud ai custom-jobs createpara especificar o camponetwork.Saiba 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
--configno comandogcloud ai hpt-tuning-jobs createpara especificar o camponetwork.Saiba mais sobre como criar um
HyperparameterTuningJob.Se estiver a criar um
TrainingPipelinesem ajuste de hiperparâmetros, especifique o campoTrainingPipeline.trainingTaskInputs.network.Saiba como criar um público-alvo personalizado.
TrainingPipelineSe estiver a criar um
TrainingPipelinecom o ajuste de hiperparâmetros, especifique o campoTrainingPipeline.trainingTaskInputs.trialJobSpec.network.
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.
Crie um ficheiro
config.yamlpara 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 EOFCrie 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.
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.
- 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
CustomJobaceder. - 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(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?
- 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.