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

Este guia descreve os benefícios e as limitações do uso de VMs de início flexível 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.

É possível especificar por quanto tempo você 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á automaticamente removido da implantação. Você também pode cancelar a implantação manual do modelo 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 a carga de trabalho está em execução.

Limitações e requisitos

Considere as seguintes limitações e requisitos ao usar VMs de início flexível:

  • 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 com uma duração maior será rejeitada.
  • Suporte a TPU: não é possível usar VMs de início flexível com pods de TPU.
  • Quota: verifique se você tem cota preemptiva suficiente da Vertex AI antes de iniciar o job. Para saber mais, consulte Cotas de taxa.
  • 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 seus 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 para 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