Para asegurarte de que los recursos de VM estén disponibles cuando tus trabajos de Dataflow los necesiten, puedes usar las reservas de Compute Engine. Las reservas proporcionan un nivel de seguridad alto a fin de obtener capacidad para los recursos zonales de Compute Engine. Para obtener más información, consulta Reservas de recursos zonales de Compute Engine.
Descripción general
Tus trabajos de entrenamiento y predicción personalizados de Vertex AI pueden consumir reservas de Compute Engine. Tu reserva debe especificar un tipo de máquina A2 o A3. Si los recursos de esas reservas son aptos para descuentos por compromiso de uso (CUD), cuando tus VMs consuman esas reservas, obtendrás esos recursos a precios con descuento. Consulta CUDs para tus recursos reservados.
Limitaciones y requisitos
Ten en cuenta las siguientes limitaciones y requisitos cuando uses las reservas de Compute Engine con Vertex AI:
-
Vertex AI solo puede consumir reservas con las siguientes series de máquinas:
- A2
- A3
- El uso de reservas de Compute Engine con Vertex AI solo se admite para el entrenamiento y la predicción personalizados.
- Asegúrate de que haya suficiente cuota disponible para tus trabajos de Vertex AI. Consulta Requisitos de cuota adicionales para las reservas compartidas.
- Para admitir actualizaciones periódicas de tus implementaciones de Vertex AI, te recomendamos que aumentes el recuento de VMs en al menos 1 VM adicional para cada implementación simultánea.
- Asegúrate de que las restricciones de la política de tu organización permitan reservas compartidas. Consulta Permite y restringe la creación y la modificación de reservas compartidas para los proyectos.
- Para usar la reserva, las propiedades de la instancia de VM de la reserva deben coincidir exactamente con tu carga de trabajo de Vertex AI. Por ejemplo, si una carga de trabajo de Vertex AI tiene un tipo de máquina
a2-megagpu-16g
, el tipo de máquina de la reserva debe coincidir. Consulta Requisitos. -
Los siguientes servicios y funciones no son compatibles cuando se usan reservas de Compute Engine con la predicción de Vertex AI:
- Claves de encriptación administradas por el cliente (CMEK)
- Cumplimiento del Programa Federal de Administración de Autorizaciones y Riesgo (FedRAMP)
Facturación
Cuando usas las reservas de Compute Engine, se te factura lo siguiente:
- Precios de Compute Engine para los recursos de Compute Engine, incluidos los descuentos por uso comprometido (CUD) aplicables. Consulta los precios de Compute Engine.
- Tarifas de administración de predicciones de Vertex AI, además del uso de tu infraestructura. Consulta Precios de las predicciones.
Antes de comenzar
- Revisa los requisitos y las y las restricciones para las reservas.
- Revisa los requisitos de cuota y las restricciones para las reservas.
Permite que se consuma una reserva
Antes de consumir una reserva de VMs A2 o A3, debes configurar su política de uso compartido para permitir que Vertex AI consuma la reserva. Para ello, usa uno de los siguientes métodos:
Cómo permitir el consumo mientras se crea una reserva
Cuando creas una reserva de un solo proyecto o compartida de VMs A2 o A3, puedes especificar que Vertex AI consuma la reserva de la siguiente manera:
- Si usas la consola de Google Cloud, en la sección Servicios de Google Cloud, selecciona Compartir reserva
- Si usas Google Cloud CLI, incluye la marca
--reservation-sharing-policy
establecida enALLOW_ALL
. - Si usas la API de REST, incluye el campo
serviceShareType
configurado enALLOW_ALL
.
Cómo permitir el consumo en una reserva existente
Para permitir que Vertex AI consuma una reserva existente de VMs A2 o A3, consulta Cómo modificar la política de uso compartido de una reserva.Obtén predicciones con una reserva
Para consumir una reserva de Compute Engine cuando implementas un modelo para obtener predicciones, puedes usar la API de REST o el SDK de Vertex AI para Python.
REST
Antes de usar cualquiera de los datos de solicitud a continuación, haz los siguientes reemplazos:
- LOCATION_ID: la región en la que usas Vertex AI.
- PROJECT_ID: El ID del proyecto.
- ENDPOINT_ID: Es el ID del extremo.
- MODEL_ID: El ID del modelo que se implementará.
-
DEPLOYED_MODEL_NAME: Un nombre para
DeployedModel
También puedes usar el nombre comercial deModel
paraDeployedModel
. -
MACHINE_TYPE: Opcional Los recursos de máquina que se usan para cada nodo de esta implementación. Su configuración predeterminada es
n1-standard-2
. Obtén más información sobre los tipos de máquinas. - RESERVATION_AFFINITY_TYPE: debe ser
ANY
,SPECIFIC_RESERVATION
oNONE
.ANY
significa que las VMs de tucustomJob
pueden consumir automáticamente cualquier reserva con propiedades coincidentes.SPECIFIC_RESERVATION
significa que las VMs de tucustomJob
solo pueden consumir una reserva a la que las VMs se orienten de forma específica por nombre.NONE
significa que las VMs decustomJob
no pueden consumir ninguna reserva. EspecificarNONE
tiene el mismo efecto que omitir una especificación de afinidad de reserva.
- RESERVATION_NAME: el nombre de tu reserva
- MIN_REPLICA_COUNT: La cantidad mínima de nodos para esta implementación. El recuento de nodos se puede aumentar o disminuir según lo requiera la carga de predicción, hasta la cantidad máxima de nodos y nunca menos que esta cantidad. Este valor debe ser mayor o igual que 1%
- MAX_REPLICA_COUNT: La cantidad máxima de nodos para esta implementación. El recuento de nodos se puede aumentar o disminuir, según lo requiera la carga de predicción, hasta esta cantidad de nodos y nunca menos que la cantidad mínima de nodos.
- TRAFFIC_SPLIT_THIS_MODEL: El porcentaje del tráfico de predicción a este extremo para enrutar al modelo que se implementa con esta operación. La configuración predeterminada es 100. Todos los porcentajes de tráfico deben sumar hasta 100. Obtén más información sobre las divisiones del tráfico.
- DEPLOYED_MODEL_ID_N: Opcional Si se implementan otros modelos en este extremo, debes actualizar sus porcentajes de división del tráfico para que todos los porcentajes sumen hasta 100.
- TRAFFIC_SPLIT_MODEL_N: El valor de porcentaje de división del tráfico para la clave del ID del modelo implementado
- PROJECT_NUMBER: el número de proyecto de tu proyecto generado de forma automática.
Método HTTP y URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION_ID/endpoints/ENDPOINT_ID:deployModel
Cuerpo JSON de la solicitud:
{ "deployedModel": { "model": "projects/PROJECT/locations/LOCATION_ID/models/MODEL_ID", "displayName": "DEPLOYED_MODEL_NAME", "dedicatedResources": { "machineSpec": { "machineType": "MACHINE_TYPE", "reservationAffinity": { "reservationAffinityType": "RESERVATION_AFFINITY_TYPE", "key": "compute.googleapis.com/reservation-name", "values": [ "projects/PROJECT_ID/reservations/RESERVATION_NAME" ] } }, "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 tu solicitud, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "name": "projects/PROJECT_ID/locations/LOCATION_ID/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
Si deseas obtener información para instalar o actualizar el SDK de Vertex AI para Python, consulta Instala el SDK de Vertex AI para Python. Si deseas obtener más información, consulta la documentación de referencia de la API del SDK de Vertex AI para Python.
Para usar una reserva específica, haz lo siguiente:
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, reservation_affinity_type="SPECIFIC_RESERVATION", reservation_affinity_key="compute.googleapis.com/reservation-name", reservation_affinity_values=["projects/PROJECT_ID/zones/ZONE/reservations/RESERVATION_NAME"], min_replica_count=MIN_REPLICA_COUNT, max_replica_count=MAX_REPLICA_COUNT, sync=True )
Para usar cualquier reserva, haz lo siguiente:
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, reservation_affinity_type="ANY_RESERVATION", min_replica_count=MIN_REPLICA_COUNT, max_replica_count=MAX_REPLICA_COUNT, sync=True )
¿Qué sigue?
- Obtén información sobre las reservas de los recursos zonales de Compute Engine.
- Usa reservas con el entrenamiento de Vertex AI.