Quando cria um recurso persistente, o serviço de preparação encontra primeiro os recursos do conjunto de recursos do Compute Engine com base nas especificações que forneceu e, em seguida, aprovisiona um cluster de execução prolongada para si. Esta página mostra-lhe como criar um recurso persistente para executar as suas tarefas de programação personalizadas através da Google Cloud consola, da Google Cloud CLI e da API REST.
Funções necessárias
Para receber a autorização de que
precisa para criar um recurso persistente,
peça ao seu administrador para lhe conceder a
função do IAM administrador do Vertex AI (roles/aiplatform.admin
)
no seu projeto.
Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.
Esta função predefinida contém a autorização
aiplatform.persistentResources.create
, que é necessária para
criar um recurso persistente.
Também pode obter esta autorização com funções personalizadas ou outras funções predefinidas.
Crie um recurso persistente
Selecione um dos seguintes separadores para ver instruções sobre como criar um recurso persistente.
Consola
Para criar um recurso persistente através da consola Google Cloud , faça o seguinte:
Na Google Cloud consola, aceda à página Recursos persistentes.
Clique em Criar cluster.
Configure o cluster da seguinte forma:
- Nome: introduza um nome para o cluster.
- Descrição: (opcional) introduza uma descrição do cluster.
- Região: selecione a região onde quer criar o cluster.
Clique em Continuar.
Configure os recursos de computação para o cluster da seguinte forma:
- Clique em Conjunto de trabalhadores 1.
Selecione o separador da família de máquinas que quer usar e configure o conjunto de trabalhadores da seguinte forma:
Utilização geral
As VMs de uso geral oferecem a melhor relação preço/desempenho 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: introduza o tamanho do disco pretendido.
- Número mínimo de réplicas: introduza o número mínimo de réplicas a ter no conjunto de trabalhadores.
- Número máximo de réplicas: (opcional) introduza o número máximo de réplicas permitidas no conjunto de trabalhadores. Se especificado, o conjunto de trabalhadores dimensiona automaticamente o número de réplicas até ao número máximo de réplicas configurado, conforme necessário.
Otimizada para computação
As VMs otimizadas para computação oferecem o desempenho mais elevado por núcleo e estão otimizadas para cargas de trabalho com utilização intensiva de computação.
- 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: introduza o tamanho do disco pretendido.
- Número mínimo de réplicas: introduza o número mínimo de réplicas a ter no conjunto de trabalhadores.
- Número máximo de réplicas: (opcional) introduza o número máximo de réplicas permitidas no conjunto de trabalhadores. Se especificado, o conjunto de trabalhadores dimensiona automaticamente o número de réplicas até ao número máximo de réplicas configurado, conforme necessário.
Otimizada para memória
As VMs otimizadas para memória são ideais para cargas de trabalho com utilização intensiva 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: introduza o tamanho do disco pretendido.
- Número mínimo de réplicas: introduza o número mínimo de réplicas a ter no conjunto de trabalhadores.
- Número máximo de réplicas: (opcional) introduza o número máximo de réplicas permitidas no conjunto de trabalhadores. Se especificado, o conjunto de trabalhadores dimensiona automaticamente o número de réplicas até ao número máximo de réplicas configurado, conforme necessário.
GPUs
Estas VMs otimizadas para aceleradores são ideais para cargas de trabalho de computação de arquitetura de dispositivos unificados de computação (CUDA) massivamente paralelizadas, como aprendizagem automática (ML) e computação de elevado desempenho (HPC). Esta família é a melhor opção para cargas de trabalho que requerem GPUs.
- Tipo de GPU: selecione o tipo de GPU que quer usar.
- Número de GPUs: introduza o número de GPUs que 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: introduza o tamanho do disco pretendido.
- Número mínimo de réplicas: introduza o número mínimo de réplicas a ter no conjunto de trabalhadores.
- Número máximo de réplicas: (opcional) introduza o número máximo de réplicas permitidas no conjunto de trabalhadores. Se especificado, o conjunto de trabalhadores dimensiona automaticamente o número de réplicas até ao número máximo de réplicas configurado, conforme necessário.
Clique em Concluído.
(Opcional) Para adicionar mais conjuntos de trabalhadores, clique em Adicionar conjunto de trabalhadores.
Clique em Criar.
gcloud
Um recurso persistente pode ter um ou mais conjuntos de recursos. Para criar vários
pools de recursos num recurso persistente, especifique várias flags --resource-pool-spec
.
Cada conjunto de recursos pode ter o dimensionamento automático ativado ou desativado. Para ativar o ajuste de escala automático, especifique min_replica_count
e max_replica_count
.
Pode especificar todas as configurações do conjunto de recursos como parte da linha de comandos ou usar o sinalizador --config
para especificar o caminho para um ficheiro YAML que contém as configurações.
Antes de usar qualquer um dos dados de comandos abaixo, faça as seguintes substituições:
- PROJECT_ID: o ID do projeto do Google Cloud projeto onde quer criar o recurso persistente.
- LOCATION: a região onde quer criar o recurso persistente. Para ver uma lista das regiões suportadas, consulte o artigo Disponibilidade das funcionalidades.
- PERSISTENT_RESOURCE_ID: o ID do recurso persistente.
- DISPLAY_NAME: (Opcional) O nome a apresentar do recurso persistente.
- MACHINE_TYPE: o tipo de VM a usar. Para ver uma lista
das VMs suportadas, consulte Tipos de máquinas.
Este campo corresponde ao campo
machineSpec.machineType
na mensagem da APIResourcePool
. - ACCELERATOR_TYPE: (Opcional) O tipo de GPU a associar
a cada VM no conjunto de recursos. Para ver uma lista das GPUs suportadas, consulte a secção
GPUs. Este campo corresponde ao campo
machineSpec.acceleratorType
na mensagem da APIResourcePool
. - ACCELERATOR_COUNT: (Opcional) O número de GPUs a
anexar a cada VM no conjunto de recursos. O valor predefinido é
1
. Este campo corresponde ao campomachineSpec.acceleratorCount
na mensagem da APIResourcePool
. - REPLICA_COUNT: o número de réplicas a criar quando criar este conjunto de recursos. Este campo corresponde ao campo
replicaCount
na mensagem da APIResourcePool
. Este campo é obrigatório se não especificar MIN_REPLICA_COUNT e MAX_REPLICA_COUNT. - MIN_REPLICA_COUNT: (Opcional) O número mínimo de réplicas para o qual o ajuste de escala automático pode reduzir a escala deste conjunto de recursos. O MIN_REPLICA_COUNT e o MAX_REPLICA_COUNT são necessários para ativar o ajuste de escala automático neste conjunto de recursos.
- MAX_REPLICA_COUNT: (Opcional) O número máximo de réplicas que o dimensionamento automático pode dimensionar para este conjunto de recursos. O MIN_REPLICA_COUNT e o MAX_REPLICA_COUNT são necessários para ativar o ajuste de escala automático neste conjunto de recursos.
- BOOT_DISK_TYPE: (Opcional) O tipo de disco a usar para
como disco de arranque de cada VM no conjunto de recursos. Este campo corresponde ao campo
diskSpec.bootDiskType
na mensagem da APIResourcePool
. Os valores aceitáveis incluem o seguinte:pd-standard
(predefinição)pd-ssd
- BOOT_DISK_SIZE_GB: (Opcional) O espaço em disco em GiB para
o disco de arranque de cada VM no conjunto de recursos. Os valores aceitáveis são
100
(predefinição) a64000
. Este campo corresponde ao campodiskSpec.bootDiskSizeGb
na mensagem da APIResourcePool
. - CONFIG: caminho para o ficheiro de configuração YAML
do recurso persistente. Este ficheiro deve conter uma lista de ResourcePool. Se uma opção for especificada
no ficheiro de configuração e nos argumentos da linha de comandos, os argumentos da linha de comandos
substituem o ficheiro de configuração. Tenha em atenção que as chaves com carateres de sublinhado são inválidas.
Exemplo de ficheiro 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"
Deve receber uma resposta semelhante à seguinte:
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
Exemplo de comando gcloud
:
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 quiser especificar opções de configuração que não estão disponíveis nos exemplos anteriores, pode usar a flag --config
para especificar o caminho para um ficheiro config.yaml
no seu ambiente local que contenha os campos de persistentResources
. Por exemplo:
gcloud ai persistent-resources create \ --persistent-resource-id=PERSISTENT_RESOURCE_ID \ --project=PROJECT_ID \ --region=LOCATION \ --config=CONFIG
Python
Antes de experimentar este exemplo, siga as Pythoninstruções de configuração no início rápido do Vertex AI com bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Python Vertex AI.
Para se autenticar no Vertex AI, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Para criar um recurso persistente que pode usar com uma execução de pipeline, defina o parâmetroenable_custom_service_account
como True
no objeto ResourceRuntimeSpec
ao criar o recurso persistente.
from google.cloud.aiplatform.preview import persistent_resource from google.cloud.aiplatform_v1beta1.types.persistent_resource import ResourcePool from google.cloud.aiplatform_v1beta1.types.machine_resources import MachineSpec # Create the persistent resource. This method returns the created resource. my_example_resource = persistent_resource.PersistentResource.create( persistent_resource_id='PERSISTENT_RESOURCE_ID', display_name='DISPLAY_NAME', resource_pools=[ ResourcePool( machine_spec=MachineSpec( machine_type='MACHINE_TYPE' ), replica_count=REPLICA_COUNT ) ], enable_custom_service_account=True, ) # Setting `sync` to `False` makes the method is non-blocking and the resource # object returned syncs when the method completes. SYNC=False if not SYNC: my_example_resource.wait()
Substitua o seguinte:
- PERSISTENT_RESOURCE_ID: um ID exclusivo definido pelo utilizador para o recurso persistente. Tem de começar por uma letra, terminar com uma letra ou um número e conter apenas letras minúsculas, números e hífenes (-).
- DISPLAY_NAME: opcional. O nome a apresentar do recurso persistente.
- MACHINE_TYPE: o tipo de máquina virtual (VM) a usar. Para ver uma lista das VMs suportadas, consulte os tipos de máquinas.
Este campo corresponde ao campo
machineSpec.machineType
no - REPLICA_COUNT: o número de réplicas a criar quando criar este conjunto de recursos.
REST
Um recurso persistente pode ter um ou mais conjuntos de recursos
(machine_spec
) e cada conjunto de recursos pode ter o dimensionamento automático ativado ou desativado.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o ID do projeto do Google Cloud projeto onde quer criar o recurso persistente.
- LOCATION: a região onde quer criar o recurso persistente. Para ver uma lista das regiões suportadas, consulte o artigo Disponibilidade das funcionalidades.
- PERSISTENT_RESOURCE_ID: o ID do recurso persistente.
- DISPLAY_NAME: (Opcional) O nome a apresentar do recurso persistente.
- MACHINE_TYPE: o tipo de VM a usar. Para ver uma lista
das VMs suportadas, consulte Tipos de máquinas.
Este campo corresponde ao campo
machineSpec.machineType
na mensagem da APIResourcePool
. - ACCELERATOR_TYPE: (Opcional) O tipo de GPU a associar
a cada VM no conjunto de recursos. Para ver uma lista das GPUs suportadas, consulte a secção
GPUs. Este campo corresponde ao campo
machineSpec.acceleratorType
na mensagem da APIResourcePool
. - ACCELERATOR_COUNT: (Opcional) O número de GPUs a
anexar a cada VM no conjunto de recursos. O valor predefinido é
1
. Este campo corresponde ao campomachineSpec.acceleratorCount
na mensagem da APIResourcePool
. - REPLICA_COUNT: o número de réplicas a criar quando criar este conjunto de recursos. Este campo corresponde ao campo
replicaCount
na mensagem da APIResourcePool
. Este campo é obrigatório se não especificar MIN_REPLICA_COUNT e MAX_REPLICA_COUNT. - MIN_REPLICA_COUNT: (Opcional) O número mínimo de réplicas para o qual o ajuste de escala automático pode reduzir a escala deste conjunto de recursos. O MIN_REPLICA_COUNT e o MAX_REPLICA_COUNT são necessários para ativar o ajuste de escala automático neste conjunto de recursos.
- MAX_REPLICA_COUNT: (Opcional) O número máximo de réplicas que o dimensionamento automático pode dimensionar para este conjunto de recursos. O MIN_REPLICA_COUNT e o MAX_REPLICA_COUNT são necessários para ativar o ajuste de escala automático neste conjunto de recursos.
- BOOT_DISK_TYPE: (Opcional) O tipo de disco a usar para
como disco de arranque de cada VM no conjunto de recursos. Este campo corresponde ao campo
diskSpec.bootDiskType
na mensagem da APIResourcePool
. Os valores aceitáveis incluem o seguinte:pd-standard
(predefinição)pd-ssd
- BOOT_DISK_SIZE_GB: (Opcional) O espaço em disco em GiB para
o disco de arranque de cada VM no conjunto de recursos. Os valores aceitáveis são
100
(predefinição) a64000
. Este 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 do pedido:
{ "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 o seu pedido, expanda uma destas opções:
Deve receber uma resposta JSON semelhante à seguinte:
{ "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" } } }
Esgotamento de recursos
Pode haver indisponibilidade de recursos escassos, como GPUs A100, o que pode levar a uma falha persistente na criação de recursos quando não estiverem disponíveis recursos na região especificada. Neste caso, pode tentar reduzir o número de réplicas, mudar para um tipo de acelerador diferente, tentar novamente durante as horas de menor procura ou experimentar outra região.
O que se segue?
- Executar tarefas de preparação num recurso persistente.
- Saiba mais acerca do recurso persistente.
- Receba informações sobre um recurso persistente.
- Reinicie um recurso persistente.
- Elimine um recurso persistente.