Per assicurarti che le risorse VM siano disponibili quando i job di previsione ne hanno bisogno, puoi usano le prenotazioni Compute Engine. Le prenotazioni offrono un elevato livello di garanzia nell'ottenimento di per le risorse Compute Engine. Per saperne di più, consulta la pagina Prenotazioni di risorse a livello di zona di Compute Engine.
Panoramica
I job di addestramento e previsione personalizzati di Vertex AI possono utilizzare delle prenotazioni Compute Engine. La prenotazione deve specificare un tipo di macchina A2 o A3. Se le risorse di queste prenotazioni sono idonee per gli sconti per impegno di utilizzo (CUD), quando le VM utilizzano queste prenotazioni, le risorse vengono acquistate a prezzi scontati. Consulta Sconti per impegno di utilizzo (CUD) per le risorse prenotate.
Limitazioni e requisiti
Tieni presente le seguenti limitazioni e requisiti quando utilizzi le prenotazioni Compute Engine con Vertex AI:
-
Vertex AI può utilizzare le prenotazioni solo con le seguenti serie di macchine:
- A2
- A3
- L'utilizzo delle prenotazioni Compute Engine con Vertex AI è supportato solo per addestramento e previsione personalizzati.
- Assicurati che sia disponibile una quota sufficiente per i tuoi job Vertex AI. Consulta Ulteriori requisiti di quota per le prenotazioni condivise.
- Per supportare gli aggiornamenti regolari dei deployment Vertex AI, ti consigliamo aumentando il conteggio delle VM di almeno una VM aggiuntiva per ogni deployment simultaneo.
- Assicurati che i vincoli dei criteri dell'organizzazione consentano le prenotazioni condivise. Consulta Consentire e limitare la creazione e la modifica delle prenotazioni condivise da parte dei progetti.
- Le proprietà dell'istanza VM della tua prenotazione devono corrispondere esattamente alle tue
al carico di lavoro Vertex AI per utilizzare la prenotazione. Ad esempio, se un
carico di lavoro Vertex AI ha un tipo di macchina
a2-megagpu-16g
, il tipo di macchina della prenotazione deve corrispondere. Consulta Requisiti. -
Quando si utilizza Compute Engine, i seguenti servizi e funzionalità non sono supportati con Vertex AI Prediction:
- Chiavi di crittografia gestite dal cliente (CMEK)
- Conformità al Federal Risk and Authorization Management Program (FedRAMP)
Fatturazione
Quando utilizzi le prenotazioni Compute Engine, ti viene addebitato quanto segue:
- I prezzi di Compute Engine per le risorse Compute Engine, inclusi eventuali gli sconti per impegno di utilizzo (CUD) applicabili. Consulta la pagina Prezzi di Compute Engine.
- Le tariffe per la gestione delle previsioni di Vertex AI, oltre alle all'utilizzo dell'infrastruttura. Consulta Prezzi delle previsioni.
Prima di iniziare
- Leggi lo requisiti e limitazioni per le prenotazioni.
- Esamina i requisiti relativi alle quote e le limitazioni per le prenotazioni condivise.
Consentire l'utilizzo di una prenotazione
Prima di utilizzare una prenotazione di VM A2 o A3, devi impostarne le criteri di condivisione per consentire a Vertex AI di utilizzare la prenotazione. A tal fine, utilizza uno dei seguenti metodi:
- Consentire il consumo durante la creazione di una prenotazione
- Consentire il consumo in una prenotazione esistente
Consentire il consumo durante la creazione di una prenotazione
Durante la creazione di un progetto singolo oppure prenotazione condivisa di A2 o VM A3, puoi specificare di consentire a Vertex AI di utilizzare la prenotazione come segue:
- Se utilizzi la console Google Cloud, nei servizi Google Cloud seleziona Condividi prenotazione.
- Se utilizzi Google Cloud CLI, includi
Flag
--reservation-sharing-policy
impostato suALLOW_ALL
. - Se utilizzi l'API REST, includi
serviceShareType
impostato suALLOW_ALL
.
Consenti il consumo in una prenotazione esistente
Per consentire a Vertex AI di utilizzare una prenotazione esistente di VM A2 o A3, consulta Modificare il criterio di condivisione di una prenotazione.Ottenere le previsioni utilizzando una prenotazione
Per utilizzare una prenotazione Compute Engine quando esegui il deployment di un modello per ottenere le previsioni, puoi utilizzare l'API REST o l'SDK Vertex AI per Python.
REST
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- LOCATION_ID: la regione in cui stai utilizzando Vertex AI.
- PROJECT_ID: il tuo ID progetto.
- ENDPOINT_ID: l'ID dell'endpoint.
- MODEL_ID: l'ID del modello di cui eseguire il deployment.
-
DEPLOYED_MODEL_NAME: un nome per il
DeployedModel
. Puoi utilizzare il nome visualizzatoModel
anche perDeployedModel
. -
MACHINE_TYPE: facoltativo. Le risorse macchina utilizzate per ogni nodo
e deployment continuo. L'impostazione predefinita è
n1-standard-2
. Scopri di più sui tipi di macchina. - RESERVATION_AFFINITY_TYPE: deve essere
ANY
,SPECIFIC_RESERVATION
oNONE
.ANY
significa che le VM dicustomJob
vengono automaticamente può utilizzare qualsiasi prenotazione con proprietà corrispondenti.SPECIFIC_RESERVATION
significa che le VM dei tuoicustomJob
può consumare solo una prenotazione che le VM target specificatamente per nome.NONE
significa che le VM del tuocustomJob
non possono consumare nessuna prenotazione. La specifica diNONE
ha lo stesso effetto dell'omissione di una specifica di affinità di prenotazione.
- RESERVATION_NAME: il nome della prenotazione.
- MIN_REPLICA_COUNT: il numero minimo di nodi per questo deployment. Il numero di nodi può essere aumentato o diminuito in base al carico della previsione, fino al numero massimo di nodi e mai meno di questo numero. Questo valore deve essere maggiore o uguale a 1.
- MAX_REPLICA_COUNT: il numero massimo di nodi per questo deployment. Il numero di nodi può essere aumentato o diminuito in base al carico della previsione, fino a questo numero di nodi e mai inferiore al numero minimo di nodi.
- TRAFFIC_SPLIT_THIS_MODEL: la percentuale del traffico di previsione per questo endpoint da inoltrare al modello di cui viene eseguito il deployment con questa operazione. Il valore predefinito è 100. Tutto il traffico la somma delle percentuali deve essere 100. Scopri di più sulle suddivisioni del traffico.
- DEPLOYED_MODEL_ID_N: facoltativo. Se viene eseguito il deployment di altri modelli su questo endpoint, devono aggiornare le rispettive percentuali di suddivisione del traffico in modo che la somma di tutte le percentuali arrivi a 100.
- TRAFFIC_SPLIT_MODEL_N: il valore percentuale di suddivisione del traffico per l'ID del modello di cui è stato eseguito il deployment chiave.
- PROJECT_NUMBER: il numero di progetto generato automaticamente del progetto
Metodo HTTP e URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION_ID/endpoints/ENDPOINT_ID:deployModel
Corpo JSON della richiesta:
{ "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 }, }
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{ "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
Per scoprire come installare o aggiornare l'SDK Vertex AI per Python, consulta Installa l'SDK Vertex AI per Python. Per ulteriori informazioni, consulta SDK Vertex AI per Python documentazione di riferimento dell'API.
Per utilizzare una prenotazione specifica:
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 )
Per utilizzare una prenotazione:
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 )
Passaggi successivi
- Scopri di più sulle prenotazioni delle risorse zonali di Compute Engine.
- Utilizzare le prenotazioni con Vertex AI addestramento.