En esta guía se describen las ventajas y las limitaciones de usar VMs de inicio flexible con la inferencia de Vertex AI. En esta guía también se describe cómo desplegar un modelo que usa VMs de inicio flexible.
Información general
Puedes reducir el coste de ejecutar tus tareas de inferencia usando VMs de inicio flexible, que se basan en Dynamic Workload Scheduler. Las VMs de inicio flexible ofrecen descuentos significativos y son adecuadas para cargas de trabajo de corta duración.
Puedes especificar cuánto tiempo necesitas una VM de inicio flexible, con una duración máxima de siete días. Una vez que haya transcurrido el tiempo solicitado, el modelo desplegado se retirará automáticamente. También puedes retirar manualmente el modelo antes de que finalice el plazo.
Despliegue automático
Si solicitas una VM de inicio flexible para una duración específica, tu modelo se dejará de implementar automáticamente después de ese periodo. Por ejemplo, si solicitas una VM de inicio flexible durante cinco horas, el modelo se retirará automáticamente cinco horas después de enviarla. Solo se te cobra por el tiempo que se ejecuta tu carga de trabajo.
Limitaciones y requisitos
Ten en cuenta las siguientes limitaciones y requisitos cuando uses máquinas virtuales de inicio flexible:
- Duración máxima: las VMs de inicio flexible tienen una duración máxima de uso de siete días. Se rechazará cualquier solicitud de implementación con una duración mayor.
- Compatibilidad con TPU: no se admite el uso de VMs de inicio flexible con pods de TPU.
- Quota asegúrate de tener suficiente cuota de Vertex AI preemptible antes de iniciar el trabajo. Para obtener más información, consulta Cuotas de frecuencia.
- Aprovisionamiento en cola: no se admite el uso de VMs de inicio flexible con aprovisionamiento en cola.
- Reciclaje de nodos: no se admite el reciclaje de nodos.
Facturación
Si tu carga de trabajo se ejecuta durante menos de siete días, puedes reducir los costes usando VMs de inicio flexible.
Cuando usas máquinas virtuales de inicio flexible, se te cobra en función de la duración de tu trabajo y del tipo de máquina que selecciones. Solo se te cobra por el tiempo que tu carga de trabajo esté activa. No pagas por el tiempo que la tarea está en una cola ni por el tiempo que transcurre después de que haya finalizado la duración solicitada.
La facturación se distribuye en dos SKUs:
El SKU de Compute Engine, con la etiqueta
vertex-ai-online-prediction
. Consulta los precios de Dynamic Workload Scheduler.SKU de la cuota de gestión de Vertex AI. Consulta los precios de Vertex AI.
Obtener inferencias mediante máquinas virtuales de inicio flexible
Para usar máquinas virtuales de inicio flexible al desplegar un modelo para obtener inferencias, puede usar la API REST.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- LOCATION_ID: la región en la que usas Vertex AI.
- PROJECT_ID: tu ID de proyecto.
- ENDPOINT_ID: ID del endpoint.
- MODEL_ID: ID del modelo que se va a implementar.
-
DEPLOYED_MODEL_NAME: nombre del
DeployedModel
. También puedes usar el nombre visible de laModel
para laDeployedModel
. -
MACHINE_TYPE: opcional. Los recursos de la máquina que se usan en cada nodo de esta implementación. Su ajuste predeterminado es
n1-standard-2
. Más información sobre los tipos de máquinas - ACCELERATOR_TYPE: opcional. Tipo de acelerador que se va a asociar a la máquina. Más información
- ACCELERATOR_COUNT: opcional. Número de aceleradores que se deben usar en cada réplica.
-
MAX_RUNTIME_DURATION: la duración máxima de la implementación de flex-start.
El modelo implementado se desimplementa automáticamente después de este periodo. Especifica la duración en segundos, que termina con
s
. Por ejemplo,3600s
durante una hora. El valor máximo es604800s
(7 días). - PROJECT_NUMBER: el número de proyecto que se genera automáticamente.
Método HTTP y URL:
POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/endpoints/ENDPOINT_ID:deployModel
Cuerpo JSON de la solicitud:
{ "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 tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{ "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" } } }