Auf dieser Seite wird gezeigt, wie Sie mit der Google Cloud Console oder der Vertex AI API Onlinevorhersagen und -erläuterungen in Echtzeit aus Ihren Tabellenklassifizierungs- oder Regressionsmodellen abrufen.
Eine Onlinevorhersage ist eine synchrone Anfrage im Gegensatz zu einer Batchvorhersage, bei der es sich um eine asynchrone Anfrage handelt. Verwenden Sie Onlinevorhersagen, wenn Sie Anfragen als Reaktion auf Anwendungseingaben oder in Situationen stellen, in denen eine zeitnahe Inferenz erforderlich ist.
Sie müssen ein Modell auf einem Endpunkt bereitstellen, bevor es für Onlinevorhersagen verwendet werden kann. Durch die Bereitstellung eines Modells werden dem Modell physische Ressourcen zugeordnet, sodass es Onlinevorhersagen mit niedriger Latenz bereitstellen kann.
Dabei werden folgende Themen behandelt:
- Modell auf einem Endpunkt bereitstellen
- Mit dem bereitgestellten Modell eine Onlinevorhersage treffen
- Mit dem bereitgestellten Modell eine Online-Erläuterung erhalten
Hinweis
Bevor Sie Onlinevorhersagen abrufen können, müssen Sie zuerst ein Klassifizierungs- oder Regressionsmodell trainieren und es auf Genauigkeit bewerten.
Modell auf einem Endpunkt bereitstellen
Sie können mehrere Modelle auf einem Endpunkt bereitstellen und ein Modell auf mehreren Endpunkten bereitstellen. Weitere Informationen zu Optionen und Anwendungsfällen für die Bereitstellung von Modellen finden Sie unter Modelle bereitstellen.
Verwenden Sie eine der folgenden Methoden, um ein Modell bereitzustellen:
Google Cloud Console
Rufen Sie in der Google Cloud Console im Abschnitt "Vertex AI" die Seite Modelle auf.
Klicken Sie auf den Namen des Modells, das Sie bereitstellen möchten, um die Detailseite zu öffnen.
Wählen Sie den Tab Deploy & Test (Bereitstellen und testen) aus.
Wenn Ihr Modell bereits für Endpunkte bereitgestellt ist, werden diese im Abschnitt Modell bereitstellen aufgeführt.
Klicken Sie auf In Endpunkt bereitstellen.
Konfigurieren Sie auf der Seite Endpunkt definieren Folgendes:
Sie können Ihr Modell auf einem neuen oder vorhandenen Endpunkt bereitstellen.
- Wählen Sie Neuen Endpunkt erstellen aus und geben Sie einen Namen für den neuen Endpunkt an, um Ihr Modell auf einem neuen Endpunkt bereitzustellen.
- Zum Bereitstellen des Modells auf einem vorhandenen Endpunkt wählen Sie Zu vorhandenem Endpunkt hinzufügen und anschließend den Endpunkt aus der Drop-down-Liste aus.
- Sie können einem Endpunkt mehrere Modelle hinzufügen und ein Modell mehreren Endpunkten hinzufügen. Weitere Informationen
Klicken Sie auf Weiter.
Konfigurieren Sie auf der Seite Modelleinstellungen Folgendes:
-
Wenn Sie das Modell auf einem neuen Endpunkt bereitstellen, akzeptieren Sie für die Trafficaufteilung 100. Wenn Sie das Modell auf einem vorhandenen Endpunkt bereitstellen, auf dem ein oder mehrere Modelle bereitgestellt werden, müssen Sie den Prozentsatz für die Trafficaufteilung für das bereitzustellende Modell und die bereits bereitgestellten Modelle aktualisieren, sodass alle Prozentwerte zusammengenommen 100 % ergeben.
-
Geben Sie die Mindestanzahl von Computing-Knoten ein, die Sie für das Modell bereitstellen möchten.
Dies ist die Anzahl der Knoten, die für dieses Modell verfügbar sind. Unabhängig davon, ob die Vorhersagelast oder ein Standby-Knoten verarbeitet wird, werden Ihnen die Kosten für die verwendeten Knoten in Rechnung gestellt – auch ohne Vorhersagetraffic. Weitere Informationen finden Sie auf der Seite "Preise".
-
Wählen Sie den Maschinentyp aus.
Größere Maschinenressourcen erhöhen die Vorhersageleistung und erhöhen die Kosten.
-
Klicken Sie auf Weiter.
-
Klicken Sie auf der Seite Modellmonitoring auf Weiter.
Konfigurieren Sie auf der Seite Monitoringziele Folgendes:
- Geben Sie den Speicherort Ihrer Trainingsdaten ein.
- Geben Sie den Namen der Zielspalte ein.
Klicken Sie auf Deploy, um Ihr Modell auf dem Endpunkt bereitzustellen.
API
Wenn Sie ein Modell mit der Vertex AI API bereitstellen, führen Sie die folgenden Schritte aus:
- Erstellen Sie bei Bedarf einen Endpunkt.
- Rufen Sie die Endpunkt-ID ab.
- Stellen Sie das Modell für den Endpunkt bereit.
Endpunkt erstellen
Wenn Sie ein Modell auf einem vorhandenen Endpunkt bereitstellen, können Sie diesen Schritt überspringen.
gcloud
Das folgende Beispiel verwendet den Befehl gcloud ai endpoints create
:
gcloud ai endpoints create \
--region=LOCATION \
--display-name=ENDPOINT_NAME
Dabei gilt:
- LOCATION_ID: Die Region, in der Sie Vertex AI verwenden.
ENDPOINT_NAME: Der Anzeigename für den Endpunkt.
Es kann einige Sekunden dauern, bis das Google Cloud CLI den Endpunkt erstellt.
REST
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- LOCATION_ID: Ihre Region.
- PROJECT_ID: Ihre Projekt-ID.
- ENDPOINT_NAME: Der Anzeigename für den Endpunkt.
HTTP-Methode und URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/endpoints
JSON-Text anfordern:
{ "display_name": "ENDPOINT_NAME" }
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten in etwa folgende JSON-Antwort erhalten:
{ "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
angegeben wird.
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.
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.
Endpunkt-ID abrufen
Sie benötigen die Endpunkt-ID, um das Modell bereitzustellen.
gcloud
Das folgende Beispiel verwendet den Befehl gcloud ai endpoints list
:
gcloud ai endpoints list \
--region=LOCATION \
--filter=display_name=ENDPOINT_NAME
Dabei gilt:
- LOCATION_ID: Die Region, in der Sie Vertex AI verwenden.
ENDPOINT_NAME: Der Anzeigename für den Endpunkt.
Notieren Sie sich die Zahl, die in der Spalte
ENDPOINT_ID
angezeigt wird. Verwenden Sie diese ID im folgenden Schritt.
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_NAME: Der Anzeigename für den Endpunkt.
HTTP-Methode und URL:
GET https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/endpoints?filter=display_name=ENDPOINT_NAME
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten in etwa folgende JSON-Antwort erhalten:
{ "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" } ] }
Modell bereitstellen
Wählen Sie unten den Tab für Ihre Sprache oder Umgebung aus:
gcloud
In den folgenden Beispielen wird der Befehl gcloud ai endpoints deploy-model
verwendet.
Im folgenden Beispiel wird ein Model
in einem Endpoint
bereitgestellt, ohne GPUs zu verwenden, um die Vorhersagebereitstellung zu beschleunigen, ohne den Traffic auf mehrere DeployedModel
-Ressourcen aufzuteilen:
Ersetzen Sie folgende Werte, bevor sie einen der Befehlsdaten verwenden:
- ENDPOINT_ID: Die ID des Endpunkts.
- LOCATION_ID: Die Region, in der Sie Vertex AI verwenden.
- MODEL_ID: Die ID des bereitzustellenden Modells.
-
DEPLOYED_MODEL_NAME: Ein Name für
DeployedModel
. Sie können auch den Anzeigenamen vonModel
fürDeployedModel
verwenden. -
MACHINE_TYPE: Optional. Die für jeden Knoten dieser Bereitstellung verwendeten Maschinenressourcen. Die Standardeinstellung ist
n1-standard-2
. Weitere Informationen zu Maschinentypen. -
MIN_REPLICA_COUNT: Die minimale Anzahl von Knoten für diese Bereitstellung.
Die Knotenzahl kann je nach der Vorhersagelast erhöht oder verringert werden, bis zur maximalen Anzahl von Knoten und niemals auf weniger als diese Anzahl von Knoten.
Dieser Wert muss größer oder gleich 1 sein. Wenn das Flag
--min-replica-count
weggelassen wird, wird der Wert standardmäßig auf 1 gesetzt. -
MAX_REPLICA_COUNT: Die maximale Anzahl von Knoten für diese Bereitstellung.
Die Knotenzahl kann je nach der Vorhersagelast erhöht oder verringert werden, bis zu dieser Anzahl von Knoten und niemals auf weniger als die minimale Anzahl von Knoten.
Wenn Sie das Flag
--max-replica-count
weglassen, wird die maximale Anzahl von Knoten auf den Wert von--min-replica-count
festgelegt.
Führen Sie den Befehl gcloud ai endpoints deploy-model aus:
Linux, macOS oder Cloud Shell
gcloud ai endpoints deploy-model ENDPOINT_ID\ --region=LOCATION_ID \ --model=MODEL_ID \ --display-name=DEPLOYED_MODEL_NAME \ --machine-type=MACHINE_TYPE \ --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 ` --machine-type=MACHINE_TYPE ` --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 ^ --machine-type=MACHINE_TYPE ^ --min-replica-count=MIN_REPLICA_COUNT ^ --max-replica-count=MAX_REPLICA_COUNT ^ --traffic-split=0=100
Traffic aufteilen
Das Flag --traffic-split=0=100
in den vorherigen Beispielen sendet 100 % des Vorhersagetraffics, den der Endpoint
empfängt, an das neue DeployedModel
, das durch die temporäre ID 0
dargestellt wird. Wenn Ihr Endpoint
bereits andere DeployedModel
-Ressourcen hat, können Sie den Traffic zwischen dem neuen DeployedModel
und den alten aufteilen.
Um z. B. 20 % des Traffics an das neue DeployedModel
und 80% an ein älteres zu senden, führen Sie den folgenden Befehl aus:
Ersetzen Sie folgende Werte, bevor sie einen der Befehlsdaten verwenden:
- OLD_DEPLOYED_MODEL_ID: die ID des vorhandenen
DeployedModel
.
Führen Sie den Befehl gcloud ai endpoints deploy-model aus:
Linux, macOS oder Cloud Shell
gcloud ai endpoints deploy-model ENDPOINT_ID\ --region=LOCATION_ID \ --model=MODEL_ID \ --display-name=DEPLOYED_MODEL_NAME \ --machine-type=MACHINE_TYPE \ --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 \ --machine-type=MACHINE_TYPE ` --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 \ --machine-type=MACHINE_TYPE ^ --min-replica-count=MIN_REPLICA_COUNT ^ --max-replica-count=MAX_REPLICA_COUNT ^ --traffic-split=0=20,OLD_DEPLOYED_MODEL_ID=80
REST
Mit der Methode endpoints.predict können Sie eine Onlinevorhersage anfordern.
Modell bereitstellen
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.
- MODEL_ID: Die ID des bereitzustellenden Modells.
-
DEPLOYED_MODEL_NAME: Ein Name für
DeployedModel
. Sie können auch den Anzeigenamen vonModel
fürDeployedModel
verwenden. -
MACHINE_TYPE: Optional. Die für jeden Knoten dieser Bereitstellung verwendeten Maschinenressourcen. Die Standardeinstellung ist
n1-standard-2
. Weitere Informationen zu Maschinentypen. - ACCELERATOR_TYPE: Der Typ des Beschleunigers, der an die Maschine angehängt werden soll. Optional, wenn ACCELERATOR_COUNT nicht angegeben oder null ist. Nicht empfohlen für AutoML-Modelle oder benutzerdefinierte Modelle, die keine GPU-Images verwenden. Weitere Informationen
- ACCELERATOR_COUNT: Die Anzahl der Beschleuniger, die für jedes Replikat verwendet werden soll. Optional. Sollte für AutoML-Modelle oder benutzerdefiniert trainierte Modelle, die keine GPU-Images verwenden, null oder nicht angegeben sein.
- MIN_REPLICA_COUNT: Die minimale Anzahl von Knoten für diese Bereitstellung. Die Knotenzahl kann je nach der Vorhersagelast erhöht oder verringert werden, bis zur maximalen Anzahl von Knoten und niemals auf weniger als diese Anzahl von Knoten. Dieser Wert muss größer oder gleich 1 sein.
- MAX_REPLICA_COUNT: Die maximale Anzahl von Knoten für diese Bereitstellung. Die Knotenzahl kann je nach der Vorhersagelast erhöht oder verringert werden, bis zu dieser Anzahl von Knoten und niemals auf weniger als die minimale Anzahl von Knoten.
- TRAFFIC_SPLIT_THIS_MODEL: Der Prozentsatz des Vorhersagetraffics an diesen Endpunkt, der an das Modell mit diesem Vorgang weitergeleitet werden soll. Die Standardeinstellung ist 100. Alle Traffic-Prozentsätze müssen zusammen 100 % ergeben. Weitere Informationen zu Traffic-Splits
- DEPLOYED_MODEL_ID_N: Optional. Wenn andere Modelle für diesen Endpunkt bereitgestellt werden, müssen Sie die Prozentsätze der Trafficaufteilung aktualisieren, sodass alle Prozentsätze zusammen 100 % ergeben.
- TRAFFIC_SPLIT_MODEL_N: Der Prozentwert der Trafficaufteilung für den bereitgestellten Modell-ID-Schlüssel.
- 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/endpoints/ENDPOINT_ID:deployModel
JSON-Text anfordern:
{ "deployedModel": { "model": "projects/PROJECT/locations/us-central1/models/MODEL_ID", "displayName": "DEPLOYED_MODEL_NAME", "dedicatedResources": { "machineSpec": { "machineType": "MACHINE_TYPE", "acceleratorType": "ACCELERATOR_TYPE", "acceleratorCount": "ACCELERATOR_COUNT" }, "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 }, }
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten in etwa folgende JSON-Antwort erhalten:
{ "name": "projects/PROJECT_ID/locations/LOCATION/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
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 Referenzdokumentation zur Python API.
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.
Standardeinstellungen für das Vorhersage-Logging ändern
Vorgangsstatus abrufen
Einige Anfragen starten lang andauernde Vorgänge, die viel Zeit in Anspruch nehmen. Diese Anfragen geben einen Vorgangsnamen zurück, mit dem Sie den Status des Vorgangs aufrufen oder den Vorgang abbrechen können. Vertex AI stellt Hilfsmethoden bereit, um Aufrufe für Vorgänge mit langer Laufzeit auszuführen. Weitere Informationen finden Sie unter Mit lang andauernden Vorgängen arbeiten.
Mit dem bereitgestellten Modell eine Onlinevorhersage erhalten
Um eine Onlinevorhersage zu erstellen, senden Sie ein oder mehrere Testelemente zur Analyse an ein Modell. Das Modell gibt dann Ergebnisse zurück, die auf den Zielen des Modells basieren. Verwenden Sie die Google Cloud Console oder die Vertex AI API, um eine Onlinevorhersage anzufordern.
Google Cloud Console
Rufen Sie in der Google Cloud Console im Abschnitt "Vertex AI" die Seite Modelle auf.
Klicken Sie in der Liste der Modelle auf den Namen des Modells, von dem Sie Vorhersagen anfordern möchten.
Wählen Sie den Tab Bereitstellen und Testen aus.
Fügen Sie im Abschnitt Modell testen Testelemente hinzu, um eine Vorhersage anzufordern. Die Basisvorhersagedaten sind bereits ausgefüllt. Sie können auch Ihre eigenen Vorhersagedaten eingeben und auf Vorhersagen klicken.
Nach Abschluss der Vorhersage gibt Vertex AI die Ergebnisse in der Konsole zurück.
API: Klassifizierung
gcloud
-
Erstellen Sie eine Datei mit dem Namen
request.json
und mit folgendem Inhalt:{ "instances": [ { PREDICTION_DATA_ROW } ] }
Dabei gilt:
-
PREDICTION_DATA_ROW: Ein JSON-Objekt mit Schlüsseln als Merkmalsnamen und Werten als entsprechende Merkmalswerte. Ein Beispiel: Bei einem Dataset mit einer Zahl, einem Array von Strings und einer Kategorie kann die Datenzeile wie in der folgenden Beispielanfrage aussehen:
"length":3.6, "material":"cotton", "tag_array": ["abc","def"]
Für jedes im Training enthaltene Merkmal muss ein Wert angegeben werden. Das Format der für die Vorhersage verwendeten Daten muss mit dem Format für das Training übereinstimmen. Weitere Informationen finden Sie unter Datenformat für Vorhersagen.
-
-
Führen Sie dazu diesen Befehl aus:
gcloud ai endpoints predict ENDPOINT_ID \ --region=LOCATION_ID \ --json-request=request.json
Dabei gilt:
- ENDPOINT_ID: Die ID des Endpunkts.
- LOCATION_ID: Die Region, in der Sie Vertex AI verwenden.
REST
Mit der Methode endpoints.predict können Sie eine Onlinevorhersage anfordern.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
-
LOCATION_ID: Die Region, in der sich der Endpunkt befindet. Beispiel:
us-central1
. - PROJECT_ID: Ihre Projekt-ID.
- ENDPOINT_ID: Die ID des Endpunkts.
-
PREDICTION_DATA_ROW: Ein JSON-Objekt mit Schlüsseln als Merkmalsnamen und Werten als entsprechende Merkmalswerte. Ein Beispiel: Bei einem Dataset mit einer Zahl, einem Array von Strings und einer Kategorie kann die Datenzeile wie in der folgenden Beispielanfrage aussehen:
"length":3.6, "material":"cotton", "tag_array": ["abc","def"]
Für jedes im Training enthaltene Merkmal muss ein Wert angegeben werden. Das Format der für die Vorhersage verwendeten Daten muss mit dem Format für das Training übereinstimmen. Weitere Informationen finden Sie unter Datenformat für Vorhersagen.
- DEPLOYED_MODEL_ID: Ausgabe durch die Methode
predict
und als Eingabe durch die Methodeexplain
akzeptiert. Die ID des Modells, das zum Generieren der Vorhersage verwendet wird. Wenn Sie Erläuterungen zu einer zuvor angeforderten Vorhersage erhalten möchten und Sie mehr als ein Modell bereitgestellt haben, können Sie mit dieser ID festlegen, dass die Erläuterungen für das Modell zurückgegeben werden, aus dem die vorherige Vorhersage erstellt wurde.
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": [ { PREDICTION_DATA_ROW } ] }
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
Sie sollten in etwa folgende JSON-Antwort erhalten:
{ "predictions": [ { "scores": [ 0.96771615743637085, 0.032283786684274673 ], "classes": [ "0", "1" ] } ] "deployedModelId": "2429510197" }
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.
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.
API: Regression
gcloud
-
Erstellen Sie eine Datei namens request.json mit folgenden Inhalten:
{ "instances": [ { PREDICTION_DATA_ROW } ] }
Dabei gilt:
-
PREDICTION_DATA_ROW: Ein JSON-Objekt mit Schlüsseln als Merkmalsnamen und Werten als entsprechende Merkmalswerte. Ein Beispiel: Bei einem Dataset mit einer Zahl, einem Array von Zahlen und einer Kategorie kann die Datenzeile wie in der folgenden Beispielanfrage aussehen:
"age":3.6, "sq_ft":5392, "code": "90331"
Für jedes im Training enthaltene Merkmal muss ein Wert angegeben werden. Das Format der für die Vorhersage verwendeten Daten muss mit dem Format für das Training übereinstimmen. Weitere Informationen finden Sie unter Datenformat für Vorhersagen.
-
-
Führen Sie dazu diesen Befehl aus:
gcloud ai endpoints predict ENDPOINT_ID \ --region=LOCATION_ID \ --json-request=request.json
Dabei gilt:
- ENDPOINT_ID: Die ID des Endpunkts.
- LOCATION_ID: Die Region, in der Sie Vertex AI verwenden.
REST
Mit der Methode endpoints.predict können Sie eine Onlinevorhersage anfordern.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
-
LOCATION_ID: Die Region, in der sich der Endpunkt befindet. Beispiel:
us-central1
. - PROJECT_ID: Ihre Projekt-ID.
- ENDPOINT_ID: Die ID des Endpunkts.
-
PREDICTION_DATA_ROW: Ein JSON-Objekt mit Schlüsseln als Merkmalsnamen und Werten als entsprechende Merkmalswerte. Ein Beispiel: Bei einem Dataset mit einer Zahl, einem Array von Zahlen und einer Kategorie kann die Datenzeile wie in der folgenden Beispielanfrage aussehen:
"age":3.6, "sq_ft":5392, "code": "90331"
Für jedes im Training enthaltene Merkmal muss ein Wert angegeben werden. Das Format der für die Vorhersage verwendeten Daten muss mit dem Format für das Training übereinstimmen. Weitere Informationen finden Sie unter Datenformat für Vorhersagen.
- DEPLOYED_MODEL_ID: Ausgabe durch die Methode
predict
und als Eingabe durch die Methodeexplain
akzeptiert. Die ID des Modells, das zum Generieren der Vorhersage verwendet wird. Wenn Sie Erläuterungen zu einer zuvor angeforderten Vorhersage erhalten möchten und Sie mehr als ein Modell bereitgestellt haben, können Sie mit dieser ID festlegen, dass die Erläuterungen für das Modell zurückgegeben werden, aus dem die vorherige Vorhersage erstellt wurde.
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": [ { PREDICTION_DATA_ROW } ] }
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
Sie sollten in etwa folgende JSON-Antwort erhalten:
{ "predictions": [ [ { "value": 65.14233, "lower_bound": 4.6572, "upper_bound": 164.0279 } ] ], "deployedModelId": "DEPLOYED_MODEL_ID" }
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.
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.
Vorhersageergebnisse interpretieren
Klassifizierung
Klassifizierungsmodelle geben einen Konfidenzwert zurück.
Der Konfidenzwert gibt an, wie stark Ihr Modell die einzelnen Klassen oder Labels mit einem Testelement verknüpft. Je höher die Zahl, desto höher die Konfidenz des Modells, dass das Label auf dieses Element angewendet werden sollte. Sie entscheiden, wie hoch der Konfidenzwert für die Annahme der Ergebnisse des Modells sein muss.
Regression
Regressionsmodelle geben einen Vorhersagewert zurück. Für BigQuery-Ziele geben sie auch ein Vorhersageintervall zurück. Das Vorhersageintervall bietet einen Wertebereich, bei dem das Modell eine Konfidenz von 95 % hat, dass er das tatsächliche Ergebnis enthält.
Mit dem bereitgestellten Modell eine Online-Erläuterung erhalten
Sie können eine Vorhersage mit Erläuterungen anfordern, die auch als Featureattribute bezeichnet werden, um zu sehen, wie Ihr Modell zu einer Vorhersage gelangt ist. Die Werte der lokalen Merkmalwichtigkeit geben an, wie viel jedes Feature zum Vorhersageergebnis beigetragen hat. Feature-Attributionen sind in Vertex AI-Vorhersagen über Vertex Explainable AI enthalten.
Console
Wenn Sie mit der Google Cloud Console eine Onlinevorhersage anfordern, werden die Werte für die lokale Merkmalwichtigkeit automatisch zurückgegeben.
Wenn Sie die vorausgefüllten Vorhersagewerte verwendet haben, sind die lokalen Merkmalwichtigkeitswerte null. Dies liegt daran, dass die voreingestellten Werte die Basisvorhersagedaten sind. Die zurückgegebene Vorhersage ist also der Basisvorhersagewert.
gcloud
Erstellen Sie eine Datei mit dem Namen
request.json
und mit folgendem Inhalt:{ "instances": [ { PREDICTION_DATA_ROW } ] }
Dabei gilt:
-
PREDICTION_DATA_ROW: Ein JSON-Objekt mit Schlüsseln als Merkmalsnamen und Werten als entsprechende Merkmalswerte. Ein Beispiel: Bei einem Dataset mit einer Zahl, einem Array von Strings und einer Kategorie kann die Datenzeile wie in der folgenden Beispielanfrage aussehen:
"length":3.6, "material":"cotton", "tag_array": ["abc","def"]
Für jedes im Training enthaltene Merkmal muss ein Wert angegeben werden. Das Format der für die Vorhersage verwendeten Daten muss mit dem Format für das Training übereinstimmen. Weitere Informationen finden Sie unter Datenformat für Vorhersagen.
-
Führen Sie dazu diesen Befehl aus:
gcloud ai endpoints explain ENDPOINT_ID \ --region=LOCATION_ID \ --json-request=request.json
Dabei gilt:
- 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
Das folgende Beispiel zeigt eine Anfrage für eine Onlinevorhersage für ein tabellarisches Klassifizierungsmodell mit lokalen Feature-Attributionen. Das Anfrageformat ist das gleiche wie für Regressionsmodelle.
Ersetzen Sie dabei folgende Werte für die Anfragedaten:
-
LOCATION: Die Region, in der sich der Endpunkt befindet. Beispiel:
us-central1
. - PROJECT: Ihre Projekt-ID.
- ENDPOINT_ID: Die ID des Endpunkts.
-
PREDICTION_DATA_ROW: Ein JSON-Objekt mit Schlüsseln als Merkmalsnamen und Werten als entsprechende Merkmalswerte. Ein Beispiel: Bei einem Dataset mit einer Zahl, einem Array von Strings und einer Kategorie kann die Datenzeile wie in der folgenden Beispielanfrage aussehen:
"length":3.6, "material":"cotton", "tag_array": ["abc","def"]
Für jedes im Training enthaltene Merkmal muss ein Wert angegeben werden. Das Format der für die Vorhersage verwendeten Daten muss mit dem Format für das Training übereinstimmen. Weitere Informationen finden Sie unter Datenformat für Vorhersagen.
-
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.
HTTP-Methode und URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/endpoints/ENDPOINT_ID:explain
JSON-Text der Anfrage:
{ "instances": [ { PREDICTION_DATA_ROW } ], "deployedModelId": "DEPLOYED_MODEL_ID" }
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-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/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-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/endpoints/ENDPOINT_ID:explain" | Select-Object -Expand Content
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.
Erläuterungen für eine zuvor zurückgegebene Vorhersage abrufen
Da Erläuterungen die Ressourcennutzung erhöhen, ist es unter Umständen sinnvoll, Erläuterungen erst anzufordern, wenn Sie diese benötigen. Manchmal kann es hilfreich sein, Erläuterungen für ein Vorhersageergebnis anzufordern, das Sie bereits erhalten haben, etwa weil die Vorhersage ein Ausreißer oder nicht sinnvoll war.
Wenn alle Ihre Vorhersagen aus einem Modell stammen, können Sie die Anfragedaten einfach noch einmal senden, um dabei Erläuterungen anzufordern. Wenn aber mehrere Modelle die Vorhersagen zurückgeben, müssen Sie die Erläuterungsanfrage an das richtige Modell senden. Sie können dazu Erläuterungen für ein bestimmtes Modell aufrufen. Dazu nehmen Sie in Ihre Anfrage die ID deployedModelID
des bereitgestellten Modells auf, die in der Antwort auf die ursprüngliche Vorhersageanfrage enthalten ist.
Beachten Sie, dass sich die bereitgestellte Modell-ID von der Modell-ID unterscheidet.
Erläuterungsergebnisse interpretieren
Zur Berechnung der lokalen Featurewichtigkeit wird zuerst der Baseline-Vorhersagewert berechnet. Die Basiswerte werden aus den Trainingsdaten berechnet, wobei der Medianwert für numerische Features und der Modus für kategoriale Features verwendet werden. Die aus den Basiswerten generierte Vorhersage ist der Basis-Vorhersagewert. Baselinewerte werden für ein Modell einmal berechnet und bleiben unverändert.
Bei einer bestimmten Vorhersage zeigt Ihnen die lokale Featurewichtigkeit für jedes Feature an, wie viel dieses Feature im Vergleich zum Baseline-Vorhersagewert zum Ergebnis hinzugefügt oder davon abgezogen hat. Die Summe aller Featurewichtigkeitswerte entspricht der Differenz zwischen dem Baseline-Vorhersagewert und dem Vorhersageergebnis.
Bei Klassifizierungsmodellen liegt die Punktzahl immer zwischen 0,0 und 1,0 (einschließlich). Daher liegen die lokalen Featurewichtigkeitswerte für Klassifizierungsmodelle immer zwischen -1.0 und 1.0 (einschließlich).
Beispiele für Feature-Attributionsabfragen und weitere Informationen finden Sie unter Featureattributionen für Klassifizierung und Regression.Beispielausgabe für Vorhersagen und Erläuterungen
Klassifizierung
Die Rückgabenutzlast für eine Onlinevorhersage aus einem tabellarischen Klassifizierungsmodell mit Featurewichtigkeit sieht etwa wie im folgenden Beispiel aus.
Der instanceOutputValue
von 0.928652400970459
ist der Konfidenzwert der Klasse mit der höchsten Punktzahl, in diesem Fall class_a
. Das Feld baselineOutputValue
enthält den Baseline-Vorhersagewert, 0.808652400970459
. Das Feature, das am meisten zu diesem Ergebnis beigetragen hat, war feature_3
.
{
"predictions": [
{
"scores": [
0.928652400970459,
0.071347599029541
],
"classes": [
"class_a",
"class_b"
]
}
]
"explanations": [
{
"attributions": [
{
"baselineOutputValue": 0.808652400970459,
"instanceOutputValue": 0.928652400970459,
"approximationError": 0.0058915703929231,
"featureAttributions": {
"feature_1": 0.012394922231235,
"feature_2": 0.050212341234556,
"feature_3": 0.057392736534209,
},
"outputIndex": [
0
],
"outputName": "scores"
}
],
}
]
"deployedModelId": "234567"
}
Regression
Die Rückgabenutzlast für eine Onlinevorhersage mit Featurewichtigkeit aus einem tabellarischen Regressionsmodell sieht etwa wie im folgenden Beispiel aus.
Der instanceOutputValue
von 1795.1246466281819
ist der vorhergesagte Wert, wobei die Felder lower_bound
und upper_bound
das Konfidenzintervall von 95 % bieten.
Das Feld baselineOutputValue
enthält den Baseline-Vorhersagewert, 1788.7423095703125
. Das Feature, das am meisten zu diesem Ergebnis beigetragen hat, war feature_3
.
{
"predictions": [
{
"value": 1795.1246466281819,
"lower_bound": 246.32196807861328,
"upper_bound": 8677.51904296875
}
]
"explanations": [
{
"attributions": [
{
"baselineOutputValue": 1788.7423095703125,
"instanceOutputValue": 1795.1246466281819,
"approximationError": 0.0038215703911553,
"featureAttributions": {
"feature_1": 0.123949222312359,
"feature_2": 0.802123412345569,
"feature_3": 5.456264423211472,
},
"outputIndex": [
-1
]
}
]
}
],
"deployedModelId": "345678"
}