Crie um recurso persistente

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:

  1. Na Google Cloud consola, aceda à página Recursos persistentes.

    Aceda a Recursos persistentes

  2. Clique em Criar cluster.

  3. 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.
  4. Clique em Continuar.

  5. Configure os recursos de computação para o cluster da seguinte forma:

    1. Clique em Conjunto de trabalhadores 1.
    2. 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.
    3. Clique em Concluído.

    4. (Opcional) Para adicionar mais conjuntos de trabalhadores, clique em Adicionar conjunto de trabalhadores.

  6. 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 API ResourcePool.
  • 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 API ResourcePool.
  • 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 campo machineSpec.acceleratorCount na mensagem da API ResourcePool.
  • 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 API ResourcePool. 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 API ResourcePool. 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) a 64000. Este campo corresponde ao campo diskSpec.bootDiskSizeGb na mensagem da API ResourcePool.
  • 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âmetro enable_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 API ResourcePool.
  • 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 API ResourcePool.
  • 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 campo machineSpec.acceleratorCount na mensagem da API ResourcePool.
  • 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 API ResourcePool. 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 API ResourcePool. 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) a 64000. Este campo corresponde ao campo diskSpec.bootDiskSizeGb na mensagem da API ResourcePool.

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?