Vista geral
Pode reduzir o custo de execução das tarefas de previsão usando VMs do Spot. As VMs do Spot são instâncias de máquinas virtuais (VMs) que são capacidade do Compute Engine em excesso. As VMs do Spot têm descontos significativos, mas o Compute Engine pode parar ou eliminar (preempt) VMs do Spot antecipadamente para reclamar a capacidade em qualquer altura.
Para saber mais, consulte o artigo VMs do Spot.
Limitações e requisitos
Considere as seguintes limitações e requisitos quando usar VMs de capacidade limitada com a Vertex AI:
- Todas as limitações das VMs do Spot aplicam-se quando usa VMs do Spot com o Vertex AI.
- A utilização de VMs do Spot com a Vertex AI é suportada apenas para preparação e inferência personalizadas.
- A utilização de VMs do Spot com pods de TPUs não é suportada.
- O envio do seu trabalho através da Google Cloud consola não é suportado.
Faturação
Se as suas cargas de trabalho forem tolerantes a falhas e puderem resistir a uma possível remoção preventiva de VMs, as VMs do Spot podem reduzir significativamente os seus custos de computação. Se algumas das suas VMs pararem durante o processamento, a tarefa fica mais lenta, mas não para completamente. As VMs de capacidade instantânea concluem as suas tarefas de processamento em lote sem colocar carga adicional nas VMs existentes e sem exigir que pague o preço total pelas VMs padrão adicionais. Consulte o artigo Processamento de antecipação.
Quando usa VMs do Spot, a faturação é feita com base na duração da tarefa e no tipo de máquina. Não paga o tempo em que o trabalho está numa fila ou é antecipado.
Processamento de preempção
As VMs de capacidade instantânea podem ser reclamadas pelo Compute Engine em qualquer altura.
Quando as VMs do Spot são anuladas, a tarefa de previsão falha com um erro STOCKOUT
e o Compute Engine tenta reiniciar a tarefa até seis vezes. Para saber como tirar o máximo partido das VMs do Spot, consulte as
práticas recomendadas
das VMs do Spot.
Obtenha inferências através de VMs do Spot
Para usar VMs de capacidade instantânea quando implementa um modelo para obter inferências, pode usar a API REST ou o SDK do Vertex AI para Python.
REST
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- LOCATION_ID: a região onde está a usar o Vertex AI.
- PROJECT_ID: o seu ID do projeto.
- ENDPOINT_ID: o ID do ponto final.
- MODEL_ID: o ID do modelo a implementar.
-
DEPLOYED_MODEL_NAME: um nome para o
DeployedModel
. Também pode usar o nome a apresentar doModel
para oDeployedModel
. -
MACHINE_TYPE: opcional. Os recursos da máquina usados para cada nó desta implementação. A predefinição é
n1-standard-2
. Saiba mais sobre os tipos de máquinas. - ACCELERATOR_TYPE: opcional. O tipo de acelerador a anexar à máquina. Saiba mais.
- ACCELERATOR_COUNT: opcional. O número de aceleradores que cada réplica deve usar.
- MIN_REPLICA_COUNT: o número mínimo de nós para esta implementação. O número de nós pode ser aumentado ou diminuído conforme necessário pela carga de inferência, até ao número máximo de nós e nunca inferior a este número de nós. Este valor tem de ser igual ou superior a 1.
- MAX_REPLICA_COUNT: o número máximo de nós para esta implementação. O número de nós pode ser aumentado ou diminuído conforme necessário pela carga de inferência, até este número de nós e nunca inferior ao número mínimo de nós.
- TRAFFIC_SPLIT_THIS_MODEL: A percentagem do tráfego de previsão para este ponto final a encaminhar para o modelo implementado com esta operação. A predefinição é 100. Todas as percentagens de tráfego têm de totalizar 100. Saiba mais acerca das divisões de tráfego.
- DEPLOYED_MODEL_ID_N: opcional. Se outros modelos forem implementados neste ponto final, tem de atualizar as respetivas percentagens de divisão de tráfego para que todas as percentagens totalizem 100.
- TRAFFIC_SPLIT_MODEL_N: o valor da percentagem da divisão de tráfego para a chave do ID do modelo implementado.
- PROJECT_NUMBER: o número do projeto gerado automaticamente para o seu projeto.
Método HTTP e URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/endpoints/ENDPOINT_ID:deployModel
Corpo JSON do pedido:
{ "acceleratorCount": 1}, "spot": true, "minReplicaCount": 1, "maxReplicaCount": 1}}, "trafficSplit": {"0": 100}}' \ "https://LOCATION_ID-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION_ID/endpoints/ENDPOINT_ID:deployModel" "deployedModel": { "model": "projects/PROJECT/locations/us-central1/models/MODEL_ID", "displayName": "DEPLOYED_MODEL_NAME", "enableContainerLogging": true, "dedicatedResources": { "machineSpec": { "machineType": "MACHINE_TYPE", "acceleratorType": "ACCELERATOR_TYPE", "acceleratorCount": ACCELERATOR_COUNT }, "spot": true, "minReplicaCount": MIN_REPLICA_COUNT, "maxReplicaCount": MAX_REPLICA_COUNT }, }, "trafficSplit": { "0": TRAFFIC_SPLIT_THIS_MODEL, "DEPLOYED_MODEL_ID_1": TRAFFIC_SPLIT_MODEL_1, "DEPLOYED_MODEL_ID_2": TRAFFIC_SPLIT_MODEL_2 }, }
Para enviar o seu pedido, expanda uma destas opções:
Deve receber uma resposta JSON semelhante à seguinte:
{ "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" } } }
Python
Para saber como instalar ou atualizar o SDK Vertex AI para Python, consulte o artigo Instale o SDK Vertex AI para Python. Para mais informações, consulte a documentação de referência da API do SDK Vertex AI para Python.
endpoint5.deploy( model = model, deployed_model_display_name=DEPLOYED_NAME, traffic_split=TRAFFIC_SPLIT, machine_type="MACHINE_TYPE", accelerator_type="ACCELERATOR_TYPE", accelerator_count=ACCELERATOR_COUNT, min_replica_count=MIN_REPLICA_COUNT, max_replica_count=MAX_REPLICA_COUNT, spot=True, sync=True )
O que se segue?
- Saiba mais sobre as VMs do Spot.
- Para saber mais sobre as VMs do Compute Engine em geral, leia a documentação sobre as instâncias de máquinas virtuais.
- Para saber como criar VMs do Spot, leia o artigo Crie e use VMs do Spot.
- Use VMs do Spot com a preparação do Vertex AI.
- Use VMs de início flexível com a inferência do Vertex AI.