Usar VMs de início flexível do DWS com inferência

Este guia descreve os benefícios e as limitações do uso de VMs flexíveis com a inferência da Vertex AI. Este guia também descreve como implantar um modelo que usa VMs de início flexível.

Visão geral

É possível reduzir o custo da execução dos jobs de inferência usando VMs de início flexível, que são alimentadas pelo Programador Dinâmico de Cargas de Trabalho. As VMs de início flexível oferecem descontos significativos e são adequadas para cargas de trabalho de curta duração.

Você pode especificar por quanto tempo precisa de uma VM de início flexível, por qualquer período de até sete dias. Depois que o tempo solicitado expirar, o modelo implantado será removido automaticamente. Você também pode cancelar a implantação do modelo manualmente antes do prazo.

Cancelamento automático da implantação

Se você solicitar uma VM de início flexível por um período específico, o modelo será automaticamente removido após esse período. Por exemplo, se você solicitar uma VM de início flexível por cinco horas, o modelo será automaticamente removido cinco horas após o envio. Você só paga pelo tempo em que sua carga de trabalho está em execução.

Limitações e requisitos

Considere as seguintes limitações e requisitos ao usar VMs flex-start:

  • Duração máxima: as VMs de início flexível têm uma duração máxima de uso de sete dias. Qualquer solicitação de implantação por um período mais longo será rejeitada.
  • Suporte a TPU: não é possível usar VMs flex-start com pods de TPU.
  • Cota: verifique se você tem cota preemptiva suficiente da Vertex AI antes de iniciar o job. Para saber mais, consulte Cota.
  • Provisionamento em fila: não é possível usar VMs de início flexível com provisionamento em fila.
  • Reciclagem de nós: não há suporte para reciclagem de nós.

Faturamento

Se a carga de trabalho for executada por menos de sete dias, o uso de VMs de início flexível poderá reduzir os custos.

Ao usar VMs de início flexível, você recebe uma cobrança com base na duração do job e no tipo de máquina selecionado. Você só paga pelo tempo em que sua carga de trabalho está em execução. Você não paga pelo tempo em que o job está na fila ou por qualquer período após o vencimento da duração solicitada.

O faturamento é distribuído em duas SKUs:

Receber inferências usando VMs de início flexível

Para usar VMs de início flexível ao implantar um modelo para receber inferências, use a API REST.

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • LOCATION_ID: a região em que você está usando a Vertex AI.
  • PROJECT_ID: o ID do projeto.
  • ENDPOINT_ID: o ID do endpoint.
  • MODEL_ID: o ID do modelo a ser implantado.
  • DEPLOYED_MODEL_NAME: um nome para DeployedModel. Também é possível usar o nome de exibição do Model para o DeployedModel.
  • MACHINE_TYPE: opcional. Os recursos de máquina usados para cada nó desta implantação. A configuração padrão é n1-standard-2. Saiba mais sobre tipos de máquinas.
  • ACCELERATOR_TYPE: opcional. O tipo de acelerador a ser anexado à máquina. Saiba mais.
  • ACCELERATOR_COUNT: opcional. O número de aceleradores a serem usados por cada réplica.
  • MAX_RUNTIME_DURATION: a duração máxima da implantação de início flexível. O modelo implantado é removido automaticamente após esse período. Especifique a duração em segundos, terminando com um s. Por exemplo, 3600s por uma hora. O valor máximo é 604800s (7 dias).
  • PROJECT_NUMBER: o número do projeto gerado automaticamente.

Método HTTP e URL:

POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/endpoints/ENDPOINT_ID:deployModel

Corpo JSON da solicitação:

{
  "deployedModel": {
    "model": "projects/PROJECT/locations/LOCATION/models/MODEL_ID",
    "displayName": "DEPLOYED_MODEL_NAME",
    "enableContainerLogging": true,
    "dedicatedResources": {
      "machineSpec": {
        "machineType": "MACHINE_TYPE",
        "acceleratorType": "ACCELERATOR_TYPE",
        "acceleratorCount": ACCELERATOR_COUNT
      },
      "flexStart": {
        "maxRuntimeDuration": "MAX_RUNTIME_DURATION"
      },
      "minReplicaCount": 2,
      "maxReplicaCount": 2
    },
  },
}

Para enviar a solicitação, expanda uma destas opções:

Você receberá uma resposta JSON semelhante a esta:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/endpoints/ENDPOINT_ID/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.aiplatform.v1beta1.DeployModelOperationMetadata",
    "genericMetadata": {
      "createTime": "2020-10-19T17:53:16.502088Z",
      "updateTime": "2020-10-19T17:53:16.502088Z"
    }
  }
}

A seguir