Auf dieser Seite erfahren Sie, wie Sie mithilfe der Google Cloud Console oder der Vertex AI API Batchvorhersagen aus Ihren benutzerdefiniert trainierten Modellen abrufen.
Für eine Batchvorhersage geben Sie eine Eingabequelle und einen Ausgabespeicherort an, entweder Cloud Storage oder BigQuery, an dem Vertex AI Vorhersageergebnisse speichert.
Damit die Verarbeitungszeit möglichst gering ist, müssen sich die Ein- und Ausgabestandorte in derselben Region oder Multiregion befinden. Wenn Ihre Eingabe beispielsweise in us-central1
liegt, kann die Ausgabe in us-central1
oder US
liegen, aber nicht in europe-west4
. Weitere Informationen finden Sie unter Cloud Storage-Standorte und BigQuery-Standorte.
Ihre Eingabe und Ausgabe müssen sich außerdem in derselben Region oder Mehrfachregion befinden wie Ihr Modell.
Anforderungen an Eingabedaten
Die Eingabe für Batchanfragen gibt die Elemente an, die zur Vorhersage an Ihr Modell gesendet werden sollen. Wir unterstützen die folgenden Eingabeformate:
JSON Lines
Mit einer JSON Lines-Datei können Sie eine Liste der Eingabeinstanzen festlegen, für die Vorhersagen getroffen werden sollen. Speichern Sie die JSON Lines-Datei in einem Cloud Storage-Bucket.
Beispiel 1
Das folgende Beispiel zeigt eine JSON Lines-Datei, in der jede Zeile ein Array enthält:
[1, 2, 3, 4]
[5, 6, 7, 8]
Folgendes wird an den Vorhersagecontainer im HTTP-Anfragetext gesendet:
Alle anderen Container
{"instances": [ [1, 2, 3, 4], [5, 6, 7, 8] ]}
PyTorch-Container
{"instances": [ { "data": [1, 2, 3, 4] }, { "data": [5, 6, 7, 8] } ]}
Beispiel 2
Das folgende Beispiel zeigt eine JSON Lines-Datei, in der jede Zeile ein Objekt enthält.
{ "values": [1, 2, 3, 4], "key": 1 }
{ "values": [5, 6, 7, 8], "key": 2 }
Folgendes wird an den Vorhersagecontainer im HTTP-Anfragetext gesendet. Beachten Sie, dass derselbe Anfragetext an alle Container gesendet wird.
{"instances": [
{ "values": [1, 2, 3, 4], "key": 1 },
{ "values": [5, 6, 7, 8], "key": 2 }
]}
Beispiel 3:
Bei vordefinierten PyTorch-Containern muss jede Instanz gemäß dem Standard-Handler von TorchServe in ein data
-Feld eingebunden werden. Vertex AI verpackt Ihre Instanzen nicht. Beispiel:
{ "data": { "values": [1, 2, 3, 4], "key": 1 } }
{ "data": { "values": [5, 6, 7, 8], "key": 2 } }
Folgendes wird an den Vorhersagecontainer im HTTP-Anfragetext gesendet:
{"instances": [
{ "data": { "values": [1, 2, 3, 4], "key": 1 } },
{ "data": { "values": [5, 6, 7, 8], "key": 2 } }
]}
TFRecord
Speichern Sie Eingabeinstanzen im TFRecord-Format. Optional können Sie die TFRecord-Dateien mit Gzip komprimieren. Speichern Sie die TFRecord-Dateien in einem Cloud Storage-Bucket.
Vertex AI liest jede Instanz in Ihren TFRecord-Dateien als Binärcode und codiert dann die Instanz mit base64 als JSON-Objekt mit einem einzigen Schlüssel namens b64
.
Folgendes wird an den Vorhersagecontainer im HTTP-Anfragetext gesendet:
Alle anderen Container
{"instances": [ { "b64": "b64EncodedASCIIString" }, { "b64": "b64EncodedASCIIString" } ]}
PyTorch-Container
{"instances": [ { "data": {"b64": "b64EncodedASCIIString" } }, { "data": {"b64": "b64EncodedASCIIString" } } ]}
Sorgen Sie dafür, dass Ihr Vorhersagecontainer weiß, wie die Instanz decodiert werden soll.
CSV
Geben Sie eine Eingabeinstanz pro Zeile in einer CSV-Datei an. Die erste Zeile muss eine Kopfzeile sein. Alle Strings müssen in doppelte Anführungszeichen (") eingeschlossen werden. Wir akzeptieren keinen Zellenwert, einschließlich Zeilenumbruchzeichen. Werte ohne umschließende Anführungszeichen werden als Gleitkommazahlen gelesen.
Das folgende Beispiel zeigt eine CSV-Datei mit zwei Eingabeinstanzen:
"input1","input2","input3"
0.1,1.2,"cat1"
4.0,5.0,"cat2"
Folgendes wird an den Vorhersagecontainer im HTTP-Anfragetext gesendet:
Alle anderen Container
{"instances": [ [0.1,1.2,"cat1"], [4.0,5.0,"cat2"] ]}
PyTorch-Container
{"instances": [ { "data": [0.1,1.2,"cat1"] }, { "data": [4.0,5.0,"cat2"] } ]}
Dateiliste
Erstellen Sie eine Textdatei, in der jede Zeile der Cloud Storage-URI für eine Datei ist. Vertex AI liest den Inhalt jeder Datei als Binärcode und codiert dann mit base64 die Instanz als JSON-Objekt mit einem einzigen Schlüssel namens b64
.
Wenn Sie die Google Cloud Console zum Abrufen von Batchvorhersagen verwenden möchten, fügen Sie Ihre Dateiliste direkt in die Google Cloud Console ein. Speichern Sie die Dateiliste dann in einem Cloud Storage-Bucket.
Das folgende Beispiel zeigt eine Dateiliste mit zwei Eingabeinstanzen:
gs://path/to/image/image1.jpg
gs://path/to/image/image2.jpg
Folgendes wird an den Vorhersagecontainer im HTTP-Anfragetext gesendet:
Alle anderen Container
{ "instances": [ { "b64": "b64EncodedASCIIString" }, { "b64": "b64EncodedASCIIString" } ]}
PyTorch-Container
{ "instances": [ { "data": { "b64": "b64EncodedASCIIString" } }, { "data": { "b64": "b64EncodedASCIIString" } } ]}
Sorgen Sie dafür, dass Ihr Vorhersagecontainer weiß, wie die Instanz decodiert werden soll.
BigQuery
Geben Sie eine BigQuery-Tabelle als projectId.datasetId.tableId
an.
Vertex AI wandelt jede Zeile aus der Tabelle in eine JSON-Instanz um.
Angenommen, Ihre Tabelle enthält Folgendes:
Spalte 1 | Spalte 2 | Spalte 3 |
---|---|---|
1.0 | 3.0 | "Cat1" |
2.0 | 4.0 | "Cat2" |
Folgendes wird an den Vorhersagecontainer im HTTP-Anfragetext gesendet:
Alle anderen Container
{"instances": [ [1.0,3.0,"cat1"], [2.0,4.0,"cat2"] ]}
PyTorch-Container
{"instances": [ { "data": [1.0,3.0,"cat1"] }, { "data": [2.0,4.0,"cat2"] } ]}
So werden BigQuery-Datentypen in JSON konvertiert:
BigQuery-Typ | JSON-Typ | Beispielwert |
---|---|---|
String | String | "abc" |
Integer | Integer | 1 |
Gleitkommazahl | Gleitkommazahl | 1.2 |
Numerisch | Gleitkommazahl | 4925.000000000 |
Boolesch | Boolesch | wahr |
TimeStamp | String | "2019-01-01 23:59:59.999999+00:00" |
Datum | String | "2018-12-31" |
Zeit | String | "23:59:59.999999" |
DateTime | String | "2019-01-01T00:00:00" |
Datensatz | Object | { "A": 1,"B": 2} |
Wiederkehrender Typ | Array[Type] | [1, 2] |
Verschachtelter Datensatz | Object | {"A": {"a": 0}, "B": 1} |
Partitionsdaten
Die Batchvorhersage verwendet MapReduce, um die Eingabe auf jedes Replikat zu fragmentieren. Um die MapReduce-Funktionen nutzen zu können, sollte die Eingabe partitionierbar sein.
Vertex AI partitioniert automatisch die BigQuery-, Dateilisten- und JSON Lines-Eingaben.
Vertex AI partitioniert CSV-Dateien nicht automatisch, da sie nicht von Natur aus partitionierbar sind. Zeilen in CSV-Dateien sind nicht selbstbeschreibend und typisiert. Sie können auch neue Zeilen enthalten. Wir raten davon ab, die CSV-Eingabe für durchsatzempfindliche Anwendungen zu verwenden.
Partitionieren Sie bei der TFRecord-Eingabe die Daten manuell. Teilen Sie dazu die Instanzen in kleinere Dateien auf und übergeben Sie die Dateien mit einem Platzhalter (z. B. gs://my-bucket/*.tfrecord
) an den Job. Die Anzahl der Dateien sollte mindestens der angegebenen Anzahl an Replikaten entsprechen.
Eingabedaten filtern und transformieren
Um Ihre Batcheingabe zu filtern und/oder zu transformieren, können Sie instanceConfig
in der BatchPredictionJob
-Anfrage angeben.
Mit der Filterung können Sie entweder bestimmte Felder aus den Eingabedaten aus Ihrer Vorhersageanfrage ausschließen oder nur einen Teil der Felder aus den Eingabedaten in Ihrer Vorhersageanfrage einschließen, ohne dass benutzerdefinierte Vorverarbeitung/Nachverarbeitung im Vorhersagecontainer ausführen. Dies ist nützlich, wenn die Eingabedatendatei zusätzliche Spalten enthält, die vom Modell nicht benötigt werden, z. B. Schlüssel oder zusätzliche Daten.
Mit der Transformation können Sie die Instanzen im JSON-Format array
oder object
an den Vorhersagecontainer senden. Weitere Informationen finden Sie unter instanceType
.
Angenommen, Ihre Eingabetabelle enthält Folgendes:
customerId | col1 | col2 |
---|---|---|
1001 | 1 | 2 |
1002 | 5 | 6 |
und Sie geben die folgende instanceConfig
an:
{
"name": "batchJob1",
...
"instanceConfig": {
"excludedFields":"customerId"
"instanceType":"object"
}
}
Anschließend werden die Instanzen in Ihrer Vorhersageanfrage als JSON-Objekte gesendet und die Spalte customerId
wird ausgeschlossen:
{"col1":1,"col2":2}
{"col1":5,"col2":6}
Beachten Sie, dass bei Angabe des folgenden instanceConfig
dasselbe Ergebnis zurückgegeben wird:
{
"name": "batchJob1",
...
"instanceConfig": {
"includedFields": ["col1","col2"]
"instanceType":"object"
}
}
Eine Demonstration zur Verwendung von Featurefiltern finden Sie im Notebook Batchvorhersage mit einem benutzerdefiniertes Modell und mit Featurefilterung.
Eine Batchvorhersage anfordern
Für Batchvorhersageanfragen können Sie die Google Cloud Console oder die Vertex AI API verwenden. Abhängig von der Anzahl der Eingabeelemente, die Sie eingereicht haben, kann die Batchvorhersage eine Weile dauern.
Wenn Sie eine Batchvorhersage anfordern, wird der Vorhersagecontainer als vom Nutzer bereitgestelltes benutzerdefiniertes Dienstkonto ausgeführt. Die Lese-/Schreibvorgänge, z. B. das Lesen der Vorhersageinstanzen aus der Datenquelle oder das Schreiben der Vorhersageergebnisse, erfolgen standardmäßig mit dem Vertex AI-Dienst-Agent, der standardmäßig Zugriff auf BigQuery und Cloud Storage hat.
Google Cloud Console
Verwenden Sie die Google Cloud Console, um eine Batchvorhersage 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.
Führen Sie für Batchvorhersage definieren folgende Schritte aus:
Geben Sie einen Namen für die Batchvorhersage ein.
Wählen Sie für Modellname den Namen des Modells aus, das für diese Batchvorhersage verwendet werden soll.
Wählen Sie unter Quelle auswählen die Quelle aus, die auf Ihre Eingabedaten angewendet wird:
- Wenn Sie Ihre Eingabe im Format JSON Lines, CSV oder TFRecord formatiert haben, wählen Sie Datei in Cloud Storage (JSON Lines, CSV, TFRecord, TFRecord Gzip) aus. Geben Sie Ihre Eingabedatei dann im Feld Quellpfad an.
- Wenn Sie eine Dateiliste als Eingabe verwenden, wählen Sie Dateien in Cloud Storage (other) aus und fügen Sie die Dateiliste in das folgende Textfeld ein.
- Wählen Sie für die BigQuery-Eingabe die Option BigQuery-Pfad aus. Wenn Sie BigQuery als Eingabe auswählen, müssen Sie auch BigQuery als Ausgabe und den von Google verwalteten Verschlüsselungsschlüssel auswählen. Der vom Kunden verwaltete Verschlüsselungsschlüssel (CMEK) wird nicht mit BigQuery als Eingabe/Ausgabe unterstützt.
Geben Sie im Feld Zielpfad das Cloud Storage-Verzeichnis an, in dem Vertex AI die Batchvorhersageausgabe speichern soll.
Sie können optional Featureattributionen für dieses Modell aktivieren anklicken, um Featureattributionen als Teil der Batchvorhersageantwort zu erhalten. Klicken Sie anschließend auf Bearbeiten, um die Erläuterungseinstellungen zu konfigurieren. (Das Bearbeiten der Erläuterungseinstellungen ist optional, wenn Sie zuvor die Erläuterungseinstellungen für das Modell konfiguriert und andernfalls angefordert haben.)
Legen Sie Computing-Optionen für den Batchvorhersagejob fest: Anzahl der Computing-Knoten, Maschinentyp und (optional) Beschleunigertyp und Beschleunigeranzahl.
Optional: Die Model Monitoring-Analyse für Batchvorhersagen ist in der Vorschau verfügbar. Informationen für das Hinzufügen einer Konfiguration zur Abweichungserkennung zu Ihrem Batchvorhersagejob finden Sie unter Voraussetzungen.
Klicken Sie, um die Option Model Monitoring für diese Batchvorhersage aktivieren einzuschalten.
Wählen Sie eine Quelle der Trainingsdaten aus. Geben Sie den Datenpfad oder den Speicherort für die ausgewählte Trainingsdatenquelle ein.
Optional: Geben Sie unter Benachrichtigungsgrenzwerte Grenzwerte an, ab denen Benachrichtigungen ausgelöst werden sollen.
Geben Sie unter Benachrichtigungs-E-Mails eine oder mehrere durch Kommas getrennte E-Mail-Adressen ein, um Benachrichtigungen zu erhalten, wenn ein Modell einen Benachrichtigungsgrenzwert überschreitet.
Optional: Fügen Sie unter Benachrichtigungskanäle Cloud Monitoring-Kanäle hinzu, um Benachrichtigungen zu erhalten, wenn ein Modell einen Benachrichtigungsgrenzwert überschreitet. Sie können vorhandene Cloud Monitoring-Kanäle auswählen oder neue erstellen. Klicken Sie dazu auf Benachrichtigungskanäle verwalten. Die Console unterstützt PagerDuty-, Slack- und Pub/Sub-Benachrichtigungskanäle.
Klicken Sie auf Erstellen.
API
Verwenden Sie die Vertex AI API zum Senden von Batchvorhersageanfragen. Wählen Sie einen Tab aus, je nachdem, mit welchem Tool Sie Batchvorhersagen abrufen:
REST
Ersetzen Sie dabei folgende Werte für die Anfragedaten:
LOCATION_ID: Region, in der das Modell gespeichert ist .und der Batchvorhersagejob ausgeführt wird. Beispiel:
us-central1
.PROJECT_ID: Ihre Projekt-ID.
BATCH_JOB_NAME: Anzeigename für den Batchvorhersagejob.
MODEL_ID: Die ID für das Modell, das für Vorhersagen verwendet werden soll.
INPUT_FORMAT: Das Format der Eingabedaten:
jsonl
,csv
,tf-record
,tf-record-gzip
oderfile-list
.INPUT_URI: Cloud Storage-URI Ihrer Eingabedaten. Kann Platzhalter enthalten.
OUTPUT_DIRECTORY: Cloud Storage-URI eines Verzeichnisses, in dem Vertex AI die Ausgabe speichern soll.
MACHINE_TYPE: Die Maschinenressourcen, die für diesen Batchvorhersagejob zu verwenden sind.
Optional können Sie das Feld
machineSpec
konfigurieren, um Beschleuniger zu verwenden. Im folgenden Beispiel wird dies jedoch nicht veranschaulicht.BATCH_SIZE: Die Anzahl der Instanzen, die in jeder Vorhersageanfrage gesendet werden sollen. Der Standardwert ist 64. Das Erhöhen der Batchgröße kann den Durchsatz erhöhen, aber auch zu Zeitüberschreitungen bei Anfragen führen.
STARTING_REPLICA_COUNT: Die Anzahl der Knoten für diesen Batchvorhersagejob.
HTTP-Methode und URL:
POST http://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", "inputConfig": { "instancesFormat": "INPUT_FORMAT", "gcsSource": { "uris": ["INPUT_URI"], }, }, "outputConfig": { "predictionsFormat": "jsonl", "gcsDestination": { "outputUriPrefix": "OUTPUT_DIRECTORY", }, }, "dedicatedResources" : { "machineSpec" : { "machineType": MACHINE_TYPE }, "startingReplicaCount": STARTING_REPLICA_COUNT }, "manualBatchTuningParameters": { "batch_size": BATCH_SIZE, } }
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 \
"http://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 "http://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/batchPredictionJobs" | Select-Object -Expand Content
Sie sollten in etwa folgende JSON-Antwort erhalten:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/batchPredictionJobs/BATCH_JOB_ID", "displayName": "BATCH_JOB_NAME 202005291958", "model": "projects/PROJECT_ID/locations/LOCATION_ID/models/MODEL_ID", "inputConfig": { "instancesFormat": "jsonl", "gcsSource": { "uris": [ "INPUT_URI" ] } }, "outputConfig": { "predictionsFormat": "jsonl", "gcsDestination": { "outputUriPrefix": "OUTPUT_DIRECTORY" } }, "state": "JOB_STATE_PENDING", "createTime": "2020-05-30T02:58:44.341643Z", "updateTime": "2020-05-30T02:58:44.341643Z", }
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.
Ersetzen Sie im folgenden Beispiel PREDICTIONS_FORMAT durch jsonl
.
Informationen zum Ersetzen der anderen Platzhalter finden Sie auf dem Tab REST & CMD LINE
dieses Abschnitts.
Python
Informationen zum Installieren oder Aktualisieren von Python finden Sie unter Vertex AI SDK für Python installieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Python API.
Featurewichtigkeit
Wenn Sie für Vorhersagen Featurewichtigkeitswerte zurückgeben möchten, legen Sie für das Attribut generateExplanation
den Wert true
fest. Beachten Sie, dass Prognosemodelle die Featurewichtigkeit nicht unterstützen, sodass Sie sie nicht in Ihre Batchvorhersageanfragen aufnehmen können.
Die Featurewichtigkeit, manchmal auch Featureattributionen genannt, ist Teil von Vertex Explainable AI.
Sie können für generateExplanation
nur dann true
festlegen, wenn Sie Ihr Model
für Erläuterungen konfiguriert haben oder wenn Sie das Feld explanationSpec
von BatchPredictionJob
angeben.
Maschinentyp und Anzahl der Replikate wählen
Durch horizontale Skalierung durch eine Steigerung der Anzahl der Replikate wird der Durchsatz linearer und vorhersehbarer als bei Verwendung größerer Maschinentypen verbessert.
Im Allgemeinen empfehlen wir, den kleinstmöglichen Maschinentyp für Ihren Job anzugeben und die Anzahl der Replikate zu erhöhen.
Aus Gründen der Kosteneffizienz empfehlen wir, dass Sie die Replikatanzahl so auswählen, dass Ihr Batchvorhersagejob mindestens 10 Minuten lang ausgeführt wird. Der Grund ist, dass Ihnen Kosten pro Replikatknotenstunde in Rechnung gestellt werden, inklusive der etwa 5 Minuten, die jedes Replikat zum Start benötigt. Es ist nicht kosteneffizient, nur wenige Sekunden Rechnungen auszuführen und die Anwendung dann herunterzufahren.
Als allgemeine Orientierungshilfe empfehlen wir für Tausende von Instanzen einen starting_replica_count
in mehreren Zehntausend. Für Millionen von Instanzen empfehlen wir einen starting_replica_count
in den Hunderten. Sie können auch die folgende Formel verwenden, um die Anzahl der Replikate zu schätzen:
N / (T * (60 / Tb))
Wobei:
- N: Die Anzahl der Batches im Job. Beispiel: 1 Million Instanzen/Batchgröße von 100 = 10.000 Batches.
- T: Gewünschte Zeit für den Batchvorhersagejob. Beispiel: 10 Minuten.
- Tb: Die Zeit in Sekunden, die ein Replikat benötigt, um einen einzelnen Batch zu verarbeiten. Beispiel: 1 Sekunde pro Batch bei einem Maschinentyp mit 2 Kernen.
In unserem Beispiel werden 10.000 Batches/(10 Minuten * (60/1 s)) auf 17 Replikate aufgerundet.
Im Gegensatz zur Onlinevorhersage werden Batchvorhersagejobs nicht automatisch skaliert. Da alle Eingabedaten im Voraus bekannt sind, partitioniert das System die Daten in jedes Replikat, wenn der Job gestartet wird. Das System verwendet den Parameter starting_replica_count
; Der Parameter max_replica_count
wird ignoriert.
Diese Empfehlungen sind ungefähre Richtlinien. Es ist nicht sicher, dass sie für jedes Modell einen optimalen Durchsatz bieten. Sie liefern keine genauen Vorhersagen in Bezug auf Verarbeitungszeit und Kosten. Und sie bieten nicht unbedingt für jedes Szenario die besten Kompromisse in Bezug auf Kosten/Durchsatz. Verwenden Sie sie als guten Ausgangspunkt und passen Sie sie bei Bedarf an. Führen Sie zum Messen von Merkmalen wie dem Durchsatz für Ihr Modell das Notebook Idealen Maschinentyp ermitteln aus.
Für GPU- oder TPU-beschleunigte Maschinen
Beachten Sie nur die Richtlinien für CPU-Modelle und beachten Sie folgende zusätzliche Überlegungen:
- Möglicherweise benötigen Sie mehr CPUs und GPUs (z. B. für die Datenvorverarbeitung).
- GPU-Maschinentypen benötigen mehr Zeit für den Start (10 Minuten). Daher sollten Sie für den Batchvorhersagejob längere Zeiten (z. B. mindestens 20 Minuten anstelle von 10 Minuten) einplanen, damit eine angemessener Menge Zeit und Kosten für die Generierung von Vorhersagen genutzt wird.
Batchvorhersageergebnisse abrufen
Wenn eine Batchvorhersage abgeschlossen ist, wird die Ausgabe der Vorhersage in dem Cloud Storage-Bucket oder BigQuery-Speicherort gespeichert, den Sie in Ihrer Anfrage angegeben haben.
Beispiel für ein Batchvorhersageergebnis
Der Ausgabeordner enthält eine Reihe von JSON-Lines-Dateien.
Die Dateien heißen {gcs_path}/prediction.results-{file_number}-of-{number_of_files_generated}
.
Die Anzahl der Dateien, die aufgrund der verteilten Natur von Batchvorhersagen nicht deterministisch sind.
Jede Zeile in der Datei entspricht einer Instanz aus der Eingabe und hat die folgenden Schlüssel/Wert-Paare:
prediction
: Enthält den vom Vorhersagecontainer zurückgegebenen Wert.instance
: Enthält für FileList den Cloud Storage-URI. Bei allen anderen Eingabeformaten enthält es den Wert, der an den Vorhersagecontainer im HTTP-Anfragetext gesendet wurde.
Beispiel 1
Wenn die HTTP-Anfrage Folgendes enthält:
{
"instances": [
[1, 2, 3, 4],
[5, 6, 7, 8]
]}
Und der Vorhersagecontainer Folgendes zurückgibt:
{
"predictions": [
[0.1,0.9],
[0.7,0.3]
],
}
Dann ist dies die jsonl-Ausgabedatei:
{ "instance": [1, 2, 3, 4], "prediction": [0.1,0.9]}
{ "instance": [5, 6, 7, 8], "prediction": [0.7,0.3]}
Beispiel 2
Wenn die HTTP-Anfrage Folgendes enthält:
{
"instances": [
{"values": [1, 2, 3, 4], "key": 1},
{"values": [5, 6, 7, 8], "key": 2}
]}
Und der Vorhersagecontainer Folgendes zurückgibt:
{
"predictions": [
{"result":1},
{"result":0}
],
}
Dann ist dies die jsonl-Ausgabedatei:
{ "instance": {"values": [1, 2, 3, 4], "key": 1}, "prediction": {"result":1}}
{ "instance": {"values": [5, 6, 7, 8], "key": 2}, "prediction": {"result":0}}
Explainable AI verwenden
Wir raten davon ab, funktionsbasierte Erläuterungen für große Datenmengen auszuführen. Dies liegt daran, dass jede Eingabe basierend auf der Menge der möglichen Merkmalswerte potenziell zu Tausenden von Anfragen führen kann, was zu einer deutlich erhöhten Verarbeitungszeit und höheren Kosten führen kann. Im Allgemeinen reicht ein kleines Dataset aus, um die Merkmalwichtigkeit zu verstehen.
Die Batchvorhersage unterstützt keine beispielbasierten Erläuterungen.