Auf dieser Seite erfahren Sie, wie Sie mithilfe der Google Cloud Console oder der Vertex AI API Batchinferenzen aus Ihren Modellen zur Videoaktionserkennung abrufen. Batchinferenzen sind asynchrone Anfragen. Sie können Batchinferenzen direkt von der Modellressource anfordern, ohne das Modell auf einem Endpunkt bereitstellen zu müssen.
AutoML-Videomodelle unterstützen keine Onlineinferenzen.
Batchinferenzen abrufen
Für eine Batchinferenz geben Sie eine Eingabequelle und ein Ausgabeformat an, in dem Vertex AI die Inferenzergebnisse speichert.
Anforderungen an Eingabedaten
Die Eingabe für Batchanfragen gibt die Elemente an, die zur Inferenz an Ihr Modell gesendet werden sollen. Für Batchinferenzen für den AutoML-Videomodelltyp wird eine JSON Lines-Datei verwendet, um eine Liste von Videos für Inferenzen anzugeben. Anschließend wird die JSON Lines-Datei in einem Cloud Storage-Bucket gespeichert. Sie können Infinity
für das Feld timeSegmentEnd
angeben, um das Ende des Videos anzugeben. Das folgende Beispiel zeigt eine einzelne Zeile in einer JSON Lines-Eingabedatei.
{'content': 'gs://sourcebucket/datasets/videos/source_video.mp4', 'mimeType': 'video/mp4', 'timeSegmentStart': '0.0s', 'timeSegmentEnd': '2.366667s'}
Batchinferenz anfordern
Für Batchinferenzanfragen können Sie die Google Cloud -Konsole oder die Vertex AI API verwenden. Abhängig von der Anzahl der Eingabeelemente, die Sie eingereicht haben, kann die Batchinferenz eine Weile dauern.
Google Cloud console
Verwenden Sie die Google Cloud Console, um eine Batchinferenz anzufordern.
Rufen Sie in der Google Cloud Console im Abschnitt „Vertex AI“ die Seite Batchvorhersagen auf.
Klicken Sie auf Erstellen, um das Fenster Neue Batchvorhersage zu öffnen, und führen Sie die folgenden Schritte aus:
- Geben Sie einen Namen für die Batchinferenz ein.
- Wählen Sie für Modellname den Namen des Modells aus, das für diese Batchinferenz verwendet werden soll.
- Geben Sie unter Quellpfad den Cloud Storage-Speicherort an, in dem sich Ihre JSON Lines-Eingabedatei befindet.
- Geben Sie als Zielpfad einen Cloud Storage-Speicherort an, an dem die Ergebnisse der Batchinferenz gespeichert werden. Das Format der Ausgabe wird durch das Ziel des Modells bestimmt. AutoML-Modelle für Bildziele geben JSON Lines-Ausgabedateien aus.
API
Verwenden Sie die Vertex AI API, um Batchinferenzanfragen zu senden.
REST
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- LOCATION_ID: Region, in der das Modell gespeichert ist und der Batchinferenzjob ausgeführt wird. Beispiel:
us-central1
. - PROJECT_ID: Ihre Projekt-ID
- BATCH_JOB_NAME: Anzeigename für den Batchjob
- MODEL_ID: Die ID des Modells, das für Inferenzen verwendet werden soll
- THRESHOLD_VALUE (optional): Das Modell gibt nur Vorhersagen mit Konfidenzwerten mit mindestens diesem Wert zurück.
- URI: Der Cloud Storage-URI, in dem sich die JSON Lines-Eingabedatei befindet
- BUCKET: Ihr Cloud Storage-Bucket
- PROJECT_NUMBER: Die automatisch generierte Projektnummer Ihres Projekts.
HTTP-Methode und URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/batchPredictionJobs
JSON-Text der Anfrage:
{ "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", }, }, }
Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:
curl
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json
und führen Sie den folgenden Befehl aus:
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
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json
und führen Sie den folgenden Befehl aus:
$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
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
{ "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" }
Sie können den Status des Batch-Jobs mit BATCH_JOB_ID abfragen, bis der Job state
den Wert JOB_STATE_SUCCEEDED
hat.
Java
Bevor Sie dieses Beispiel anwenden, folgen Sie den Java-Einrichtungsschritten in der Vertex AI-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Informationen finden Sie in der Referenzdokumentation zur Vertex AI Java API.
Richten Sie zur Authentifizierung bei Vertex AI Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Python
Informationen zur Installation des Vertex AI SDK for Python finden Sie unter Vertex AI SDK for Python installieren. Weitere Informationen finden Sie in der Python-API-Referenzdokumentation.
Batchinferenzergebnisse abrufen
Vertex AI sendet die Ausgabe von Batchinferenzen an das angegebene Ziel.
Wenn eine Batchinferenz abgeschlossen ist, wird die Ausgabe der Inferenzausgabe in dem Cloud Storage-Bucket gespeichert, den Sie in der Anfrage angegeben haben.
Beispielergebnisse für die Batchinferenz
Das folgende Beispiel zeigt die Batchinferenz aus einem Modell zur Videoaktionserkennung.
{ "instance": { "content": "gs://bucket/video.mp4", "mimeType": "video/mp4", "timeSegmentStart": "1s", "timeSegmentEnd": "5s" } "prediction": [{ "id": "1", "displayName": "swing", "timeSegmentStart": "1.2s", "timeSegmentEnd": "1.2s", "confidence": 0.7 }, { "id": "2", "displayName": "jump", "timeSegmentStart": "3.4s", "timeSegmentEnd": "3.4s", "confidence": 0.5 }] }