Per assicurarti che le risorse VM siano disponibili quando i job di addestramento personalizzato ne hanno bisogno, puoi utilizzare le prenotazioni Compute Engine. Le prenotazioni offrono un elevato livello di garanzia per l'ottenimento della capacità per le risorse Compute Engine. Per saperne di più, consulta Prenotazioni di Compute Engine risorse di zona.
Panoramica
I job di addestramento e previsione personalizzati di Vertex AI possono consumare 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 l'addestramento e le previsioni personalizzate.
- 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 di Vertex AI, ti consigliamo di aumentare il numero di VM di almeno un'altra VM per ogni deployment simultaneo.
- Assicurati che i vincoli dei criteri dell'organizzazione consentano le prenotazioni condivise. Consulta: Consenti e impedisce ai progetti di creare e modificare prenotazioni condivise.
- Per poter utilizzare la prenotazione, le proprietà delle istanze VM devono corrispondere esattamente al tuo workload Vertex AI. 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. -
I seguenti servizi e funzionalità non sono supportati quando utilizzi le prenotazioni Compute Engine con l'addestramento Vertex AI:
- Chiavi di crittografia gestite dal cliente (CMEK)
- Pianificazione carichi di lavoro dinamici
- Eseguire job di addestramento su una risorsa permanente
- Il job di addestramento personalizzato deve utilizzare un account di servizio personalizzato. Consulta Utilizzare un account di servizio personalizzato.
Fatturazione
Quando utilizzi le prenotazioni Compute Engine, ti vengono addebitati i seguenti costi:
- Prezzi di Compute Engine per le risorse di Compute Engine, inclusi eventuali sconti per impegno di utilizzo (CUD) applicabili. Consulta la pagina Prezzi di Compute Engine.
- Le tariffe per la gestione dell'addestramento personalizzato di Vertex AI, oltre alle all'utilizzo dell'infrastruttura. Consulta i prezzi dei modelli con addestramento personalizzato.
Prima di iniziare
- Leggi lo requisiti e limitazioni per le prenotazioni.
- Esamina il quota requisiti e 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
- Consenti il consumo in una prenotazione esistente
Consenti 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, nella sezione 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 il campo
serviceShareType
impostato suALLOW_ALL
.
Consentire 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.Crea un job di addestramento personalizzato con una prenotazione
Puoi creare un job di addestramento personalizzato che utilizza una prenotazione Compute Engine utilizzando l'API REST.
REST
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- LOCATION: la regione in cui verrà installato il container o il pacchetto Python vengono eseguiti tutti i test delle unità.
- PROJECT_ID: il tuo ID progetto.
-
JOB_NAME: campo obbligatorio. Un nome visualizzato per
CustomJob
. - Definisci il job di addestramento personalizzato:
- MACHINE_TYPE: tipo di macchina. Consulta di tipi di macchine addestramento.
RESERVATION_AFFINITY_TYPE: deve essere
ANY
,SPECIFIC_RESERVATION
oNONE
.ANY
significa che le VM del tuocustomJob
possono automaticamente utilizzare qualsiasi prenotazione con proprietà corrispondenti.SPECIFIC_RESERVATION
significa che le VM dei tuoicustomJob
può consumare solo una prenotazione che le VM hanno scelto come target in modo specifico 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 tua prenotazione.
- DISK_TYPE: facoltativo. Il tipo di disco di avvio da utilizzare per il job, ovvero
pd-standard
(valore predefinito) opd-ssd
. Scopri di più sui tipi di disco. - DISK_SIZE: facoltativo. La dimensione in GB del disco di avvio da utilizzare per il job. Il valore predefinito è 100.
- REPLICA_COUNT: il numero di repliche dei worker da utilizzare. Nella maggior parte dei casi,
imposta questo valore su
1
per primo worker pool. - Se l'applicazione di addestramento viene eseguita in un container personalizzato, specifica quanto segue:
- CUSTOM_CONTAINER_IMAGE_URI: l'URI di un'immagine container in Artifact Registry o Docker Hub da eseguire su ciascuna replica worker.
- CUSTOM_CONTAINER_COMMAND: facoltativo. Il comando da richiamare quando il container in esecuzione. Questo comando sostituisce l'entrypoint predefinito del container.
- CUSTOM_CONTAINER_ARGS: facoltativo. Gli argomenti da passare all'avvio del container.
- Se l'applicazione di addestramento è un pacchetto Python che viene eseguito in un container predefinito,
specifica quanto segue:
- EXECUTOR_IMAGE_URI: l'URI dell'immagine container che viene eseguita il codice fornito. Consulta le di container predefiniti disponibili addestramento.
- PYTHON_PACKAGE_URIS: elenco separato da virgole di Cloud Storage URI che specificano i file del pacchetto Python, ovvero il programma di addestramento e dei pacchetti dipendenti. Il numero massimo di URI dei pacchetti è 100.
- PYTHON_MODULE: il nome del modulo Python da eseguire dopo l'installazione del .
- PYTHON_PACKAGE_ARGS: facoltativo. Argomenti della riga di comando da passare al modulo Python.
- TIMEOUT: facoltativo. Il tempo di esecuzione massimo per il job.
- Specifica LABEL_NAME e LABEL_VALUE per le eventuali etichette da applicare a questo job personalizzato.
Metodo HTTP e URL:
POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/customJobs
Corpo JSON della richiesta:
{ "displayName": "JOB_NAME", "jobSpec": { "workerPoolSpecs": [ { "machineSpec": { "machineType": "MACHINE_TYPE", "reservationAffinity": { "reservationAffinityType": "RESERVATION_AFFINITY_TYPE", "key": "compute.googleapis.com/reservation-name", "values": [ "projects/PROJECT_ID/reservations/RESERVATION_NAME" ] } }, "replicaCount": REPLICA_COUNT, "diskSpec": { "bootDiskType": DISK_TYPE, "bootDiskSizeGb": DISK_SIZE }, // Union field task can be only one of the following: "containerSpec": { "imageUri": CUSTOM_CONTAINER_IMAGE_URI, "command": [ CUSTOM_CONTAINER_COMMAND ], "args": [ CUSTOM_CONTAINER_ARGS ] }, "pythonPackageSpec": { "executorImageUri": EXECUTOR_IMAGE_URI, "packageUris": [ PYTHON_PACKAGE_URIS ], "pythonModule": PYTHON_MODULE, "args": [ PYTHON_PACKAGE_ARGS ] } // End of list of possible types for union field task. } // Specify one workerPoolSpec for single replica training, or multiple workerPoolSpecs // for distributed training. ], "scheduling": { "timeout": TIMEOUT } }, "labels": { LABEL_NAME_1": LABEL_VALUE_1, LABEL_NAME_2": LABEL_VALUE_2 } }
Per inviare la richiesta, scegli una delle seguenti opzioni:
curl
Salva il corpo della richiesta in un file denominato request.json
,
quindi esegui il comando seguente:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/customJobs"
PowerShell
Salva il corpo della richiesta in un file denominato request.json
,
quindi esegui il comando seguente:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/customJobs" | Select-Object -Expand Content
La risposta contiene informazioni sulle specifiche e sul TRAININGPIPELINE_ID.
Passaggi successivi
- Scopri di più sulle prenotazioni delle risorse zonali di Compute Engine.
- Utilizza le prenotazioni con la previsione di Vertex AI.