Auf dieser Seite wird gezeigt, wie Sie mit der Google Cloud Console oder der Vertex AI API Onlinevorhersagen in Echtzeit aus Ihren benutzerdefinierten trainierten Modellen erhalten.
Eingabe für Onlinevorhersagen formatieren
In diesem Abschnitt wird gezeigt, wie Sie die Instanzen der Vorhersageeingabe im JSON-Format formatieren und codieren. Dies ist erforderlich, wenn Sie die Methode predict
oder explain
verwenden. Es ist nicht erforderlich, wenn Sie die Methode rawPredict
verwenden. Informationen zur Auswahl der Methode finden Sie unter Anfrage an einen Endpunkt senden.
Wenn Sie das Vertex AI SDK für Python verwenden, um Vorhersageanfragen zu senden, geben Sie die Liste der Instanzen ohne das Feld instances
an. Geben Sie beispielsweise [
["the","quick","brown"], ... ]
anstelle von { "instances": [
["the","quick","brown"], ... ] }
an.
Wenn Ihr Modell einen benutzerdefinierten Container nutzt, muss Ihre Eingabe im JSON-Format angegeben werden. Außerdem gibt es ein zusätzliches Feld parameters
, das für Ihren Container verwendet werden kann. Weitere Informationen zum Formatieren von Vorhersageeingaben mit benutzerdefinierten Containern finden Sie in diesem Artikel.
Instanzen als JSON-Strings formatieren
Das Basisformat für Onlinevorhersagen ist eine Liste mit Dateninstanzen. Dies können einfache Wertelisten oder Mitglieder eines JSON-Objekts sein, je nachdem, wie Sie die Eingaben in der Trainingsanwendung konfiguriert haben. TensorFlow-Modelle akzeptieren auch komplexere Eingaben. Die meisten scikit-learn- und XGBoost-Modelle erwarten dagegen eine Liste von Zahlen als Eingabe.
Dieses Beispiel zeigt einen Eingabetensor und einen Instanzschlüssel für ein TensorFlow-Modell:
{"values": [1, 2, 3, 4], "key": 1}
Die Zusammensetzung des JSON-Strings kann komplex sein, solange diese Regeln eingehalten werden:
Die oberste Ebene der Instanzdaten muss ein JSON-Objekt sein: ein Wörterbuch aus Schlüssel/Wert-Paaren.
Einzelne Werte in einem Instanzobjekt können Strings, Zahlen oder Listen sein. JSON-Objekte können nicht eingebettet werden.
Listen dürfen nur Elemente des gleichen Typs (einschließlich anderer Listen) enthalten. Strings und numerische Werte dürfen nicht kombiniert werden.
Sie übergeben die Eingabeinstanzen für die Onlinevorhersage als Nachrichtentext für den projects.locations.endpoints.predict
-Aufruf. Weitere Informationen zu den Formatierungsanforderungen des Anfragetextes finden Sie in diesem Artikel.
Nehmen Sie jede Instanz als Element in ein JSON-Array auf und geben Sie das Array als instances
-Feld eines JSON-Objekts an. Beispiel:
{"instances": [
{"values": [1, 2, 3, 4], "key": 1},
{"values": [5, 6, 7, 8], "key": 2}
]}
Binärdaten für Vorhersageeingaben codieren
Binärdaten können nicht als UTF-8-codierte Strings formatiert werden, die von JSON unterstützt werden. Wenn Sie in Ihren Eingaben Binärdaten verwenden, müssen Sie für deren Darstellung die base64-Codierung verwenden. Folgende besondere Formatierungen sind erforderlich:
Ihre codierte Zeichenfolge muss als JSON-Objekt mit einem einzelnen Schlüssel namens
b64
formatiert sein. In Python 3.5 gibt die Base64-Codierung eine Byte-Sequenz aus. Diese müssen Sie in einen String konvertieren, um die Serialisierung in JSON zu ermöglichen:{'image_bytes': {'b64': base64.b64encode(jpeg_data).decode()}}
Die Namen der Aliase für die binären Ein- und Ausgabetensoren in Ihrem TensorFlow-Modellcode müssen mit "_bytes" enden.
Anfrage- und Antwortbeispiele
In diesem Abschnitt werden das Format des Anfrage- und Antworttexts für Vorhersagen sowie Beispiele für TensorFlow, scikit-learn und XGBoost beschrieben.
Anfragetextdetails
TensorFlow
Der Anfragetext enthält Daten mit folgender Struktur (JSON-Darstellung):
{
"instances": [
<value>|<simple/nested list>|<object>,
...
]
}
Das Objekt instances[]
ist erforderlich und muss die Liste der Instanzen enthalten, für die Vorhersagen abgerufen werden sollen.
Die Struktur der einzelnen Elemente in der Liste der Instanzen wird durch die Eingabedefinition des Modells bestimmt. Instanzen können benannte Eingaben (wie Objekte) oder nur Werte ohne Label enthalten.
Nicht alle Daten enthalten benannte Eingaben. Einige Instanzen sind einfache JSON-Werte (boolesch, Zahl oder String). Allerdings sind Instanzen häufig Listen mit einfachen Werten oder komplexe verschachtelte Listen.
Im Folgenden sehen Sie einige Beispiele für Anfragetexte.
CSV-Daten, wobei jede Zeile als Stringwert codiert ist:
{"instances": ["1.0,true,\\"x\\"", "-2.0,false,\\"y\\""]}
Nur Text:
{"instances": ["the quick brown fox", "the lazy dog"]}
Sätze, die als Wortlisten codiert sind (Vektoren von Strings):
{ "instances": [ ["the","quick","brown"], ["the","lazy","dog"], ... ] }
Skalare Gleitkommawerte:
{"instances": [0.0, 1.1, 2.2]}
Vektoren von Ganzzahlen:
{ "instances": [ [0, 1, 2], [3, 4, 5], ... ] }
Tensoren (in diesem Fall zweidimensionale Tensoren):
{ "instances": [ [ [0, 1, 2], [3, 4, 5] ], ... ] }
Bilder, die unterschiedlich dargestellt werden können. In diesem Codierungsschema stellen die ersten zwei Dimensionen die Zeilen und Spalten des Bildes dar und die dritte Dimension enthält Listen (Vektoren) der R-, G- und B-Werte für jedes Pixel:
{ "instances": [ [ [ [138, 30, 66], [130, 20, 56], ... ], [ [126, 38, 61], [122, 24, 57], ... ], ... ], ... ] }
Datencodierung
JSON-Strings müssen als UTF-8 codiert sein. Um Binärdaten zu senden, müssen Sie die Daten base64-codieren und als binär kennzeichnen. Zum Kennzeichnen eines JSON-Strings als binär ersetzen Sie ihn durch ein JSON-Objekt mit einem einzelnen Attribut namens b64
:
{"b64": "..."}
Das folgende Beispiel zeigt zwei serialisierte tf.Examples
-Instanzen, die eine base64-Codierung erfordern (fiktive Daten, nur zur Veranschaulichung):
{"instances": [{"b64": "X5ad6u"}, {"b64": "IA9j4nx"}]}
Das folgende Beispiel zeigt zwei Bytestrings für ein JPEG-Bild, die eine base64-Codierung erfordern (fiktive Daten, nur zur Veranschaulichung):
{"instances": [{"b64": "ASa8asdf"}, {"b64": "JLK7ljk3"}]}
Mehrere Eingabetensoren
Einigen Modellen liegt eine TensorFlow-Grafik zugrunde, die mehrere Eingabetensoren annimmt. Verwenden Sie in diesem Fall die Namen von JSON-Name/Wert-Paaren, um die Eingabetensoren zu identifizieren.
Für eine Grafik mit den Eingabetensor-Aliassen "tag" (String) und "image" (base64-codierter String):
{ "instances": [ { "tag": "beach", "image": {"b64": "ASa8asdf"} }, { "tag": "car", "image": {"b64": "JLK7ljk3"} } ] }
Für eine Grafik mit den Eingabetensor-Aliassen "tag" (String) und "image" (dreidimensionales Array mit 8-Bit-Ganzzahlen):
{ "instances": [ { "tag": "beach", "image": [ [ [138, 30, 66], [130, 20, 56], ... ], [ [126, 38, 61], [122, 24, 57], ... ], ... ] }, { "tag": "car", "image": [ [ [255, 0, 102], [255, 0, 97], ... ], [ [254, 1, 101], [254, 2, 93], ... ], ... ] }, ... ] }
scikit-learn
Der Anfragetext enthält Daten mit folgender Struktur (JSON-Darstellung):
{
"instances": [
<simple list>,
...
]
}
Das Objekt instances[]
ist erforderlich und muss die Liste der Instanzen enthalten, für die Vorhersagen abgerufen werden sollen. Im folgenden Beispiel ist jede Eingabeinstanz eine Liste von Gleitkommazahlen:
{
"instances": [
[0.0, 1.1, 2.2],
[3.3, 4.4, 5.5],
...
]
}
Die Dimension der Eingabeinstanzen muss mit dem übereinstimmen, was Ihr Modell erwartet. Wenn Ihr Modell beispielsweise drei Features benötigt, muss die Länge jeder Eingabeinstanz 3 sein.
XGBoost
Der Anfragetext enthält Daten mit folgender Struktur (JSON-Darstellung):
{
"instances": [
<simple list>,
...
]
}
Das Objekt instances[]
ist erforderlich und muss die Liste der Instanzen enthalten, für die Vorhersagen abgerufen werden sollen. Im folgenden Beispiel ist jede Eingabeinstanz eine Liste von Gleitkommazahlen:
{
"instances": [
[0.0, 1.1, 2.2],
[3.3, 4.4, 5.5],
...
]
}
Die Dimension der Eingabeinstanzen muss mit dem übereinstimmen, was Ihr Modell erwartet. Wenn Ihr Modell beispielsweise drei Features benötigt, muss die Länge jeder Eingabeinstanz 3 sein.
Vertex AI unterstützt keine dünnbesetzte Darstellung von Eingabeinstanzen für XGBoost.
Der Onlinevorhersagedienst interpretiert Nullen und NaN
unterschiedlich. Wenn der Wert eines Features null ist, verwenden Sie in der entsprechenden Eingabe 0.0
. Wenn der Wert eines Features fehlt, verwenden Sie in der entsprechenden Eingabe "NaN"
.
Das folgende Beispiel stellt eine Vorhersageanfrage mit einer einzelnen Eingabeinstanz dar, wobei der Wert des ersten Features 0.0 beträgt, der Wert des zweiten Features 1.1 und der Wert des dritten Features fehlt.
{"instances": [[0.0, 1.1, "NaN"]]}
PyTorch
Wenn Ihr Modell einen vordefinierten PyTorch-Container verwendet, erwarten die Standard-Handler von TorchServe, dass jede Instanz in ein data
-Feld eingebunden wird. Beispiel:
{
"instances": [
{ "data": , <value> },
{ "data": , <value> }
]
}
Antworttextdetails
Wenn der Aufruf erfolgreich ist, enthält der Antworttext einen Vorhersageeintrag pro Instanz im Anfragetext, wobei die Einträge in derselben Reihenfolge angegeben werden:
{
"predictions": [
{
object
}
],
"deployedModelId": string
}
Wenn die Vorhersage für eine Instanz fehlschlägt, enthält der Antworttext keine Vorhersagen. Stattdessen wird ein einziger Fehlereintrag zurückgegeben:
{
"error": string
}
Das Objekt predictions[]
enthält die Liste der Vorhersagen, eine für jede Instanz in der Anfrage.
Bei einem Fehler enthält der String error
eine Nachricht, die das Problem beschreibt. Der Fehler wird anstelle einer Vorhersageliste zurückgegeben, wenn beim Verarbeiten einer Instanz ein Fehler aufgetreten ist.
Obwohl es pro Instanz eine Vorhersage gibt, hängt das Format einer Vorhersage nicht direkt mit dem Format einer Instanz zusammen. Vorhersagen haben das in der Ausgabensammlung angegebene Format. Die Ausgabensammlung ist wiederum im Modell definiert. Die Sammlung von Vorhersagen wird in einer JSON-Liste zurückgegeben. Jedes Element der Liste kann ein einfacher Wert, eine Liste oder ein JSON-Objekt beliebiger Komplexität sein. Wenn das Modell mehr als einen Ausgabetensor hat, ist jede Vorhersage ein JSON-Objekt, das ein Name/Wert-Paar für jede Ausgabe enthält. Die Namen identifizieren die Ausgabealiasse in der Grafik.
Antworttextbeispiele
TensorFlow
Die folgenden Beispiele zeigen einige mögliche Antworten:
-
Ein einfacher Satz von Vorhersagen für drei Eingabeinstanzen, wobei jede Vorhersage ein ganzzahliger Wert ist:
{"predictions": [5, 4, 3], "deployedModelId": 123456789012345678 }
-
Ein komplexerer Satz von Vorhersagen, wobei jede zwei benannte Werte enthält, die den Ausgabetensoren
label
bzw.scores
entsprechen. Der Wert vonlabel
ist die vorhergesagte Kategorie ("car" oder "beach") undscores
enthält eine Liste von Wahrscheinlichkeiten für diese Instanz über die möglichen Kategorien hinweg.{ "predictions": [ { "label": "beach", "scores": [0.1, 0.9] }, { "label": "car", "scores": [0.75, 0.25] } ], "deployedModelId": 123456789012345678 }
-
Eine Antwort, wenn bei der Verarbeitung einer Eingabeinstanz ein Fehler auftritt:
{"error": "Divide by zero"}
scikit-learn
Die folgenden Beispiele zeigen einige mögliche Antworten:
-
Ein einfacher Satz von Vorhersagen für drei Eingabeinstanzen, wobei jede Vorhersage ein ganzzahliger Wert ist:
{"predictions": [5, 4, 3], "deployedModelId": 123456789012345678 }
-
Eine Antwort, wenn bei der Verarbeitung einer Eingabeinstanz ein Fehler auftritt:
{"error": "Divide by zero"}
XGBoost
Die folgenden Beispiele zeigen einige mögliche Antworten:
-
Ein einfacher Satz von Vorhersagen für drei Eingabeinstanzen, wobei jede Vorhersage ein ganzzahliger Wert ist:
{"predictions": [5, 4, 3], "deployedModelId": 123456789012345678 }
-
Eine Antwort, wenn bei der Verarbeitung einer Eingabeinstanz ein Fehler auftritt:
{"error": "Divide by zero"}
Anfrage an einen Endpunkt senden
Es gibt drei Möglichkeiten, eine Anfrage zu senden:
Vorhersageanfrage: Senden Sie eine Anfrage an
predict
, um eine Onlinevorhersage abzurufen.Rohvorhersageanfrage: Sendet eine Anfrage an
rawPredict
. Sie können dann eine beliebige HTTP-Nutzlast nutzen, statt die auf dieser Seite unter Eingabe formatieren beschriebenen Richtlinien zu verwenden. In folgenden Fällen können Rohvorhersagen hilfreich sein:- Sie verwenden einen benutzerdefinierten Container, der Anfragen empfängt und Antworten sendet, die von den Richtlinien abweichen.
- Sie benötigen eine geringere Latenz.
rawPredict
überspringt die Serialisierungsschritte und leitet die Anfrage direkt an den Vorhersagecontainer weiter. - Sie stellen Vorhersagen mit NVIDIA Triton bereit.
Erläuterungsanfrage: Sendet eine Anfrage an
explain
. Wenn Sie IhrModel
für Vertex Explainable AI konfiguriert haben, können Sie Onlineerläuterungen abrufen. Anfragen für Onlineerläuterungen haben das gleiche Format wie Anfragen für Onlinevorhersagen und geben ähnliche Antworten zurück. Der einzige Unterschied besteht darin, dass Antworten für Onlineerläuterungen Feature-Attributionen sowie Vorhersagen enthalten.
Anfrage für eine Onlinevorhersage senden
gcloud
Im folgenden Beispiel wird der Befehl gcloud ai endpoints predict
verwendet:
Schreiben Sie das folgende JSON-Objekt, um es in Ihrer lokalen Umgebung zu speichern: Der Dateiname spielt keine Rolle. Für dieses Beispiel verwenden Sie
request.json
.{ "instances": INSTANCES }
Ersetzen Sie Folgendes:
- INSTANCES ist ein JSON-Array von Instanzen, für die Sie Vorhersagen abrufen möchten. Das Format der einzelnen Instanzen hängt davon ab, welche Eingaben Ihr trainiertes ML-Modell erwartet. Weitere Informationen finden Sie unter Eingabe für Onlinevorhersagen formatieren.
Führen Sie dazu diesen Befehl aus:
gcloud ai endpoints predict ENDPOINT_ID \ --region=LOCATION_ID \ --json-request=request.json
Ersetzen Sie dabei Folgendes:
- ENDPOINT_ID: Die ID des Endpunkts.
- LOCATION_ID: Die Region, in der Sie Vertex AI verwenden.
REST
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- LOCATION_ID: Die Region, in der Sie Vertex AI verwenden.
- PROJECT_ID: Ihre Projekt-ID
- ENDPOINT_ID: Die ID des Endpunkts.
- INSTANCES ist ein JSON-Array von Instanzen, für die Sie Vorhersagen abrufen möchten. Das Format der einzelnen Instanzen hängt davon ab, welche Eingaben Ihr trainiertes ML-Modell erwartet. Weitere Informationen finden Sie unter Eingabe für Onlinevorhersagen formatieren.
HTTP-Methode und URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/endpoints/ENDPOINT_ID:predict
JSON-Text der Anfrage:
{ "instances": INSTANCES }
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/endpoints/ENDPOINT_ID:predict"
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/endpoints/ENDPOINT_ID:predict" | Select-Object -Expand Content
- PREDICTIONS: Ein JSON-Array von Vorhersagen, jeweils eine für jede Instanz, die Sie im Anfragetext angegeben haben.
-
DEPLOYED_MODEL_ID: Die ID des
DeployedModel
, das die Vorhersagen bereitgestellt hat.
{ "predictions": PREDICTIONS, "deployedModelId": "DEPLOYED_MODEL_ID" }
Java
Bevor Sie dieses Beispiel anwenden, folgen Sie den Java Schritten zur Einrichtung 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.
Node.js
Bevor Sie dieses Beispiel anwenden, folgen Sie den Node.js-Einrichtungsschritten in der Vertex AI-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Informationen finden Sie in der Referenzdokumentation zur Vertex AI Node.js 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 Referenzdokumentation zur Python API.
Onlinevorhersageanfrage an einen dedizierten Endpunkt senden
Für dedizierte Endpunkte wird ein neuer URL-Pfad verwendet. Sie können diesen Pfad aus dem Feld dedicatedEndpointDns
in der REST API oder aus Endpoint.dedicated_endpoint_dns
im Vertex AI SDK für Python abrufen. Sie können den Endpunktpfad auch manuell mit dem folgenden Code erstellen:
f"https://ENDPOINT_ID.LOCATION_ID-PROJECT_NUMBER.prediction.vertexai.goog/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/endpoints/ENDPOINT_ID:predict"
Ersetzen Sie Folgendes:
- ENDPOINT_ID: Die ID des Endpunkts.
- LOCATION_ID: Die Region, in der Sie Vertex AI verwenden.
- PROJECT_NUMBER: die Projektnummer Diese unterscheidet sich von der Projekt-ID. Sie finden die Projektnummer in der Google Cloud Console auf der Seite Projekteinstellungen des Projekts.
Wenn Sie eine Vorhersage mit dem Vertex AI SDK für Python an einen speziellen Endpunkt senden möchten, legen Sie den Parameter use_dedicated_endpoint
auf True
fest:
endpoint.predict(instances=instances, use_dedicated_endpoint=True)
Onlineanfrage für Rohvorhersage senden
gcloud
In den folgenden Beispielen wird der Befehl gcloud ai endpoints raw-predict
verwendet:
-
So fordern Sie Vorhersagen mit dem JSON-Objekt in REQUESTüber die Befehlszeile an:
gcloud ai endpoints raw-predict ENDPOINT_ID \ --region=LOCATION_ID \ --request=REQUEST
So fordern Sie Vorhersagen mit einem in der Datei
image.jpeg
gespeicherten Bild und dem entsprechendenContent-Type
-Header an:gcloud ai endpoints raw-predict ENDPOINT_ID \ --region=LOCATION_ID \ --http-headers=Content-Type=image/jpeg \ --request=@image.jpeg
Dabei gilt:
- ENDPOINT_ID: Die ID des Endpunkts.
- LOCATION_ID: Die Region, in der Sie Vertex AI verwenden.
- REQUEST: Der Inhalt der Anfrage, für die Sie Vorhersagen erhalten möchten. Das Format der Anfrage hängt davon ab, was Ihr benutzerdefinierter Container erwartet. Es muss nicht unbedingt ein JSON-Objekt sein.
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 Referenzdokumentation zur Python API.
Die Antwort umfasst die folgenden HTTP-Header:
X-Vertex-AI-Endpoint-Id
: ID desEndpoint
, der diese Vorhersage bereitgestellt hat.X-Vertex-AI-Deployed-Model-Id
: ID desDeployedModel
des Endpunkts, das diese Vorhersage bereitgestellt hat.
Anfrage für Onlineerläuterung senden
gcloud
Im folgenden Beispiel wird der Befehl gcloud ai endpoints explain
verwendet:
Schreiben Sie das folgende JSON-Objekt, um es in Ihrer lokalen Umgebung zu speichern: Der Dateiname spielt keine Rolle. Für dieses Beispiel verwenden Sie
request.json
.{ "instances": INSTANCES }
Ersetzen Sie Folgendes:
- INSTANCES ist ein JSON-Array von Instanzen, für die Sie Vorhersagen abrufen möchten. Das Format der einzelnen Instanzen hängt davon ab, welche Eingaben Ihr trainiertes ML-Modell erwartet. Weitere Informationen finden Sie unter Eingabe für Onlinevorhersagen formatieren.
Führen Sie dazu diesen Befehl aus:
gcloud ai endpoints explain ENDPOINT_ID \ --region=LOCATION_ID \ --json-request=request.json
Ersetzen Sie dabei Folgendes:
- ENDPOINT_ID: Die ID des Endpunkts.
- LOCATION_ID: Die Region, in der Sie Vertex AI verwenden.
Wenn Sie eine Anfrage für Erläuterungen an ein bestimmtes
DeployedModel
imEndpoint
senden möchten, geben Sie das Flag--deployed-model-id
an:gcloud ai endpoints explain ENDPOINT_ID \ --region=LOCATION \ --deployed-model-id=DEPLOYED_MODEL_ID \ --json-request=request.json
Ersetzen Sie zusätzlich zu den zuvor beschriebenen Platzhaltern Folgendes:
-
DEPLOYED_MODEL_ID (optional) ist die ID des bereitgestellten Modells, für das Sie Erläuterungen abrufen möchten. Die ID ist in der Antwort der Methode
predict
enthalten. Wenn Sie Erläuterungen zu einem bestimmten Modell anfordern möchten und Sie mehr als ein Modell an einem bestimmten Endpunkt bereitgestellt haben, können Sie mit dieser ID festlegen, dass die Erläuterungen für das Modell zurückgegeben werden, das die vorherige Vorhersage bereitgestellt hat.
REST
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- LOCATION_ID: Die Region, in der Sie Vertex AI verwenden.
- PROJECT_ID: Ihre Projekt-ID
- ENDPOINT_ID: Die ID des Endpunkts.
- INSTANCES ist ein JSON-Array von Instanzen, für die Sie Vorhersagen abrufen möchten. Das Format der einzelnen Instanzen hängt davon ab, welche Eingaben Ihr trainiertes ML-Modell erwartet. Weitere Informationen finden Sie unter Eingabe für Onlinevorhersagen formatieren.
HTTP-Methode und URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/endpoints/ENDPOINT_ID:explain
JSON-Text der Anfrage:
{ "instances": INSTANCES }
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/endpoints/ENDPOINT_ID:explain"
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/endpoints/ENDPOINT_ID:explain" | Select-Object -Expand Content
- PREDICTIONS: Ein JSON-Array von Vorhersagen, jeweils eine für jede Instanz, die Sie im Anfragetext angegeben haben.
- EXPLANATIONS: Ein JSON-Array von Erläuterungen, eine für jede Vorhersage.
-
DEPLOYED_MODEL_ID: Die ID des
DeployedModel
, das die Vorhersagen bereitgestellt hat.
{ "predictions": PREDICTIONS, "explanations": EXPLANATIONS, "deployedModelId": "DEPLOYED_MODEL_ID" }
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 Referenzdokumentation zur Python API.