Differenza tra previsioni online e batch
Le previsioni online sono richieste sincrone effettuate a un endpoint del modello. Utilizza le previsioni online quando effettui richieste in risposta all'input dell'applicazione o in situazioni che richiedono un'inferenza tempestiva.
Le previsioni batch sono richieste asincrone. Puoi richiedere previsioni batch direttamente dalla risorsa del modello senza dover eseguire il deployment del modello in un endpoint. Per i dati immagine, utilizza le previsioni batch quando non hai bisogno di una risposta immediata e vuoi elaborare i dati accumulati attraverso una singola richiesta.
Ricevi previsioni online
esegui il deployment di un modello in un endpoint
Occorre eseguire il deployment di un modello in un endpoint prima che il modello possa essere utilizzato per fornire previsioni online. Il deployment di un modello associa risorse fisiche al modello, in modo che possa fornire previsioni online con bassa latenza.
Puoi eseguire il deployment di più modelli in un endpoint e di un modello su più endpoint. Per ulteriori informazioni sulle opzioni e sui casi d'uso per il deployment dei modelli, consulta Informazioni sul deployment dei modelli.
Utilizza uno dei seguenti metodi per eseguire il deployment di un modello:
Console Google Cloud
Nella console Google Cloud, nella sezione Vertex AI, vai alla pagina Modelli.
Fai clic sul nome del modello di cui vuoi eseguire il deployment per aprire la relativa pagina dei dettagli.
Seleziona la scheda Deployment e test.
Se è già stato eseguito il deployment del modello in eventuali endpoint, questi sono elencati nella sezione Deployment del modello.
Fai clic su Esegui il deployment nell'endpoint.
Per eseguire il deployment del modello in un nuovo endpoint, seleziona
Crea nuovo endpoint e specifica un nome per il nuovo endpoint. Per eseguire il deployment del modello in un endpoint esistente, seleziona Aggiungi a endpoint esistente e seleziona l'endpoint dall'elenco a discesa.Puoi aggiungere più di un modello a un endpoint e aggiungerlo a più di un endpoint. Ulteriori informazioni
Se esegui il deployment del modello in un endpoint esistente in cui è stato eseguito il deployment di uno o più modelli, devi aggiornare la percentuale di Suddivisione del traffico per il modello che stai implementando e per i modelli di cui è già stato eseguito il deployment, in modo che la somma di tutte le percentuali arrivi al 100%.
Seleziona AutoML Image ed esegui la configurazione come segue:
Se esegui il deployment del modello in un nuovo endpoint, accetta 100 per la suddivisione del traffico. Altrimenti, regola i valori di suddivisione del traffico per tutti i modelli nell'endpoint in modo che vengano sommati fino a 100.
Inserisci il Numero di nodi di computing che vuoi fornire per il modello.
Questo è il numero di nodi disponibili per questo modello in qualsiasi momento. I nodi ti vengono addebitati anche senza traffico di previsione. Consulta la pagina relativa ai prezzi.
Scopri come modificare le impostazioni predefinite per il logging delle previsioni.
Solo modelli di classificazione (facoltativo): nella sezione Opzioni di spiegabilità, seleziona Vertex Explainable AI. Accetta le impostazioni di visualizzazione esistenti o scegli nuovi valori e fai clic su Fine.
Abilita le attribuzioni delle caratteristiche per questo modello per abilitareIl deployment di modelli di classificazione delle immagini AutoML con Vertex Explainable AI configurato e l'esecuzione di previsioni con spiegazioni è facoltativa. L'abilitazione di Vertex Explainable AI al momento del deployment comporta costi aggiuntivi in base al numero dei nodi di cui è stato eseguito il deployment e ai tempi del deployment. Consulta la sezione Prezzi per ulteriori informazioni.
Fai clic su Fine per il modello e, quando tutte le percentuali di Suddivisione traffico sono corrette, fai clic su Continua.
Viene visualizzata la regione in cui viene eseguito il deployment del modello. Deve essere la regione in cui hai creato il modello.
Fai clic su Esegui il deployment per eseguire il deployment del modello nell'endpoint.
API
Quando esegui il deployment di un modello utilizzando l'API Vertex AI, devi completare questi passaggi:
- Se necessario, crea un endpoint.
- Recupera l'ID endpoint.
- Eseguire il deployment del modello nell'endpoint.
Creazione di un endpoint
Se esegui il deployment di un modello in un endpoint esistente, puoi saltare questo passaggio.
gcloud
L'esempio seguente utilizza il comando gcloud ai endpoints create
:
gcloud ai endpoints create \
--region=LOCATION \
--display-name=ENDPOINT_NAME
Sostituisci quanto segue:
- LOCATION_ID: la regione in cui stai utilizzando Vertex AI.
- ENDPOINT_NAME: il nome visualizzato dell'endpoint.
Lo strumento Google Cloud CLI potrebbe richiedere alcuni secondi per creare l'endpoint.
REST
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- LOCATION_ID: la tua regione.
- PROJECT_ID: il tuo ID progetto.
- ENDPOINT_NAME: il nome visualizzato dell'endpoint.
Metodo HTTP e URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/endpoints
Corpo JSON della richiesta:
{ "display_name": "ENDPOINT_NAME" }
Per inviare la richiesta, espandi una delle seguenti opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/endpoints/ENDPOINT_ID/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.aiplatform.v1.CreateEndpointOperationMetadata", "genericMetadata": { "createTime": "2020-11-05T17:45:42.812656Z", "updateTime": "2020-11-05T17:45:42.812656Z" } } }
"done": true
.
Java
Prima di provare questo esempio, segui le istruzioni per la configurazione di Java nella guida rapida di Vertex AI sull'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Java Vertex AI.
Per eseguire l'autenticazione su Vertex AI, configura 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 nella guida rapida di Vertex AI sull'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Node.js Vertex AI.
Per eseguire l'autenticazione su Vertex AI, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare 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 maggiori informazioni, consulta la documentazione di riferimento dell'API Python.
Recuperare l'ID endpoint
L'ID endpoint è necessario per eseguire il deployment del modello.
gcloud
L'esempio seguente utilizza il comando gcloud ai endpoints list
:
gcloud ai endpoints list \
--region=LOCATION \
--filter=display_name=ENDPOINT_NAME
Sostituisci quanto segue:
- LOCATION_ID: la regione in cui stai utilizzando Vertex AI.
- ENDPOINT_NAME: il nome visualizzato dell'endpoint.
Prendi nota del numero visualizzato nella colonna ENDPOINT_ID
. Utilizza questo ID nel passaggio successivo.
REST
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- LOCATION_ID: la regione in cui stai utilizzando Vertex AI.
- PROJECT_ID: il tuo ID progetto.
- ENDPOINT_NAME: il nome visualizzato dell'endpoint.
Metodo HTTP e URL:
GET https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/endpoints?filter=display_name=ENDPOINT_NAME
Per inviare la richiesta, espandi una delle seguenti opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{ "endpoints": [ { "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/endpoints/ENDPOINT_ID", "displayName": "ENDPOINT_NAME", "etag": "AMEw9yPz5pf4PwBHbRWOGh0PcAxUdjbdX2Jm3QO_amguy3DbZGP5Oi_YUKRywIE-BtLx", "createTime": "2020-04-17T18:31:11.585169Z", "updateTime": "2020-04-17T18:35:08.568959Z" } ] }
Esegui il deployment del modello
Seleziona di seguito la scheda per la tua lingua o il tuo ambiente:
gcloud
Nei seguenti esempi viene utilizzato il comando gcloud ai endpoints deploy-model
.
L'esempio seguente esegue il deployment di un Model
in un Endpoint
senza suddividere il traffico tra più risorse DeployedModel
:
Prima di utilizzare qualsiasi dato di comando riportato di seguito, effettua le seguenti sostituzioni:
- ENDPOINT_ID: l'ID dell'endpoint.
- LOCATION_ID: la regione in cui stai utilizzando Vertex AI.
- MODEL_ID: l'ID del modello di cui eseguire il deployment.
-
DEPLOYED_MODEL_NAME: un nome per
DeployedModel
. Puoi utilizzare anche il nome visualizzato diModel
perDeployedModel
. - MIN_REPLICA_COUNT: numero minimo di nodi per questo deployment. Il numero di nodi può essere aumentato o diminuito in base al carico della previsione, fino al numero massimo di nodi e mai inferiore a questo numero di nodi.
-
MAX_REPLICA_COUNT: il numero massimo di nodi per questo deployment.
Il conteggio dei nodi può essere aumentato o diminuito in base al carico della previsione fino a questo numero di nodi, ma mai inferiore al numero minimo di nodi.
Se ometti il flag
--max-replica-count
, il numero massimo di nodi viene impostato sul valore--min-replica-count
.
Esegui il comando gcloud ai Endpoints deploy-model:
Linux, macOS o Cloud Shell
gcloud ai endpoints deploy-model ENDPOINT_ID\ --region=LOCATION_ID \ --model=MODEL_ID \ --display-name=DEPLOYED_MODEL_NAME \ --min-replica-count=MIN_REPLICA_COUNT \ --max-replica-count=MAX_REPLICA_COUNT \ --traffic-split=0=100
Windows (PowerShell)
gcloud ai endpoints deploy-model ENDPOINT_ID` --region=LOCATION_ID ` --model=MODEL_ID ` --display-name=DEPLOYED_MODEL_NAME ` --min-replica-count=MIN_REPLICA_COUNT ` --max-replica-count=MAX_REPLICA_COUNT ` --traffic-split=0=100
Windows (cmd.exe)
gcloud ai endpoints deploy-model ENDPOINT_ID^ --region=LOCATION_ID ^ --model=MODEL_ID ^ --display-name=DEPLOYED_MODEL_NAME ^ --min-replica-count=MIN_REPLICA_COUNT ^ --max-replica-count=MAX_REPLICA_COUNT ^ --traffic-split=0=100
Suddivisione del traffico
Il flag --traffic-split=0=100
negli esempi precedenti invia il 100% del traffico di previsione
che Endpoint
riceve al nuovo DeployedModel
, rappresentato dall'ID temporaneo 0
. Se il tuo Endpoint
ha già altre
risorse di DeployedModel
, puoi suddividere il traffico tra il nuovo
DeployedModel
e quello precedente.
Ad esempio, per inviare il 20% del traffico al nuovo DeployedModel
e l'80% a uno precedente, esegui questo comando.
Prima di utilizzare qualsiasi dato di comando riportato di seguito, effettua le seguenti sostituzioni:
- OLD_DEPLOYED_MODEL_ID: l'ID dell'elemento
DeployedModel
esistente.
Esegui il comando gcloud ai Endpoints deploy-model:
Linux, macOS o Cloud Shell
gcloud ai endpoints deploy-model ENDPOINT_ID\ --region=LOCATION_ID \ --model=MODEL_ID \ --display-name=DEPLOYED_MODEL_NAME \ --min-replica-count=MIN_REPLICA_COUNT \ --max-replica-count=MAX_REPLICA_COUNT \ --traffic-split=0=20,OLD_DEPLOYED_MODEL_ID=80
Windows (PowerShell)
gcloud ai endpoints deploy-model ENDPOINT_ID` --region=LOCATION_ID ` --model=MODEL_ID ` --display-name=DEPLOYED_MODEL_NAME \ --min-replica-count=MIN_REPLICA_COUNT ` --max-replica-count=MAX_REPLICA_COUNT ` --traffic-split=0=20,OLD_DEPLOYED_MODEL_ID=80
Windows (cmd.exe)
gcloud ai endpoints deploy-model ENDPOINT_ID^ --region=LOCATION_ID ^ --model=MODEL_ID ^ --display-name=DEPLOYED_MODEL_NAME \ --min-replica-count=MIN_REPLICA_COUNT ^ --max-replica-count=MAX_REPLICA_COUNT ^ --traffic-split=0=20,OLD_DEPLOYED_MODEL_ID=80
REST
Esegui il deployment del modello.
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- LOCATION_ID: la regione in cui stai utilizzando Vertex AI.
- PROJECT_ID: il tuo ID progetto.
- ENDPOINT_ID: l'ID dell'endpoint.
- MODEL_ID: l'ID del modello di cui eseguire il deployment.
-
DEPLOYED_MODEL_NAME: un nome per
DeployedModel
. Puoi utilizzare anche il nome visualizzato diModel
perDeployedModel
. - MIN_REPLICA_COUNT: numero minimo di nodi per questo deployment. Il numero di nodi può essere aumentato o diminuito in base al carico della previsione, fino al numero massimo di nodi e mai inferiore a questo numero di nodi.
- MAX_REPLICA_COUNT: il numero massimo di nodi per questo deployment. Il conteggio dei nodi può essere aumentato o diminuito in base al carico della previsione fino a questo numero di nodi, ma mai inferiore al numero minimo di nodi.
- TRAFFIC_SPLIT_THIS_MODEL: la percentuale del traffico di previsione verso questo endpoint che verrà instradato al modello di cui viene eseguito il deployment con questa operazione. Il valore predefinito è 100. La somma di tutte le percentuali di traffico deve essere pari a 100. Scopri di più sulle suddivisioni del traffico.
- DEPLOYED_MODEL_ID_N: facoltativo. Se viene eseguito il deployment di altri modelli in questo endpoint, devi aggiornare le rispettive percentuali di suddivisione del traffico in modo che la somma di tutte le percentuali arrivi a 100.
- TRAFFIC_SPLIT_MODEL_N: il valore percentuale di suddivisione del traffico per la chiave dell'ID del modello di cui è stato eseguito il deployment.
- PROJECT_NUMBER: il numero di progetto generato automaticamente per il tuo progetto
Metodo HTTP e URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/endpoints/ENDPOINT_ID:deployModel
Corpo JSON della richiesta:
{ "deployedModel": { "model": "projects/PROJECT_ID/locations/LOCATION_ID/models/MODEL_ID", "displayName": "DEPLOYED_MODEL_NAME", "automaticResources": { "minReplicaCount": MIN_REPLICA_COUNT, "maxReplicaCount": MAX_REPLICA_COUNT } }, "trafficSplit": { "0": TRAFFIC_SPLIT_THIS_MODEL, "DEPLOYED_MODEL_ID_1": TRAFFIC_SPLIT_MODEL_1, "DEPLOYED_MODEL_ID_2": TRAFFIC_SPLIT_MODEL_2 }, }
Per inviare la richiesta, espandi una delle seguenti opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{ "name": "projects/PROJECT_ID/locations/LOCATION_ID/endpoints/ENDPOINT_ID/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.aiplatform.v1.DeployModelOperationMetadata", "genericMetadata": { "createTime": "2020-10-19T17:53:16.502088Z", "updateTime": "2020-10-19T17:53:16.502088Z" } } }
Java
Prima di provare questo esempio, segui le istruzioni per la configurazione di Java nella guida rapida di Vertex AI sull'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Java Vertex AI.
Per eseguire l'autenticazione su Vertex AI, configura 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 nella guida rapida di Vertex AI sull'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Node.js Vertex AI.
Per eseguire l'autenticazione su Vertex AI, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare 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 maggiori informazioni, consulta la documentazione di riferimento dell'API Python.
Scopri come modificare le impostazioni predefinite per il logging delle previsioni.
Ottieni stato operazione
Alcune richieste avviano operazioni a lunga esecuzione il cui completamento richiede tempo. Queste richieste restituiscono un nome dell'operazione che puoi utilizzare per visualizzare lo stato dell'operazione o annullarla. Vertex AI offre metodi helper per effettuare chiamate su operazioni a lunga esecuzione. Per ulteriori informazioni, vedi Operazioni con le operazioni a lunga esecuzione.
Fai una previsione online utilizzando il modello di cui hai eseguito il deployment
Per fare una previsione online, invia uno o più elementi di test a un modello per l'analisi; il modello restituirà risultati basati sull'obiettivo del modello. Per ulteriori informazioni sui risultati della previsione, consulta la pagina Interpretare i risultati.
Console
Utilizza la console Google Cloud per richiedere una previsione online. Il modello deve trovarsi in un endpoint.
Nella console Google Cloud, nella sezione Vertex AI, vai alla pagina Modelli.
Nell'elenco dei modelli, fai clic sul nome del modello da cui richiedere le previsioni.
Seleziona la scheda Deployment e test.
Nella sezione Testa il modello, aggiungi elementi di test per richiedere una previsione.
I modelli AutoML per gli obiettivi di immagine richiedono il caricamento di un'immagine per richiedere una previsione.
Per informazioni sull'importanza delle caratteristiche locali, consulta Ottenere spiegazioni.
Una volta completata la previsione, Vertex AI restituisce i risultati nella console.
API
Utilizza l'API Vertex AI per richiedere una previsione online. Il modello deve trovarsi in un endpoint.
Gli obiettivi del tipo di dati immagine includono la classificazione e il rilevamento degli oggetti.
Previsione del modello Edge: quando utilizzi i modelli Edge di immagini AutoML per la previsione, devi convertire qualsiasi file di previsione non JPEG in un file JPEG prima di inviare la richiesta di previsione. Per una funzione di pre-elaborazione Python di esempio, consulta il repository dell'API AutoML del client Python per Google Cloud.
gcloud
Crea un file denominato
request.json
con il seguente contenuto:{ "instances": [{ "content": "CONTENT" }], "parameters": { "confidenceThreshold": THRESHOLD_VALUE, "maxPredictions": MAX_PREDICTIONS } }
Sostituisci quanto segue:
- CONTENT: i contenuti dell'immagine con codifica base64.
- THRESHOLD_VALUE (Facoltativo) Il modello restituisce solo previsioni con punteggi di confidenza con almeno questo valore.
- MAX_PREDICTIONS (Facoltativo) Il modello restituisce questo numero di previsioni con i punteggi di confidenza più elevati.
Esegui questo comando:
gcloud ai endpoints predict ENDPOINT_ID \ --region=LOCATION_ID \ --json-request=request.json
Sostituisci quanto segue:
- ENDPOINT_ID: l'ID dell'endpoint.
- LOCATION_ID: la regione in cui stai utilizzando Vertex AI.
REST
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- LOCATION_ID: regione in cui si trova l'endpoint. Ad esempio,
us-central1
. - PROJECT_ID: il tuo ID progetto.
- ENDPOINT_ID: l'ID dell'endpoint.
- CONTENT: i contenuti dell'immagine con codifica base64.
- THRESHOLD_VALUE (Facoltativo) Il modello restituisce solo previsioni con punteggi di confidenza con almeno questo valore.
- MAX_PREDICTIONS (Facoltativo) Il modello restituisce questo numero di previsioni con i punteggi di confidenza più elevati.
Metodo HTTP e URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/endpoints/ENDPOINT_ID:predict
Corpo JSON della richiesta:
{ "instances": [{ "content": "CONTENT" }], "parameters": { "confidenceThreshold": THRESHOLD_VALUE, "maxPredictions": MAX_PREDICTIONS } }
Per inviare la richiesta, scegli una delle seguenti opzioni:
curl
Salva il corpo della richiesta in un file denominato request.json
ed esegui questo comando:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/endpoints/ENDPOINT_ID:predict"
PowerShell
Salva il corpo della richiesta in un file denominato request.json
ed esegui questo comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/endpoints/ENDPOINT_ID:predict" | Select-Object -Expand Content
Dovresti ricevere una risposta JSON simile alla seguente:
{ "predictions": [ { "confidences": [ 0.975873291, 0.972160876, 0.879488528, 0.866532683, 0.686478078 ], "displayNames": [ "Salad", "Salad", "Tomato", "Tomato", "Salad" ], "ids": [ "7517774415476555776", "7517774415476555776", "2906088397049167872", "2906088397049167872", "7517774415476555776" ], "bboxes": [ [ 0.0869686604, 0.977020741, 0.395135701, 1 ], [ 0, 0.488701463, 0.00157663226, 0.512249 ], [ 0.361617863, 0.509664357, 0.772928834, 0.914706349 ], [ 0.310678929, 0.45781514, 0.565507233, 0.711237729 ], [ 0.584359646, 1, 0.00116168708, 0.130817384 ] ] } ], "deployedModelId": "3860570043075002368" }
Java
Prima di provare questo esempio, segui le istruzioni per la configurazione di Java nella guida rapida di Vertex AI sull'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Java Vertex AI.
Per eseguire l'autenticazione su Vertex AI, configura 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 nella guida rapida di Vertex AI sull'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Node.js Vertex AI.
Per eseguire l'autenticazione su Vertex AI, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare 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 maggiori informazioni, consulta la documentazione di riferimento dell'API Python.
Generazione di previsioni batch
Per effettuare una richiesta di previsione batch, specifica un'origine di input e un formato di output in cui Vertex AI archivia i risultati delle previsioni. Le previsioni batch per il tipo di modello di immagine AutoML richiedono un file di input Linee JSON e il nome di un bucket Cloud Storage per archiviare l'output.
Requisiti dei dati di input
L'input per le richieste batch specifica gli elementi da inviare al modello per la previsione. Per i modelli di rilevamento di oggetti immagine, puoi utilizzare un file JSON Lines per specificare un elenco di immagini su cui eseguire previsioni e quindi archiviare il file JSON Lines in un bucket Cloud Storage. L'esempio seguente mostra una singola riga in un file JSON Lines di input:
{"content": "gs://sourcebucket/datasets/images/source_image.jpg", "mimeType": "image/jpeg"}
Richiedi una previsione batch
Per le richieste di previsione batch, puoi utilizzare la console Google Cloud o l'API Vertex AI. A seconda del numero di elementi di input che hai inviato, il completamento di un'attività di previsione batch può richiedere del tempo.
Console Google Cloud
Utilizza la console Google Cloud per richiedere una previsione batch.
Nella console Google Cloud, nella sezione Vertex AI, vai alla pagina Previsioni batch.
Fai clic su Crea per aprire la finestra Nuova previsione batch e completare i seguenti passaggi:
- Inserisci un nome per la previsione batch.
- In Nome modello, seleziona il nome del modello da utilizzare per questa previsione batch.
- In Percorso di origine, specifica la posizione di Cloud Storage in cui si trova il file di input delle linee JSON.
- Per il Percorso di destinazione, specifica una località di Cloud Storage in cui sono archiviati i risultati della previsione batch. Il formato di Output è determinato dall'obiettivo del modello. I modelli AutoML per gli scopi immagine generano file JSON Lines.
API
Utilizzare l'API Vertex AI per inviare richieste di previsione batch.
REST
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- LOCATION_ID: regione in cui è archiviato il modello e viene eseguito il job di previsione batch. Ad
esempio,
us-central1
. - PROJECT_ID: il tuo ID progetto
- BATCH_JOB_NAME: nome visualizzato del job batch
- MODEL_ID: l'ID del modello da utilizzare per effettuare previsioni
- (Facoltativo) THRESHOLD_VALUE: Vertex AI restituisce solo previsioni con punteggi di confidenza con almeno questo valore. Il valore predefinito è
0.0
. - (Facoltativo) MAX_PREDICTIONS: Vertex AI restituisce fino a questo numero
di previsioni a partire da quelle con punteggi di affidabilità
più alti. Il valore predefinito è
10
. - URI: URI Cloud Storage in cui si trova il file JSON di input.
- BUCKET: il tuo bucket Cloud Storage
- PROJECT_NUMBER: il numero di progetto generato automaticamente per il tuo progetto
Metodo HTTP e URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/batchPredictionJobs
Corpo JSON della richiesta:
{ "displayName": "BATCH_JOB_NAME", "model": "projects/PROJECT/locations/LOCATION/models/MODEL_ID", "modelParameters": { "confidenceThreshold": THRESHOLD_VALUE, "maxPredictions": MAX_PREDICTIONS }, "inputConfig": { "instancesFormat": "jsonl", "gcsSource": { "uris": ["URI"], }, }, "outputConfig": { "predictionsFormat": "jsonl", "gcsDestination": { "outputUriPrefix": "OUTPUT_BUCKET", }, }, }
Per inviare la richiesta, scegli una delle seguenti opzioni:
curl
Salva il corpo della richiesta in un file denominato request.json
ed esegui questo comando:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/batchPredictionJobs"
PowerShell
Salva il corpo della richiesta in un file denominato request.json
ed esegui questo comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/batchPredictionJobs" | Select-Object -Expand Content
Dovresti ricevere una risposta JSON simile alla seguente:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/batchPredictionJobs/BATCH_JOB_ID", "displayName": "BATCH_JOB_NAME", "model": "projects/PROJECT_ID/locations/LOCATION_ID/models/MODEL_ID", "inputConfig": { "instancesFormat": "jsonl", "gcsSource": { "uris": [ "CONTENT" ] } }, "outputConfig": { "predictionsFormat": "jsonl", "gcsDestination": { "outputUriPrefix": "BUCKET" } }, "state": "JOB_STATE_PENDING", "createTime": "2020-05-30T02:58:44.341643Z", "updateTime": "2020-05-30T02:58:44.341643Z", "modelDisplayName": "MODEL_NAME", "modelObjective": "MODEL_OBJECTIVE" }
Puoi eseguire il polling dello stato del job batch utilizzando
BATCH_JOB_ID fino a quando il job state
non è
JOB_STATE_SUCCEEDED
.
Python
Per scoprire come installare o aggiornare l'SDK Vertex AI per Python, vedi Installare l'SDK Vertex AI per Python. Per maggiori informazioni, consulta la documentazione di riferimento dell'API Python.
Recuperare i risultati delle previsioni batch
Vertex AI invia l'output della previsione batch alla destinazione specificata.
Quando un'attività di previsione batch è completa, l'output della previsione viene archiviato nel bucket Cloud Storage specificato nella richiesta.
Esempi di risultati della previsione batch
Di seguito è riportato un esempio di previsione batch da un modello di rilevamento di oggetti immagine.
Importante : i riquadri di delimitazione sono specificati come segue:
"bboxes": [
[xMin, xMax, yMin, yMax],
...]
xMin
e xMax
sono i valori x minimo e massimo e
yMin
e yMax
sono rispettivamente i valori y minimo e massimo.
{ "instance": {"content": "gs://bucket/image.jpg", "mimeType": "image/jpeg"}, "prediction": { "ids": [1, 2], "displayNames": ["cat", "dog"], "bboxes": [ [0.1, 0.2, 0.3, 0.4], [0.2, 0.3, 0.4, 0.5] ], "confidences": [0.7, 0.5] } }