Panoramica
Puoi ridurre il costo di esecuzione dei job di previsione utilizzando le VM spot. Le VM spot sono istanze di macchine virtuali (VM) che rappresentano la capacità di Compute Engine in eccesso. Le VM spot beneficiano di sconti significativi, ma Compute Engine potrebbe arrestarle o eliminarle preventivamente (prerilasciarle) per recuperare capacità in qualsiasi momento.
Per saperne di più, consulta VM spot.
Limitazioni e requisiti
Tieni presente le seguenti limitazioni e i seguenti requisiti quando utilizzi le VM spot con Agent Platform:
- Quando utilizzi le VM spot con Agent Platform, si applicano tutte le limitazioni delle VM spot.
- L'utilizzo delle VM spot con Agent Platform è supportato solo per l'addestramento e l'inferenza senza server.
- L'utilizzo delle VM spot con i pod TPU non è supportato.
- L'invio del job tramite la Google Cloud console non è supportato.
Fatturazione
Se i tuoi workload sono a tolleranza di errore e possono essere sottoposti a eventuali prerilasci delle VM, le VM spot possono ridurre sensibilmente i costi di calcolo. Se alcune delle tue VM si arrestano durante l'elaborazione, il job rallenta, ma non si arresta completamente Le VM spot completano le tue attività di elaborazione batch senza imporre un ulteriore carico sulle VM esistenti e senza che tu debba pagare il prezzo pieno per VM standard aggiuntive. Consulta Gestione del prerilascio.
Quando utilizzi le VM spot, la fatturazione viene effettuata in base alla durata del job e al tipo di macchina. Non paghi per il tempo in cui il job è in coda o viene prerilasciato.
Gestione del prerilascio
Le VM spot possono essere recuperate da Compute Engine in qualsiasi momento. Per scoprire come ottenere il massimo dalle VM spot, consulta Best practice per le VM spot.
Ottenere inferenze utilizzando le VM spot
Per utilizzare le VM spot quando esegui il deployment di un modello per ottenere inferenze, puoi utilizzare l'API REST o l'SDK Agent Platform per Python.
REST
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- LOCATION_ID: la regione in cui utilizzi Agent Platform.
- 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
DeployedModel. Puoi utilizzare anche il nome visualizzato diModelper laDeployedModelas well. -
MACHINE_TYPE: (facoltativo) Le risorse macchina utilizzate per ogni nodo di questo deployment. L'impostazione predefinita è
n1-standard-2. Scopri di più sui tipi di macchina. - ACCELERATOR_TYPE: (facoltativo) Il tipo di acceleratore da collegare alla macchina. Scopri di più.
- ACCELERATOR_COUNT: (facoltativo) Il numero di acceleratori da utilizzare per ogni replica.
- MIN_REPLICA_COUNT: il numero minimo di nodi per questo deployment. Il conteggio di nodi può essere aumentato o diminuito in base al carico di inferenza fino al numero massimo di nodi e mai inferiore a questo numero di nodi. Questo valore deve essere maggiore o uguale a 1.
- MAX_REPLICA_COUNT: il numero massimo di nodi per questo deployment. Il conteggio di nodi può essere aumentato o diminuito in base al carico di inferenza fino a questo numero di nodi e mai inferiore al numero minimo di nodi.
- TRAFFIC_SPLIT_THIS_MODEL: la percentuale del traffico di previsione verso questo endpoint da indirizzare al modello di cui viene eseguito il deployment con questa operazione. Il valore predefinito è 100. La somma di tutte le percentuali di traffico deve essere pari a 100. Scopri di più sulla suddivisione del traffico.
- DEPLOYED_MODEL_ID_N: (facoltativo) Se altri modelli vengono sottoposti a deployment su questo endpoint, devi aggiornare le percentuali di suddivisione del traffico in modo che la somma di tutte le percentuali sia pari a 100.
- TRAFFIC_SPLIT_MODEL_N: il valore della percentuale di suddivisione del traffico per la chiave dell'ID del modello di cui è stato eseguito il deployment.
- PROJECT_NUMBER: il numero di progetto generato automaticamente per il tuo progetto.
Metodo HTTP e URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/endpoints/ENDPOINT_ID:deployModel
Corpo JSON della richiesta:
{
"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
},
}
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{
"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
Per scoprire come installare o aggiornare l'SDK Agent Platform per Python, consulta Installare l'SDK Agent Platform per Python. Per saperne di più, consulta la documentazione di riferimento dell'API dell'SDK Agent Platform per 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 )
Passaggi successivi
- Scopri di più sulle VM spot.
- Per saperne di più sulle VM di Compute Engine in generale, consulta la documentazione relativa alle istanze di macchine virtuali.
- Per scoprire come creare VM spot, consulta Crea e utilizza VM spot.
- Utilizza le VM spot con l'addestramento di Agent Platform training.
- Utilizza le VM con avvio flessibile con l'inferenza di Agent Platform.