Per personalizzare il modo in cui AI Platform Prediction fornisce le previsioni online dal tuo addestrato di machine learning (ML), puoi specificare di una versione di runtime quando crei un alla versione del modello. Quando utilizzi un container personalizzato, AI Platform Prediction esegue un container Docker di tua scelta su ogni previsione Node, invece che che esegue il codice di versione di runtime standard per fornire previsioni da artefatti del modello.
Ti consigliamo di utilizzare un container personalizzato per uno dei seguenti motivi:
- per fornire 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 container 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 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 contenitore esistente creata da una terza parte di cui hai fiducia, 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 l'immagine container requisiti.
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 un modello. risorsa. Devi creare il modello su un endpoint regionale corrispondente alla regione del repository Artifact Registry in cui è archiviata l'immagine del contenitore. Per saperne di più, leggi l'articolo sulla pubblicazione di immagini container requisiti.
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 seguenti sezioni descrivono come configurare questi campi.
Inoltre, tieni presente le seguenti differenze specifiche per i container nel modo in cui configurare altri campi dell'API:
Version.machineType
: devi impostare un valore Tipo di macchina Compute Engine (N1).Version.deploymentUri
: questo campo diventa facoltativo. Scopri come vengono un container può accedere agli artefatti specificati 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
. All'interno di questo messaggio puoi specificare
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 eseguibile e degli argomenti per sostituire il valore
ENTRYPOINT
Per scoprire di più sulla formattazione di questo campo e su come interagisce con il campoargs
, leggi il riferimento API perContainerSpec
.Flag gcloud CLI:
--command
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 perContainerSpec
.Flag gcloud CLI:
--args
ports
(facoltativo)Un array di porte; AI Platform Prediction invia controlli di attività, integrità controlli e previsioni richieste ai tuoi container sulla prima porta elencata o
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, leggi le Riferimento API perContainerSpec
.Flag gcloud CLI:
--env-vars
Oltre alle variabili impostate nel campo Version.container.env
,
AI Platform Prediction imposta molte altre variabili in base alla configurazione.
Scopri di più su come utilizzare queste variabili di ambiente in questi campi e nel
punto di ingresso del container
.
L'esempio seguente mostra come specificare questi campi quando crei un 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 di AI Platform Prediction endpoint 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 pubblicazione di immagini container requisiti)
Configura Version.routes
Puoi specificare un RouteMap
messaggio nel campo Version.routes
. In questo messaggio, puoi specificare i seguenti sottocampi. Se utilizzi
gcloud beta ai-platform versions create
comando per creare
della versione del modello, puoi utilizzare un flag della riga di comando per specificare ciascun campo secondario.
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 a 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 sono sostituiti dai nomi di rispettivamente per il modello e la versione.Flag gcloud CLI:
--predict-route
L'esempio seguente mostra come specificare questi campi quando crei una versione del modello utilizzando la CLI gcloud:
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 pubblicazione di immagini container requisiti)
Invio di richieste di previsione
Per inviare una richiesta di previsione online alla versione del tuo modello, segui la guida alla previsione online: questa procedura funziona allo stesso modo a prescindere dal fatto che utilizzi o meno un container personalizzato.
Tuttavia, quando utilizzi un container personalizzato, il corpo di ogni richiesta di previsione non deve soddisfare il corpo della richiesta standard per il modello che usano 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 vedere un esempio di creazione di un'immagine container se lo utilizzi con AI Platform Prediction, leggi Getting started: Serving PyTorch. le previsioni con un container.
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.