I modelli video AutoML non supportano le inferenze online.
Ottenere inferenze batch
Per effettuare una richiesta di inferenza batch, specifica un'origine di input e un formato di output in cui Vertex AI memorizza i risultati dell'inferenza.
Requisiti dei dati di input
L'input per le richieste batch specifica gli elementi da inviare al modello per
l'inferenza. Le inferenze batch per il tipo di modello video AutoML utilizzano un file JSON Lines per specificare un elenco di video per cui eseguire le inferenze e poi archiviano il file JSON Lines in un bucket Cloud Storage. Puoi specificare
Infinity
per il campo timeSegmentEnd
per specificare la fine del video. L'esempio
seguente mostra una singola riga in un file JSON Lines di input.
{'content': 'gs://sourcebucket/datasets/videos/source_video.mp4', 'mimeType': 'video/mp4', 'timeSegmentStart': '0.0s', 'timeSegmentEnd': '2.366667s'}
Richiedere un'inferenza batch
Per le richieste di inferenza 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 inferenza batch può richiedere un po' di tempo.
Google Cloud console
Utilizza la console Google Cloud per richiedere un'inferenza batch.
Nella console Google Cloud , nella sezione Vertex AI, vai alla pagina Batch predictions.
Fai clic su Crea per aprire la finestra Nuova previsione batch e completa i seguenti passaggi:
- Inserisci un nome per l'inferenza batch.
- Per Nome modello, seleziona il nome del modello da utilizzare per questa inferenza batch.
- Per Percorso origine, specifica la posizione di Cloud Storage in cui si trova il file di input JSON Lines.
- Per il Percorso di destinazione, specifica una posizione Cloud Storage in cui sono archiviati i risultati dell'inferenza batch. Il formato dell'output è determinato dall'obiettivo del modello. I modelli AutoML per gli obiettivi delle immagini generano file JSON Lines.
API
Utilizza l'API Vertex AI per inviare richieste di inferenza batch.
REST
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- LOCATION_ID: la regione in cui viene archiviato il modello ed eseguito il job di inferenza batch. Ad esempio,
us-central1
. - PROJECT_ID: il tuo ID progetto
- BATCH_JOB_NAME: Nome visualizzato per il job batch
- MODEL_ID: L'ID del modello da utilizzare per fare inferenze
- THRESHOLD_VALUE (facoltativo): Vertex AI restituisce solo
inferenze con punteggi di confidenza pari almeno a questo valore. Il valore
predefinito è
0.0
. - URI: URI Cloud Storage in cui si trova il file JSON Lines 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_ID/locations/LOCATION_ID/models/MODEL_ID", "modelParameters": { "confidenceThreshold": THRESHOLD_VALUE, }, "inputConfig": { "instancesFormat": "jsonl", "gcsSource": { "uris": ["URI"], }, }, "outputConfig": { "predictionsFormat": "jsonl", "gcsDestination": { "outputUriPrefix": "OUTPUT_BUCKET", }, }, }
Per inviare la richiesta, scegli una di queste opzioni:
curl
Salva il corpo della richiesta in un file denominato request.json
,
quindi esegui il comando seguente:
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
,
quindi esegui il comando seguente:
$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/us-central1/batchPredictionJobs/BATCH_JOB_ID", "displayName": "BATCH_JOB_NAME", "model": "projects/PROJECT_NUMBER/locations/us-central1/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 finché il job state
non è
JOB_STATE_SUCCEEDED
.
Java
Prima di provare questo esempio, segui le istruzioni di configurazione di Java nella guida rapida di Vertex AI per l'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Vertex AI Java.
Per autenticarti in Vertex AI, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Node.js
Prima di provare questo esempio, segui le istruzioni di configurazione di Node.js nella guida rapida di Vertex AI per l'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Vertex AI Node.js.
Per autenticarti in Vertex AI, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Python
Per scoprire come installare o aggiornare l'SDK Vertex AI Python, consulta Installare l'SDK Vertex AI Python. Per saperne di più, consulta la documentazione di riferimento dell'API Python.
Recuperare i risultati dell'inferenza batch
Vertex AI invia l'output dell'inferenza batch alla destinazione specificata.
Al termine di un'attività di inferenza batch, l'output dell'inferenza viene archiviato nel bucket Cloud Storage specificato nella richiesta.
Esempio di risultati dell'inferenza batch
Di seguito sono riportati i risultati di un esempio di inferenza batch da un modello di monitoraggio degli oggetti video.
{ "instance": { "content": "gs://bucket/video.mp4", "mimeType": "video/mp4", "timeSegmentStart": "1s", "timeSegmentEnd": "5s" } "prediction": [{ "id": "1", "displayName": "cat", "timeSegmentStart": "1.2s", "timeSegmentEnd": "3.4s", "frames": [{ "timeOffset": "1.2s", "xMin": 0.1, "xMax": 0.2, "yMin": 0.3, "yMax": 0.4 }, { "timeOffset": "3.4s", "xMin": 0.2, "xMax": 0.3, "yMin": 0.4, "yMax": 0.5, }], "confidence": 0.7 }, { "id": "1", "displayName": "cat", "timeSegmentStart": "4.8s", "timeSegmentEnd": "4.8s", "frames": [{ "timeOffset": "4.8s", "xMin": 0.2, "xMax": 0.3, "yMin": 0.4, "yMax": 0.5, }], "confidence": 0.6 }, { "id": "2", "displayName": "dog", "timeSegmentStart": "1.2s", "timeSegmentEnd": "3.4s", "frames": [{ "timeOffset": "1.2s", "xMin": 0.1, "xMax": 0.2, "yMin": 0.3, "yMax": 0.4 }, { "timeOffset": "3.4s", "xMin": 0.2, "xMax": 0.3, "yMin": 0.4, "yMax": 0.5, }], "confidence": 0.5 }] }