Utilizzo di un container personalizzato

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:

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:

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 campo args, leggi il riferimento API per ContainerSpec.

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 il command, leggi il riferimento API per ContainerSpec.

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 e args, possono fare riferimento. Per scoprire di più su come altri campi possono fare riferimento a queste variabili di ambiente, leggi le Riferimento API per ContainerSpec.

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:

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:

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