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
container Docker di tua scelta su ciascun nodo di previsione.
Ti consigliamo di utilizzare un container personalizzato per uno dei seguenti motivi:
- per fornire previsioni da un modello ML addestrato utilizzando un framework che 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 in un linguaggio di programmazione a tua scelta
- per installare le dipendenze che vuoi utilizzare per personalizzare la previsione
Questa guida descrive come creare un modello che utilizza un container personalizzato. it non fornisce istruzioni dettagliate sulla progettazione e la creazione di un nell'immagine container.
prepara un'immagine container
Per creare un Model
che utilizza un container personalizzato, devi fornire un
container Docker come base di quel 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 l'immagine container requisiti.
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 container in Artifact Registry
Esegui il push dell'immagine container Repository Artifact Registry.
Scopri come eseguire il push di un'immagine container Artifact Registry.
Crea un Model
Per creare un Model
che utilizza un container personalizzato, procedi in uno dei seguenti modi:
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 containerSpec
con
i dettagli del tuo container personalizzato, anziché una interfaccia
container.
Devi specificare un ModelContainerSpec
messaggio in
il campo Model.containerSpec
. All'interno di questo messaggio puoi specificare
i seguenti campi secondari:
imageUri
(campo obbligatorio)L'URI 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 eseguibile e degli argomenti per sostituire il valore istruzione
ENTRYPOINT
. Per saperne di più su come formattare questo campo e su come interagisce con il campoargs
, leggi il riferimento API perModelContainerSpec
.Se utilizzi
gcloud ai models upload
, puoi usare il flag--container-command
per specificare questo campo.args
(facoltativo)Un array di un eseguibile e degli argomenti per sostituire il valore
CMD
Per saperne di più su come formattare questo campo e su come interagisce con ilcommand
, leggi il riferimento API perModelContainerSpec
.Se utilizzi
gcloud ai models upload
, puoi usare il flag--container-args
per specificare questo campo.ports
(facoltativo)Un array di porte; Vertex AI invia controlli di attività, integrità controlli e previsioni richieste ai tuoi container sulla prima porta elencata o
8080
per impostazione predefinita. Specificare le porte aggiuntive non hanno alcun effetto.Se utilizzi
gcloud ai models upload
, puoi usare 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, leggi le Riferimento API perModelContainerSpec
.Se utilizzi
gcloud ai models upload
, puoi usare 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
a una risorsaEndpoint
che utilizza per impostazione predefinita/v1/endpoints/ENDPOINT/deployedModels/DEPLOYED_MODEL:predict
, 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-predict-route
per specificare questo campo.sharedMemorySizeMb
(facoltativo)La quantità di memoria VM da prenotare in un volume di memoria condivisa per il modello in megabyte.
La memoria condivisa è un meccanismo di comunicazione tra processi (IPC) che consente più processi per accedere a un blocco di memoria comune e manipolarlo. La di memoria condivisa necessaria, se presente, è un dettaglio di implementazione container e modello. Per le linee guida, consulta la documentazione del server del modello.
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
gcloud ai models upload
, puoi usare il flag--container-health-probe-exec, --container-health-probe-period-seconds, --container-health-probe-timeout-seconds
per specificare questo campo.
Oltre alle variabili che hai impostato in Model.containerSpec.env
campo, Vertex AI imposta molte altre variabili in base al
configurazione. Scopri di più su
utilizzando queste variabili di ambiente in questi campi e nell'istruzione ENTRYPOINT
del contenitore.
Esempi di importazione del modello
I seguenti esempi mostrano come specificare i campi dell'API relativi ai container quando importare un modello.
gcloud
L'esempio seguente utilizza la classe gcloud ai models upload
comando:
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 eseguire l'autenticazione su Vertex AI, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura 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, vedi Installare l'SDK Vertex AI per Python. Per ulteriori informazioni, consulta documentazione di riferimento dell'API Python.
Per saperne di più, leggi le Guida all'importazione dei modelli.
Invia 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.
Leggi ulteriori informazioni sui requisiti di richiesta e risposta di previsione per containerizzati.
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.