Auf dieser Seite wird beschrieben, wie Sie Batchvorhersagen mit BigQuery abrufen.
1. Eingaben vorbereiten
BigQuery-Speichereingabe
- Ihr Dienstkonto muss die entsprechenden BigQuery-Berechtigungen haben. Verwenden Sie den Befehl
gcloud iam service-accounts add-iam-policy-binding
, um dem Dienstkonto die Rolle BigQuery-Nutzer zuzuweisen:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT_ID@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/bigquery.user"
Ersetzen Sie die folgenden Werte:
* <var>PROJECT_ID</var>: The project that your service account was
created in.
* <var>SERVICE_ACCOUNT_ID</var>: The ID for the service account.
- Eine
request
-Spalte ist erforderlich und muss gültiges JSON enthalten. Diese JSON-Daten stellen Ihre Eingabe für das Modell dar. - Der Inhalt in der Spalte
request
muss mit der Struktur einerGenerateContentRequest
übereinstimmen. + Ihre Eingabetabelle kann andere Spaltendatentypen alsrequest
enthalten. Diese Spalten können BigQuery-Datentypen haben, mit Ausnahme der folgenden: „array“, „struct“, „range“, „datetime“ und „geography“. Diese Spalten werden bei der Inhaltserstellung ignoriert, sind aber in der Ausgabetabelle enthalten.
Beispieleingabe (JSON) |
---|
|
2. Batchjob senden
Sie können einen Batchjob über die Google Cloud Console, das Google Gen AI SDK oder die REST API erstellen.
Der Job und die Tabelle müssen sich in derselben Region befinden.
Console
- Rufen Sie in der Google Cloud Console im Bereich „Vertex AI“ die Seite Batch Inference auf.
- Klicken Sie auf Erstellen.
REST
Verwenden Sie zum Erstellen eines Batchvorhersagejobs die Methode projects.locations.batchPredictionJobs.create
.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- LOCATION: Eine Region, die Gemini-Modelle unterstützt.
- PROJECT_ID: Ihre Projekt-ID.
- MODEL_PATH: der Name des Publisher-Modells, z. B.
publishers/google/models/gemini-2.0-flash-001
, oder der Name des optimierten Endpunkts, z. B.projects/PROJECT_ID/locations/LOCATION/models/MODEL_ID
, wobei MODEL_ID die Modell-ID des optimierten Modells ist. - INPUT_URI: Die BigQuery-Tabelle, in der sich die Eingabe für die Batchvorhersage befindet, z. B.
bq://myproject.mydataset.input_table
. Das Dataset muss sich in derselben Region wie der Batchvorhersagejob befinden. Datasets mit mehreren Regionen werden nicht unterstützt. - OUTPUT_FORMAT: Wenn Sie die Ausgabe in einer BigQuery-Tabelle speichern möchten, geben Sie
bigquery
an. Geben Siejsonl
an, um die Ausgabe in einen Cloud Storage-Bucket zu schreiben. - DESTINATION: Geben Sie für BigQuery
bigqueryDestination
an. Geben Sie für Cloud StoragegcsDestination
an. - OUTPUT_URI_FIELD_NAME:
Geben Sie für BigQuery
outputUri
an. Geben Sie für Cloud StorageoutputUriPrefix
an. - OUTPUT_URI: Geben Sie für BigQuery den Tabellenspeicherort an, z. B.
bq://myproject.mydataset.output_result
. Die Region des BigQuery-Ausgabe-Datasets muss mit der des Vertex AI-Batchvorhersagejobs übereinstimmen. Geben Sie für Cloud Storage den Bucket- und Verzeichnispfad an, z. B.gs://mybucket/path/to/output
.
HTTP-Methode und URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/batchPredictionJobs
JSON-Text der Anfrage:
{ "displayName": "my-bigquery-batch-prediction-job", "model": "MODEL_PATH", "inputConfig": { "instancesFormat": "bigquery", "bigquerySource":{ "inputUri" : "INPUT_URI" } }, "outputConfig": { "predictionsFormat": "OUTPUT_FORMAT", "DESTINATION": { "OUTPUT_URI_FIELD_NAME": "OUTPUT_URI" } } }
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_ID/locations/LOCATION/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-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/batchPredictionJobs" | Select-Object -Expand Content
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
Die Antwort enthält eine eindeutige Kennung für den Batchjob. Sie können den Status des Batch-Jobs mit BATCH_JOB_ID abfragen. Weitere Informationen finden Sie unter Jobstatus überwachen. Hinweis: Benutzerdefiniertes Dienstkonto, Live-Fortschritts-, CMEK- und VPCSC-Berichte werden nicht unterstützt.Python
Installieren
pip install --upgrade google-genai
Weitere Informationen finden Sie in der SDK-Referenzdokumentation.
Umgebungsvariablen für die Verwendung des Gen AI SDK mit Vertex AI festlegen:
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=global export GOOGLE_GENAI_USE_VERTEXAI=True
3. Jobstatus und ‑fortschritt überwachen
Nachdem der Job gesendet wurde, können Sie den Status Ihres Batchjobs über die API, das SDK und die Cloud Console prüfen.
Console
- Rufen Sie die Seite Batch-Inferenz auf.
- Wählen Sie Ihren Batchjob aus, um den Fortschritt zu überwachen.
REST
Verwenden Sie die Methode projects.locations.batchPredictionJobs.get
, um einen Batchvorhersagejob zu überwachen, und sehen Sie sich das Feld CompletionStats
in der Antwort an.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- LOCATION: Eine Region, die Gemini-Modelle unterstützt.
- PROJECT_ID: .
- BATCH_JOB_ID: Ihre Batchjob-ID.
HTTP-Methode und URL:
GET https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/batchPredictionJobs/BATCH_JOB_ID
Senden Sie die Anfrage mithilfe einer der folgenden Optionen:
curl
Führen Sie folgenden Befehl aus:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/batchPredictionJobs/BATCH_JOB_ID"
PowerShell
Führen Sie diesen Befehl aus:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/batchPredictionJobs/BATCH_JOB_ID" | Select-Object -Expand Content
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
Python
Installieren
pip install --upgrade google-genai
Weitere Informationen finden Sie in der SDK-Referenzdokumentation.
Umgebungsvariablen für die Verwendung des Gen AI SDK mit Vertex AI festlegen:
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=global export GOOGLE_GENAI_USE_VERTEXAI=True
Der Status eines bestimmten Batchjobs kann einer der folgenden sein:
JOB_STATE_PENDING
: Warteschlange für die Kapazität. Der Job kann bis zu 72 Stunden lang den Statusqueue
haben, bevor er den Statusrunning
erreicht.JOB_STATE_RUNNING
: Die Eingabedatei wurde erfolgreich validiert und der Batch wird gerade ausgeführt.JOB_STATE_SUCCEEDED
: Der Batch wurde abgeschlossen und die Ergebnisse sind verfügbar.JOB_STATE_FAILED
: Die Eingabedatei hat die Validierung nicht bestanden oder konnte nicht innerhalb von 24 Stunden nach dem Eintreten des StatusRUNNING
abgeschlossen werden.JOB_STATE_CANCELLING
: Der Batch wird abgebrochen.JOB_STATE_CANCELLED
: Der Batch wurde abgebrochen.
4. Batchausgabe abrufen
Wenn eine Batchvorhersage abgeschlossen ist, wird die Ausgabe in der BigQuery-Tabelle gespeichert, die Sie in der Anfrage angegeben haben.
Bei erfolgreichen Zeilen werden die Modellantworten in der Spalte response
gespeichert.
Andernfalls werden Fehlerdetails zur weiteren Überprüfung in der Spalte status
gespeichert.
Ausgabebeispiel
Erfolgreiches Beispiel
{
"candidates": [
{
"content": {
"role": "model",
"parts": [
{
"text": "In a medium bowl, whisk together the flour, baking soda, baking powder."
}
]
},
"finishReason": "STOP",
"safetyRatings": [
{
"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT",
"probability": "NEGLIGIBLE",
"probabilityScore": 0.14057204,
"severity": "HARM_SEVERITY_NEGLIGIBLE",
"severityScore": 0.14270912
}
]
}
],
"usageMetadata": {
"promptTokenCount": 8,
"candidatesTokenCount": 396,
"totalTokenCount": 404
}
}
Beispiel für Fehler
Anfrage
{"contents":[{"parts":{"text":"Explain how AI works in a few words."},"role":"tester"}]}
Antwort
Bad Request: {"error": {"code": 400, "message": "Please use a valid role: user, model.", "status": "INVALID_ARGUMENT"}}