Unterschied zwischen Online- und Batchvorhersagen
Onlinevorhersagen sind synchrone Anfragen an einen Modellendpunkt. Verwenden Sie Onlinevorhersagen, wenn Sie Anfragen als Reaktion auf Anwendungseingaben stellen oder wenn zeitnahe Inferenzen erforderlich sind.
Batchvorhersagen sind asynchrone Anfragen. Sie können Batchvorhersagen direkt von der Modellressource anfordern, ohne das Modell auf einem Endpunkt bereitstellen zu müssen. Verwenden Sie für tabellarische Daten Batchvorhersagen, wenn Sie nicht sofort eine Antwort benötigen und akkumulierte Daten in einer einzigen Anfrage verarbeiten möchten.
Onlinevorhersagen abrufen
Modell auf einem Endpunkt bereitstellen
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.
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.
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
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.
Wählen Sie AutoML Image aus und konfigurieren Sie es so:
Wenn Sie Ihr Modell auf einem neuen Endpunkt bereitstellen, akzeptieren Sie für die Trafficaufteilung 100. Andernfalls passen Sie die Werte der Trafficaufteilung für alle Modelle auf dem Endpunkt an, sodass sie 100 ergeben.
Geben Sie die Anzahl der 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. Die Knoten werden Ihnen auch ohne Vorhersage-Traffic in Rechnung gestellt. Weitere Informationen finden Sie auf der Seite "Preise".
Nur Klassifizierungsmodelle (optional): Wählen Sie im Abschnitt Erklärbarkeitsoptionen die Option Vertex Explainable AI zu aktivieren. Akzeptieren Sie die vorhandenen Visualisierungseinstellungen oder wählen Sie neue Werte aus und klicken Sie auf Fertig.
Feature-Attributionen für dieses Modell aktivieren aus, umDas Bereitstellen von AutoML-Bildklassifizierungsmodellen mit konfiguriertem Vertex Explainable AI und das Ausführen von Vorhersagen mit Erläuterungen ist optional. Wenn Sie Vertex Explainable AI zum Zeitpunkt der Bereitstellung aktivieren, fallen je nach der Anzahl der bereitgestellten Knoten und der Bereitstellungszeit zusätzliche Kosten an. Weitere Informationen finden Sie unter Preise.
Klicken Sie für Ihr Modell auf Fertig. Wenn alle Prozentsätze für Trafficaufteilung korrekt sind, klicken Sie auf Weiter.
Die Region, in der Ihr bereitgestelltes Modell angezeigt wird. Dies muss die Region sein, in der Sie Ihr Modell erstellt haben.
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
Im folgenden Beispiel wir der Befehl gcloud ai endpoints create
verwendet:
gcloud ai endpoints create \
--region=LOCATION \
--display-name=ENDPOINT_NAME
Ersetzen Sie dabei Folgendes:
- 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 eine JSON-Antwort ähnlich wie diese 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
Im folgenden Beispiel wir der Befehl gcloud ai endpoints list
verwendet:
gcloud ai endpoints list \
--region=LOCATION \
--filter=display_name=ENDPOINT_NAME
Ersetzen Sie dabei Folgendes:
- 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 eine JSON-Antwort ähnlich wie diese 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
an einen Endpoint
bereitgestellt, 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. - 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.
-
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 \ --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 ` --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 ^ --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 \ --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 \ --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 \ --min-replica-count=MIN_REPLICA_COUNT ^ --max-replica-count=MAX_REPLICA_COUNT ^ --traffic-split=0=20,OLD_DEPLOYED_MODEL_ID=80
REST
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. - 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.
- 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_ID/locations/LOCATION_ID/models/MODEL_ID", "displayName": "DEPLOYED_MODEL_NAME", "automaticResources": { "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 eine JSON-Antwort ähnlich wie diese erhalten:
{ "name": "projects/PROJECT_ID/locations/LOCATION_ID/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.
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.
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 treffen
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. Weitere Informationen zu Vorhersageergebnissen finden Sie auf der Seite Ergebnisse interpretieren.
Console
Verwenden Sie die Google Cloud Console, um eine Onlinevorhersage anzufordern. Ihr Modell muss für einen Endpunkt bereitgestellt sein.
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.
Bei AutoML-Modellen für Bildziele müssen Sie ein Bild hochladen, um eine Vorhersage anzufordern.
Informationen über die lokale Merkmalwichtigkeit finden Sie unter Erläuterungen abrufen.
Nach Abschluss der Vorhersage gibt Vertex AI die Ergebnisse in der Konsole zurück.
API
Fordern Sie mit der Vertex AI API eine Onlinevorhersage an. Ihr Modell muss für einen Endpunkt bereitgestellt sein.
Zu den Zielen von Bilddaten zählen Klassifizierung und Objekterkennung.
Edge-Modellvorhersage: Wenn Sie AutoML-Bild-Edge-Modelle für die Vorhersage verwenden, müssen Sie jede Vorhersagedatei in einem Nicht-JPEG-Format in eine JPEG-Datei konvertieren, bevor Sie die Vorhersageanfrage senden.
gcloud
Erstellen Sie eine Datei mit dem Namen
request.json
und mit folgendem Inhalt:{ "instances": [{ "content": "CONTENT" }], "parameters": { "confidenceThreshold": THRESHOLD_VALUE, "maxPredictions": MAX_PREDICTIONS } }
Ersetzen Sie dabei Folgendes:
- CONTENT: Der base64-codierte Bildinhalt.
- THRESHOLD_VALUE (optional): Das Modell gibt nur Vorhersagen mit Konfidenzwerten entsprechend diesem Wert oder höher zurück.
- MAX_PREDICTIONS (optional): Das Modell gibt maximal diese Anzahl an Vorhersagen mit den höchsten Konfidenzwerten zurück.
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 dabei folgende Werte für die 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.
- CONTENT: Der base64-codierte Bildinhalt.
- THRESHOLD_VALUE (optional): Das Modell gibt nur Vorhersagen mit Konfidenzwerten entsprechend diesem Wert oder höher zurück.
- MAX_PREDICTIONS (optional): Das Modell gibt maximal diese Anzahl an Vorhersagen mit den höchsten Konfidenzwerten zurück.
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": [{ "content": "CONTENT" }], "parameters": { "confidenceThreshold": THRESHOLD_VALUE, "maxPredictions": MAX_PREDICTIONS } }
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 eine JSON-Antwort ähnlich wie diese erhalten:
{ "predictions": [ { "confidences": [ 0.975873291, 0.972160876, 0.879488528, 0.866532683, 0.686478078 ], "displayNames": [ "Salad", "Salad", "Tomato", "Tomato", "Salad" ], "ids": [ "7517774415476555776", "7517774415476555776", "2906088397049167872", "2906088397049167872", "7517774415476555776" ], "bboxes": [ [ 0.0869686604, 0.977020741, 0.395135701, 1 ], [ 0, 0.488701463, 0.00157663226, 0.512249 ], [ 0.361617863, 0.509664357, 0.772928834, 0.914706349 ], [ 0.310678929, 0.45781514, 0.565507233, 0.711237729 ], [ 0.584359646, 1, 0.00116168708, 0.130817384 ] ] } ], "deployedModelId": "3860570043075002368" }
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.
Batchvorhersagen abrufen
Für eine Batchvorhersage geben Sie eine Eingabequelle und einen Ausgabeort an, an dem Vertex AI Vorhersageergebnisse speichert. Batchvorhersagen für den AutoML-Bildmodelltyp erfordern eine JSON Lines-Eingabedatei und den Namen eines Cloud Storage-Buckets, um die Ausgabe zu speichern.
Anforderungen an Eingabedaten
Die Eingabe für Batchanfragen gibt die Elemente an, die zur Vorhersage an Ihr Modell gesendet werden sollen. Bei Modellobjekterkennungsmodellen können Sie eine JSON-Lines-Datei verwenden, um eine Liste von Bildern anzugeben, zu denen Vorhersagen getroffen werden sollen. Anschließend können Sie die JSON-Lines-Datei in einem Cloud Storage-Bucket speichern. Das folgende Beispiel zeigt eine einzelne Zeile in einer JSON Lines-Eingabedatei.
{"content": "gs://sourcebucket/datasets/images/source_image.jpg", "mimeType": "image/jpeg"}
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.
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, und führen Sie die folgenden 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.
- 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 Batchvorhersage 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 zum Senden von Batchvorhersageanfragen.
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 Batchjob
- MODEL_ID: Die ID des Modells, das für Vorhersagen verwendet werden soll
- THRESHOLD_VALUE (optional): Vertex AI gibt nur Vorhersagen zurück, die Konfidenzwerte mit mindestens diesem Wert haben. Der Standardwert ist
0.0
. - MAX_PREDICTIONS (optional): Vertex AI gibt maximal diese Anzahl von Vorhersagen zurück, beginnend mit den Vorhersagen mit den höchsten Konfidenzwerten. Der Standardwert ist
10
. - 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/locations/LOCATION/models/MODEL_ID", "modelParameters": { "confidenceThreshold": THRESHOLD_VALUE, "maxPredictions": MAX_PREDICTIONS }, "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/LOCATION_ID/batchPredictionJobs/BATCH_JOB_ID", "displayName": "BATCH_JOB_NAME", "model": "projects/PROJECT_ID/locations/LOCATION_ID/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.
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.
Batchvorhersageergebnisse abrufen
Vertex AI sendet eine Batchvorhersageausgabe an das angegebene Ziel.
Wenn eine Batchvorhersage abgeschlossen ist, wird die Ausgabe der Vorhersage in dem Cloud Storage-Bucket gespeichert, den Sie in der Anfrage angegeben haben.
Beispielergebnisse für Batchvorhersagen
Das folgende Beispiel zeigt die Batchvorhersage aus einem Bildobjekterkennungsmodell.
Wichtig: Begrenzungsrahmen werden so angegeben:
"bboxes": [
[xMin, xMax, yMin, yMax],
...]
xMin
und xMax
die minimalen und maximalen x-Werte und
yMin
und yMax
die minimalen und maximalen y-Werte.
{ "instance": {"content": "gs://bucket/image.jpg", "mimeType": "image/jpeg"}, "prediction": { "ids": [1, 2], "displayNames": ["cat", "dog"], "bboxes": [ [0.1, 0.2, 0.3, 0.4], [0.2, 0.3, 0.4, 0.5] ], "confidences": [0.7, 0.5] } }