Per personalizzare il modo in cui AI Platform Prediction genera le previsioni online dal tuo modello di machine learning (ML) addestrato, puoi specificare un contenitore personalizzato anziché una versione di runtime quando crei una versione del modello. Quando utilizzi un container personalizzato, AI Platform Prediction esegue un container Docker a tua scelta su ogni nodo di previsione, invece di eseguire il codice di versione di runtime standard per fornire previsioni da artefatto del modello compatibile.
Ti consigliamo di utilizzare un contenitore personalizzato per uno dei seguenti motivi:
- per generare previsioni da un modello ML addestrato utilizzando un framework diverso da TensorFlow, scikit-learn o XGBoost
- per pre-elaborare le richieste di previsione o post-elaborare le previsioni generate dal 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 una versione del modello che utilizza un contenitore personalizzato. Non fornisce istruzioni dettagliate su come progettare e creare un'immagine container Docker. Per esaminare un esempio di creazione di un'immagine container e utilizzarla con AI Platform Prediction, leggi Per iniziare: pubblicazione di previsioni PyTorch con un container personalizzato.
Per utilizzare un contenitore personalizzato, devi utilizzare un endpoint regionale e un tipo di macchina Compute Engine (N1) per la versione del modello.
Preparazione di un'immagine container
Per creare una versione del modello che utilizza un container personalizzato, devi fornire un'immagine container Docker come base del container. Questa immagine del contenitore deve soddisfare i requisiti descritti nella sezione Requisiti per i container personalizzati.
Se prevedi di utilizzare un'immagine contenitore esistente creata da una terza parte di cui ti fidi, potresti essere in grado di saltare una o entrambe le sezioni seguenti.
Crea un'immagine container
Progetta e crea un'immagine container Docker che soddisfi i requisiti delle immagini container.
Per conoscere le nozioni di base per progettare e creare un'immagine del contenitore Docker, consulta la guida introduttiva della documentazione di Docker.
Esegui il push dell'immagine del contenitore in Artifact Registry
Esegui il push dell'immagine container in un repository Artifact Registry che soddisfi i requisiti di pubblicazione delle immagini container.
Scopri come eseguire il push di un'immagine container in Artifact Registry.
Creazione di un modello e di una versione del modello
Specifica diverse opzioni di configurazione quando crei un modello per assicurarti che le eventuali versioni del modello che crei in un secondo momento siano compatibili con il tuo contenitore personalizzato.
Poi, specifica la maggior parte della configurazione del contenitore quando crei una versione del modello.
crea un modello
Per creare un modello, segui le istruzioni per la creazione di una risorsa del modello. Devi creare il modello su un endpoint regionale corrispondente alla regione del repository Artifact Registry in cui è archiviata l'immagine del contenitore. Per scoprire di più, leggi i requisiti per la pubblicazione delle immagini container.
Creare una versione del modello
Quando crei una versione del modello che utilizza un contenitore personalizzato, configura i seguenti campi dell'API specifici del contenitore, oltre agli altri campi specificati per una versione del modello:
Version.container
Version.routes
(facoltativo)
Le sezioni seguenti descrivono come configurare questi campi.
Inoltre, tieni presente le seguenti differenze specifiche del contenitore per la configurazione di altri campi dell'API:
Version.machineType
: devi impostare questo campo su un tipo di macchina Compute Engine (N1).Version.deploymentUri
: questo campo diventa facoltativo. Scopri in che modo il tuo contenuto può accedere agli elementi specificati da questo campo.Version.runtimeVersion
,Version.framework
,Version.pythonVersion
,Version.predictionClass
eVersion.packageUris
: non devi specificare questi campi.
Configura Version.container
Devi specificare un
messaggio ContainerSpec
nel
campo Version.container
. In questo messaggio, puoi specificare i seguenti campi secondari. Se utilizzi il comando gcloud beta ai-platform versions create
per creare la versione del modello, puoi utilizzare un flag a riga di comando per specificare ogni sottocampo.
image
(obbligatorio)L'URI di Artifact Registry dell'immagine container.
Flag gcloud CLI:
--image
command
(facoltativo)Un array di un file eseguibile e di argomenti per eseguire l'override del
ENTRYPOINT
del contenitore. Per scoprire di più su come formattare questo campo e su come interagisce con il campoargs
, leggi la documentazione di riferimento dell'API perContainerSpec
.Flag gcloud CLI:
--command
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
, leggi la documentazione di riferimento dell'API perContainerSpec
.Flag gcloud CLI:
--args
ports
(facoltativo)Un array di porte. AI Platform Prediction 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.Flag gcloud CLI:
--ports
env
(facoltativo)Un array di variabili di ambiente a cui il comando del punto di ingresso del container, nonché i campi
command
eargs
, possono fare riferimento. Per scoprire di più su come altri campi possono fare riferimento a queste variabili di ambiente, consulta il riferimento all'API perContainerSpec
.Flag gcloud CLI:
--env-vars
Oltre alle variabili impostate nel campo Version.container.env
,
AI Platform Prediction imposta diverse altre variabili in base alla configurazione.
Scopri di più sull'utilizzo di queste variabili di ambiente in questi campi e nel comando entrypoint del contenitore.
L'esempio seguente mostra come specificare questi campi quando crei una versione del modello utilizzando Google Cloud CLI:
gcloud beta ai-platform versions create VERSION \
--region=REGION \
--model=MODEL \
--machine-type=n1-standard-4 \
--image=IMAGE_URI \
--command=executable,param1,param2 \
--args=param3,param4 \
--ports=8081 \
--env-vars \
VAR1='value 1' \
VAR2='value 2'
Sostituisci quanto segue:
- VERSION: il nome della versione del modello
- REGION: la regione dell'endpoint AI Platform Prediction in cui hai creato il modello
- MODEL: il nome del modello
- IMAGE_URI: l'URI dell'immagine container in Artifact Registry, che deve iniziare con REGION (come descritto nei requisiti per la pubblicazione delle immagini container)
Configura Version.routes
Puoi specificare un RouteMap
messaggio nel campo Version.routes
. In questo messaggio, puoi specificare i seguenti sottocampi. Se utilizzi il comando gcloud beta ai-platform versions create
per creare la versione del modello, puoi utilizzare un flag a riga di comando per specificare ogni sottocampo.
health
(facoltativo)Il percorso sul server HTTP del contenitore in cui vuoi che AI Platform Prediction invii i controlli di stato.
Se non specifichi questo campo, per impostazione predefinita viene utilizzato
/v1/models/MODEL/versions/VERSION
, dove MODEL e VERSION vengono sostituiti rispettivamente dai nomi del tuo modello e della versione del modello.Flag gcloud CLI:
--health-route
predict
(facoltativo)Il percorso sul server HTTP del contenitore in cui vuoi che AI Platform Prediction inoltri le richieste di previsione.
Se non specifichi questo campo, per impostazione predefinita viene utilizzato
/v1/models/MODEL/versions/VERSION:predict
, dove MODEL e VERSION vengono sostituiti rispettivamente dai nomi del tuo modello e della versione del modello.Flag gcloud CLI:
--predict-route
L'esempio seguente mostra come specificare questi campi quando crei una versione del modello utilizzando la gcloud CLI:
gcloud beta ai-platform versions create VERSION \
--region=REGION \
--model=MODEL \
--machine-type=n1-standard-4 \
--image=IMAGE_URI \
--command=executable,param1,param2 \
--args=param3,param4 \
--ports=8081 \
--env-vars \
VAR1='value 1' \
VAR2='value 2' \
--health-route=/health \
--predict-route=/predict
Sostituisci quanto segue:
- VERSION: il nome della versione del modello
- REGION: la regione dell'endpoint AI Platform Prediction in cui hai creato il modello
- MODEL: il nome del modello
- IMAGE_URI: l'URI dell'immagine container in Artifact Registry, che deve iniziare con REGION (come descritto nei requisiti per la pubblicazione delle immagini container)
Invio di richieste di previsione
Per inviare una richiesta di previsione online alla versione del modello, segui la guida alla previsione online: questa procedura è la stessa indipendentemente dall'utilizzo o meno di un contenitore personalizzato.
Tuttavia, quando utilizzi un contenitore personalizzato, il corpo di ogni richiesta di previsione non deve soddisfare i requisiti del corpo della richiesta per le versioni del modello che utilizzano una versione di runtime. Detto questo, ti consigliamo di progettare il tuo contenitore in modo che preveda corpi di richiesta con il formato standard, se possibile. Scopri di più sui requisiti per le richieste e le risposte di previsione per i container personalizzati.
Passaggi successivi
Per esaminare un esempio di creazione di un'immagine container e utilizzarla con AI Platform Prediction, leggi Per iniziare: pubblicazione di previsioni PyTorch con un container personalizzato.
Per scoprire tutto ciò che devi considerare quando progetti un contenitore personalizzato da utilizzare con AI Platform Prediction, leggi la sezione Requisiti dei contenitori personalizzati.
Per scoprire come modificare le autorizzazioni di un contenitore per accedere ad altri servizi Google Cloud, consulta Utilizzare un account di servizio personalizzato.