Per personalizzare il modo in cui Vertex AI fornisce le previsioni online dal tuo
con addestramento personalizzato, puoi specificare un container personalizzato anziché una
container quando crei un
Model
risorsa. Quando utilizzi un container personalizzato, Vertex AI esegue un
container Docker di tua scelta su ogni nodo di previsione.
Ti consigliamo di utilizzare un contenitore personalizzato per uno dei seguenti motivi:
- per generare previsioni da un modello ML addestrato utilizzando un framework non disponibile come container predefinito
- per pre-elaborare le richieste di previsione o post-elaborare le previsioni generate il tuo modello
- per eseguire un server di previsione scritto nel linguaggio di programmazione che preferisci
- per installare le dipendenze che vuoi utilizzare per personalizzare la previsione
Questa guida descrive come creare un modello che utilizza un container personalizzato. Non fornisce istruzioni dettagliate su come progettare e creare un'immagine container Docker.
prepara un'immagine container
Per creare un Model
che utilizza un container personalizzato, devi fornire un'immagine container Docker come base del container. Questa immagine container deve
soddisfare i requisiti descritti in Container personalizzato
requisiti.
Se prevedi di utilizzare un'immagine container esistente creata da una terza parte potresti essere in grado di saltare una o entrambe le seguenti sezioni.
Crea un'immagine container
Progetta e crea un'immagine container Docker che soddisfi i requisiti delle immagini container.
Per apprendere le nozioni di base della progettazione e della creazione di un'immagine container Docker, leggi il Documentazione di Docker Guida rapida
Esegui il push dell'immagine del contenitore in Artifact Registry
Esegui il push dell'immagine container in un repository Artifact Registry.
Scopri come eseguire il push di un'immagine container in Artifact Registry.
Crea un Model
Per creare un Model
che utilizza un contenitore personalizzato, svolgi una delle seguenti operazioni:
Le seguenti sezioni mostrano come configurare i campi API relativi alle
dei container quando crei un elemento Model
in uno di questi modi.
Campi dell'API relativi ai container
Quando crei Model
, assicurati di configurare il campo containerSpec
con i dettagli del tuo contenitore personalizzato anziché con un contenitore predefinito.
Devi specificare un ModelContainerSpec
messaggio in
il campo Model.containerSpec
. In questo messaggio, puoi specificare i seguenti campi secondari:
imageUri
(obbligatorio)L'URI di Artifact Registry dell'immagine container.
Se utilizzi
gcloud ai models upload
comando, puoi usare il flag--container-image-uri
per specificare questo campo.command
(facoltativo)Un array di un file eseguibile e degli argomenti per eseguire l'override dell'istruzione
ENTRYPOINT
del container. Per scoprire di più su come formattare questo campo e su come interagisce con il campoargs
, leggi la documentazione di riferimento dell'API perModelContainerSpec
.Se utilizzi il comando
gcloud ai models upload
, puoi utilizzare il flag--container-command
per specificare questo campo.args
(facoltativo)Un array di un file eseguibile e degli argomenti per eseguire l'override del valore
CMD
del contenitore. Per scoprire di più su come formattare questo campo e su come interagisce con il campocommand
, consulta la documentazione di riferimento dell'API perModelContainerSpec
.Se utilizzi il comando
gcloud ai models upload
, puoi utilizzare il flag--container-args
per specificare questo campo.ports
(facoltativo)Un array di porte. Vertex AI invia controlli di attività, controlli di integrità e richieste di previsione al tuo container sulla prima porta indicata o su
8080
per impostazione predefinita. La specifica di porte aggiuntive non ha alcun effetto.Se utilizzi il comando
gcloud ai models upload
, puoi utilizzare il flag--container-ports
per specificare questo campo.env
(facoltativo)Un array di variabili di ambiente che l'istruzione
ENTRYPOINT
del container, così come i campicommand
eargs
. Per scoprire di più su come altri campi possono fare riferimento a queste variabili di ambiente, consulta il riferimento all'API perModelContainerSpec
.Se utilizzi il comando
gcloud ai models upload
, puoi utilizzare il flag--container-env-vars
per specificare questo campo.healthRoute
(facoltativo)Il percorso sul server HTTP del container in cui vuoi Vertex AI per inviare integrità controlli.
Se non specifichi questo campo, quando esegui il deployment di
Model
comeDeployedModel
a una risorsaEndpoint
che utilizza per impostazione predefinita/v1/endpoints/ENDPOINT/deployedModels/DEPLOYED_MODEL
, dove ENDPOINT è sostituito dall'ultimo segmento delname
diEndpoint
campo (seguenteendpoints/
) e DEPLOYED_MODEL è sostituito dalid
diDeployedModel
.Se utilizzi
gcloud ai models upload
, puoi usare il flag--container-health-route
per specificare questo campo.predictRoute
(facoltativo)Il percorso sul server HTTP del container in cui vuoi Vertex AI per inoltrare le previsioni richieste.
Se non specifichi questo campo, quando esegui il deployment di
Model
comeDeployedModel
in una risorsaEndpoint
, per impostazione predefinita viene utilizzato/v1/endpoints/ENDPOINT/deployedModels/DEPLOYED_MODEL:predict
, dove ENDPOINT viene sostituito dall'ultimo segmento delname
Endpoint
(dopoendpoints/
) e DEPLOYED_MODEL viene sostituito dalDeployedModel
id
.Se utilizzi il comando
gcloud ai models upload
, puoi utilizzare il flag--container-predict-route
per specificare questo campo.sharedMemorySizeMb
(facoltativo)La quantità di memoria VM da riservare in un volume di memoria condivisa per il modello in megabyte.
La memoria condivisa è un meccanismo di comunicazione interprocessuale (IPC) che consente a più processi di accedere e manipolare un blocco di memoria comune. La quantità di memoria condivisa necessaria, se presente, è un dettaglio di implementazione del contenitore e del modello. Per le linee guida, consulta la documentazione del server di modelli.
Se utilizzi
gcloud ai models upload
, puoi usare il flag--container-shared-memory-size-mb
per specificare questo campo.startupProbe
(facoltativo)Specifica del probe che verifica se l'applicazione container è iniziata.
Se utilizzi
gcloud ai models upload
, puoi usare il flag--container-startup-probe-exec, --container-startup-probe-period-seconds, --container-startup-probe-timeout-seconds
per specificare questo campo.healthProbe
(facoltativo)Specifica del probe che verifica se un container è pronto per accettano il traffico.
Se utilizzi il comando
gcloud ai models upload
, puoi utilizzare il flag--container-health-probe-exec, --container-health-probe-period-seconds, --container-health-probe-timeout-seconds
per specificare questo campo.
Oltre alle variabili impostate nel campo Model.containerSpec.env
, Vertex AI imposta diverse altre variabili in base alla configurazione. Scopri di più su
utilizzando queste variabili di ambiente in questi campi e nell'istruzione ENTRYPOINT
del contenitore.
Esempi di importazione del modello
Gli esempi riportati di seguito mostrano come specificare i campi dell'API relativi ai contenitori quando importi un modello.
gcloud
Nell'esempio seguente viene utilizzato il comando gcloud ai models upload
:
gcloud ai models upload \
--region=LOCATION \
--display-name=MODEL_NAME \
--container-image-uri=IMAGE_URI \
--container-command=COMMAND \
--container-args=ARGS \
--container-ports=PORTS \
--container-env-vars=ENV \
--container-health-route=HEALTH_ROUTE \
--container-predict-route=PREDICT_ROUTE \
--container-shared-memory-size-mb=SHARED_MEMORY_SIZE \
--container-startup-probe-exec=STARTUP_PROBE_EXEC \
--container-startup-probe-period-seconds=STARTUP_PROBE_PERIOD \
--container-startup-probe-timeout-seconds=STARTUP_PROBE_TIMEOUT \
--container-health-probe-exec=HEALTH_PROBE_EXEC \
--container-health-probe-period-seconds=HEALTH_PROBE_PERIOD \
--container-health-probe-timeout-seconds=HEALTH_PROBE_TIMEOUT \
--artifact-uri=PATH_TO_MODEL_ARTIFACT_DIRECTORY
Il flag --container-image-uri
è obbligatorio; tutti gli altri flag che iniziano
con --container-
sono facoltativi. Per informazioni sui valori di questi campi,
consulta la sezione precedente di questa guida.
Java
Prima di provare questo esempio, segui le istruzioni per la configurazione di Java nel Guida rapida di Vertex AI con librerie client. Per ulteriori informazioni, consulta API Java Vertex AI documentazione di riferimento.
Per autenticarti in Vertex AI, configura le credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Node.js
Prima di provare questo esempio, segui le istruzioni per la configurazione di Node.js nel Guida rapida di Vertex AI con librerie client. Per ulteriori informazioni, consulta API Node.js Vertex AI documentazione di riferimento.
Per eseguire l'autenticazione su Vertex AI, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Python
Per scoprire come installare o aggiornare l'SDK Vertex AI per Python, consulta Installare l'SDK Vertex AI per Python. Per ulteriori informazioni, consulta documentazione di riferimento dell'API Python.
Per ulteriori informazioni, consulta la guida all'importazione dei modelli.
Inviare richieste di previsione
Per inviare una richiesta di previsione online al tuo Model
, segui le istruzioni alla pagina
Ottieni previsioni da un modello con addestramento personalizzato:
questo processo funziona allo stesso modo a prescindere dal fatto che utilizzi o meno un container personalizzato.
Scopri di più sui requisiti per le richieste e le risposte di previsione per i container personalizzati.
Passaggi successivi
- Per saperne di più su tutti gli aspetti da considerare quando progetti un container personalizzato da utilizzare con Vertex AI, leggi Custom container requisiti.