Quando você cria um recurso persistente, o serviço de treinamento primeiro encontra recursos do pool de recursos do Compute Engine com base nas especificações fornecidas e, em seguida, provisiona um cluster de longa duração para você. Nesta página, mostramos como criar um recurso permanente para executar jobs de treinamento personalizados usando o console do Google Cloud, a CLI do Google Cloud, o SDK da Vertex AI para Python e a API REST.
Funções exigidas
Para receber a permissão necessária a fim de excluir um recurso permanente,
peça ao administrador para conceder a você o papel IAM de
Administrador da Vertex AI (roles/aiplatform.admin
) no projeto.
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Esse papel predefinido contém a
permissão
aiplatform.persistentResources.create
,
que é necessária para
excluir um recurso permanente.
Também é possível conseguir essa permissão com papéis personalizados ou outros papéis predefinidos.
Criar um recurso persistente
Selecione uma das guias a seguir para ver instruções sobre como criar um recurso permanente.
Console
Para criar um recurso permanente usando o console do Google Cloud, faça o seguinte:
No console do Google Cloud, acesse a página Recursos permanentes.
Clique em Criar cluster.
Configure o cluster desta maneira:
- Nome: digite um nome para o cluster.
- Descrição: (opcional) insira uma descrição do cluster.
- Região: selecione a região em que você quer criar o cluster.
Clique em Continuar.
Configure os recursos de computação do cluster da seguinte maneira:
- Clique em Pool de workers 1.
Selecione a guia da família de máquinas que você quer usar e configure o pool de workers da seguinte maneira:
Uso geral
As VMs de uso geral oferecem a melhor relação custo-benefício para uma variedade de cargas de trabalho.
- Série: selecione uma série de máquinas.
- Tipo de máquina: selecione um tipo de máquina.
- Tipo de disco: selecione Disco padrão ou Disco SSD.
- Tamanho do disco: insira o tamanho do disco que você quer.
- Contagem mínima de réplicas: insira o número mínimo de réplicas que devem estar no pool de workers.
- Contagem máxima de réplicas: (opcional) digite o número máximo de réplicas permitidas no pool de workers. Se especificado, o pool de workers escalona automaticamente o número de réplicas até a contagem máxima de réplicas configurada, conforme necessário.
Otimização para computação
As VMs com otimização para computação oferecem o melhor desempenho por núcleo e são otimizadas para cargas de trabalho de computação intensiva.
- Série: selecione uma série de máquinas.
- Tipo de máquina: selecione um tipo de máquina.
- Tipo de disco: selecione Disco padrão ou Disco SSD.
- Tamanho do disco: insira o tamanho do disco que você quer.
- Contagem mínima de réplicas: insira o número mínimo de réplicas que devem estar no pool de workers.
- Contagem máxima de réplicas: (opcional) digite o número máximo de réplicas permitidas no pool de workers. Se especificado, o pool de workers escalona automaticamente o número de réplicas até a contagem máxima de réplicas configurada, conforme necessário.
Otimização de memória
Otimização de memória: as VMs são ideais para cargas de trabalho com uso intenso de memória, oferecendo mais memória por núcleo do que outras famílias de máquinas, com até 12 TB de memória.
- Série: selecione uma série de máquinas.
- Tipo de máquina: selecione um tipo de máquina.
- Tipo de disco: selecione Disco padrão ou Disco SSD.
- Tamanho do disco: insira o tamanho do disco que você quer.
- Contagem mínima de réplicas: insira o número mínimo de réplicas que devem estar no pool de workers.
- Contagem máxima de réplicas: (opcional) digite o número máximo de réplicas permitidas no pool de workers. Se especificado, o pool de workers escalona automaticamente o número de réplicas até a contagem máxima de réplicas configurada, conforme necessário.
GPUs
Essas VMs otimizadas para aceleradores são ideais para cargas de trabalho de computação da arquitetura de dispositivo unificado (CUDA, na sigla em inglês) massivamente paralelas, como machine learning (ML) e computação de alto desempenho (HPC). Essa família é a melhor opção para cargas de trabalho que exigem GPUs.
- Tipo de GPU: selecione o tipo de GPU que você quer usar.
- Número de GPUs: digite o número de GPUs que você quer usar.
- Série: selecione uma série de máquinas.
- Tipo de máquina: selecione um tipo de máquina.
- Tipo de disco: selecione Disco padrão ou Disco SSD.
- Tamanho do disco: insira o tamanho do disco que você quer.
- Contagem mínima de réplicas: insira o número mínimo de réplicas que devem estar no pool de workers.
- Contagem máxima de réplicas: (opcional) digite o número máximo de réplicas permitidas no pool de workers. Se especificado, o pool de workers escalona automaticamente o número de réplicas até a contagem máxima de réplicas configurada, conforme necessário.
Clique em Concluído.
(Opcional) Para adicionar mais pools de workers, clique em Adicionar pool de workers.
Clique em Criar.
gcloud
Um recurso permanente pode ter um ou mais pools de recursos. Para criar vários pools de recursos em um recurso persistente, especifique várias sinalizações --resource-pool-spec
.
Cada pool de recursos pode ter o escalonamento automático ativado ou desativado. Para ativar o escalonamento automático, especifique min_replica_count
e max_replica_count
.
É possível especificar todas as configurações do pool de recursos como parte da linha de comando ou usar a sinalização --config
para especificar o caminho para um arquivo YAML que contenha as configurações.
Antes de usar os dados do comando abaixo, faça estas substituições:
- PROJECT_ID: o ID do projeto do Google Cloud em que você quer criar o recurso permanente.
- LOCATION: a região em que você quer criar o recurso permanente. Para uma lista de regiões com suporte, consulte Disponibilidade do recurso.
- PERSISTENT_RESOURCE_ID: o ID do recurso permanente.
- DISPLAY_NAME: (opcional) o nome de exibição do recurso permanente.
- MACHINE_TYPE: o tipo de VM a ser usada. Para uma lista de VMs compatíveis, consulte Tipos de máquina.
Esse campo corresponde ao
machineSpec.machineType
na mensagem da APIResourcePool
. - ACCELERATOR_TYPE: o tipo de GPU a ser anexado a cada VM no pool de recursos (opcional). Para uma lista de GPUs compatíveis, consulte GPUs. Esse campo corresponde ao
machineSpec.acceleratorType
na mensagem da APIResourcePool
. - ACCELERATOR_COUNT: o número de GPUs a serem anexadas a cada VM no pool de recursos (opcional). O valor padrão é
1
. Esse campo corresponde ao campomachineSpec.acceleratorCount
na mensagem da APIResourcePool
. - REPLICA_COUNT: o número de réplicas a serem criadas ao criar este pool de recursos. Esse campo corresponde ao
replicaCount
na mensagem da APIResourcePool
. Este campo será obrigatório se você não especificar MIN_REPLICA_COUNT e MAX_REPLICA_COUNT. - MIN_REPLICA_COUNT (opcional): o número mínimo de réplicas que podem ser reduzidos no escalonamento automático para esse pool de recursos. MIN_REPLICA_COUNT e MAX_REPLICA_COUNT são necessários para ativar o escalonamento automático neste pool de recursos.
- MAX_REPLICA_COUNT: (opcional) o número máximo de réplicas que o escalonamento automático pode escalonar verticalmente para esse pool de recursos. MIN_REPLICA_COUNT e MAX_REPLICA_COUNT são necessários para ativar o escalonamento automático neste pool de recursos.
- BOOT_DISK_TYPE: o tipo de disco a ser usado como disco de inicialização de cada VM no pool de recursos (opcional). Esse campo corresponde ao
diskSpec.bootDiskType
na mensagem da APIResourcePool
. Os valores aceitáveis são os seguintes:pd-standard
(padrão)pd-ssd
- BOOT_DISK_SIZE_GB: o tamanho do disco em GiB para o disco de inicialização de cada VM no pool de recursos (opcional). Os valores aceitáveis são de
100
(padrão) a64000
. Esse campo corresponde ao campodiskSpec.bootDiskSizeGb
na mensagem da APIResourcePool
. - CONFIG: caminho para o arquivo de configuração YAML do recurso permanente. Esse arquivo precisa conter uma lista de ResourcePool. Se uma opção for especificada no arquivo de configuração e nos argumentos da linha de comando, os argumentos substituirão o arquivo de configuração. Observe que as chaves com sublinhados são inválidas.
Exemplo de arquivo de configuração YAML:
resourcePoolSpecs: machineSpec: machineType: n1-standard-4 replicaCount: 1
Execute o seguinte comando:
Linux, macOS ou Cloud Shell
gcloud ai persistent-resources create \ --persistent-resource-id=PERSISTENT_RESOURCE_ID \ --display-name=DISPLAY_NAME \ --project=PROJECT_ID \ --region=LOCATION \ --resource-pool-spec="replica-count=REPLICA_COUNT,min-replica-count=MIN_REPLICA_COUNT,max-replica-count=MAX_REPLICA_COUNT,machine-type=MACHINE_TYPE,accelerator-type=ACCELERATOR_TYPE,accelerator-count=ACCELERATOR_COUNT,disk-type=BOOT_DISK_TYPE,disk-size=BOOT_DISK_SIZE_GB"
Windows (PowerShell)
gcloud ai persistent-resources create ` --persistent-resource-id=PERSISTENT_RESOURCE_ID ` --display-name=DISPLAY_NAME ` --project=PROJECT_ID ` --region=LOCATION ` --resource-pool-spec="replica-count=REPLICA_COUNT,min-replica-count=MIN_REPLICA_COUNT,max-replica-count=MAX_REPLICA_COUNT,machine-type=MACHINE_TYPE,accelerator-type=ACCELERATOR_TYPE,accelerator-count=ACCELERATOR_COUNT,disk-type=BOOT_DISK_TYPE,disk-size=BOOT_DISK_SIZE_GB"
Windows (cmd.exe)
gcloud ai persistent-resources create ^ --persistent-resource-id=PERSISTENT_RESOURCE_ID ^ --display-name=DISPLAY_NAME ^ --project=PROJECT_ID ^ --region=LOCATION ^ --resource-pool-spec="replica-count=REPLICA_COUNT,min-replica-count=MIN_REPLICA_COUNT,max-replica-count=MAX_REPLICA_COUNT,machine-type=MACHINE_TYPE,accelerator-type=ACCELERATOR_TYPE,accelerator-count=ACCELERATOR_COUNT,disk-type=BOOT_DISK_TYPE,disk-size=BOOT_DISK_SIZE_GB"
Você receberá uma resposta semelhante a esta:
Using endpoint [https://us-central1-aiplatform.googleapis.com/] Operation to create PersistentResource [projects/123456789012/locations/us-central1/persistentResources/mypersistentresource/operations/1234567890123456789] is submitted successfully. You may view the status of your PersistentResource create operation with the command $ gcloud ai operations describe projects/sample-project/locations/us-central1/operations/1234567890123456789
Comando gcloud
de exemplo:
gcloud ai persistent-resources create \ --persistent-resource-id=my-persistent-resource \ --region=us-central1 \ --resource-pool-spec="min-replica-count=4,max-replica-count=12,machine-type=n1-highmem-2,accelerator-type=NVIDIA_TESLA_T4,accelerator-count=1,disk-type=pd-standard,disk-size=200" \ --resource-pool-spec="replica-count=4,machine-type=n1-standard-4"
Configurações gcloud
avançadas
Se você quiser especificar opções de configuração que não estejam disponíveis nos
exemplos anteriores, use a sinalização --config
para especificar o
caminho para um arquivo config.yaml
no ambiente local que contém os campos de
persistentResources
. Exemplo:
gcloud ai persistent-resources create \ --persistent-resource-id=PERSISTENT_RESOURCE_ID \ --project=PROJECT_ID \ --region=LOCATION \ --config=CONFIG
Python
Antes de testar essa amostra, siga as instruções de configuração para Python Guia de início rápido da Vertex AI: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Vertex AI para Python.
Para autenticar na Vertex AI, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
# Create the persistent resource. This method returns the created resource. # Setting `sync` to `FALSE` makes the method is non-blocking and the resource # object returned syncs when the method completes. my_example_resource = persistent_resource.PersistentResource.create( persistent_resource_id=EXAMPLE_PERSISTENT_RESOURCE_ID, display_name=EXAMPLE_PERSISTENT_RESOURCE_NAME, resource_pools=[ EXAMPLE_RESOURCE_POOL # EXAMPLE_AUTOSCALED_RESOURCE_POOL ], labels=EXAMPLE_LABELS, sync=SYNC, ) if not SYNC: my_example_resource.wait()
REST
Um recurso permanente pode ter um ou mais pools de recursos (machine_spec
), e cada pool de recursos pode ter o escalonamento automático ativado ou desativado.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PROJECT_ID: o ID do projeto do Google Cloud em que você quer criar o recurso permanente.
- LOCATION: a região em que você quer criar o recurso permanente. Para uma lista de regiões com suporte, consulte Disponibilidade do recurso.
- PERSISTENT_RESOURCE_ID: o ID do recurso permanente.
- DISPLAY_NAME: (opcional) o nome de exibição do recurso permanente.
- MACHINE_TYPE: o tipo de VM a ser usada. Para uma lista de VMs compatíveis, consulte Tipos de máquina.
Esse campo corresponde ao
machineSpec.machineType
na mensagem da APIResourcePool
. - ACCELERATOR_TYPE: o tipo de GPU a ser anexado a cada VM no pool de recursos (opcional). Para uma lista de GPUs compatíveis, consulte GPUs. Esse campo corresponde ao
machineSpec.acceleratorType
na mensagem da APIResourcePool
. - ACCELERATOR_COUNT: o número de GPUs a serem anexadas a cada VM no pool de recursos (opcional). O valor padrão é
1
. Esse campo corresponde ao campomachineSpec.acceleratorCount
na mensagem da APIResourcePool
. - REPLICA_COUNT: o número de réplicas a serem criadas ao criar este pool de recursos. Esse campo corresponde ao
replicaCount
na mensagem da APIResourcePool
. Este campo será obrigatório se você não especificar MIN_REPLICA_COUNT e MAX_REPLICA_COUNT. - MIN_REPLICA_COUNT (opcional): o número mínimo de réplicas que podem ser reduzidos no escalonamento automático para esse pool de recursos. MIN_REPLICA_COUNT e MAX_REPLICA_COUNT são necessários para ativar o escalonamento automático neste pool de recursos.
- MAX_REPLICA_COUNT: (opcional) o número máximo de réplicas que o escalonamento automático pode escalonar verticalmente para esse pool de recursos. MIN_REPLICA_COUNT e MAX_REPLICA_COUNT são necessários para ativar o escalonamento automático neste pool de recursos.
- BOOT_DISK_TYPE: o tipo de disco a ser usado como disco de inicialização de cada VM no pool de recursos (opcional). Esse campo corresponde ao
diskSpec.bootDiskType
na mensagem da APIResourcePool
. Os valores aceitáveis são os seguintes:pd-standard
(padrão)pd-ssd
- BOOT_DISK_SIZE_GB: o tamanho do disco em GiB para o disco de inicialização de cada VM no pool de recursos (opcional). Os valores aceitáveis são de
100
(padrão) a64000
. Esse campo corresponde ao campodiskSpec.bootDiskSizeGb
na mensagem da APIResourcePool
.
Método HTTP e URL:
POST https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/persistentResources?persistent_resource_id=PERSISTENT_RESOURCE_ID
Corpo JSON da solicitação:
{ "display_name": "DISPLAY_NAME", "resource_pools": [ { "machine_spec": { "machine_type": "MACHINE_TYPE", "accelerator_type": "ACCELERATOR_TYPE", "accelerator_count": ACCELERATOR_COUNT }, "replica_count": REPLICA_COUNT, "autoscaling_spec": { "min_replica_count": MIN_REPLICA_COUNT, "max_replica_count": MAX_REPLICA_COUNT }, "disk_spec": { "boot_disk_type": "BOOT_DISK_TYPE", "boot_disk_size_gb": BOOT_DISK_SIZE_GB } } ] }
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
{ "name": "projects/123456789012/locations/us-central1/persistentResources/mypersistentresource/operations/1234567890123456789", "metadata": { "@type": "type.googleapis.com/google.cloud.aiplatform.v1.CreatePersistentResourceOperationMetadata", "genericMetadata": { "createTime": "2023-02-08T21:17:15.009668Z", "updateTime": "2023-02-08T21:17:15.009668Z" } } }
Estoque esgotado do recurso
Pode haver estoque esgotado de recursos escassos, como as GPUs A100, o que pode levar a uma falha permanente na criação de recursos quando nenhum recurso está disponível na região especificada. Nesse caso, é possível tentar reduzir o número de réplicas, mudar para um tipo de acelerador diferente, tentar novamente fora dos horários de pico ou tentar outra região.
A seguir
- Executar jobs de treinamento em um recurso persistente.
- Saiba mais sobre recursos persistentes.
- Receba informações sobre um recurso persistente.
- Reinicialize um recurso persistente.
- Exclua um recurso persistente.