Mithilfe von Batchvorhersagen können Sie effizient mehrere multimodale Prompt-Anfragen senden, die nicht latenzempfindlich sind. Im Gegensatz zur Onlinevorhersage, bei der jeweils nur eine Eingabeanfrage gleichzeitig möglich ist, können Sie eine große Anzahl multimodaler Anfragen in einer einzelnen Batchanfrage senden. Ein Workflow für eine Batchvorhersage besteht aus der Bestimmung des Ausgabespeicherorts, dem Hinzufügen Ihrer Eingabeanfragen (in JSON) und dem asynchronen Befüllen der Antworten in den Speicherort der BigQuery-Speicherausgabe.
Nachdem Sie eine Batchanfrage an ein Modell gesendet und dessen Ergebnisse überprüft haben, können Sie das Modell optimieren, um genauere Ergebnisse zu erhalten. Sie können Ihr optimiertes Modell wie gewohnt für Batchgenerierungen senden. Weitere Informationen zum Abstimmen von Modellen finden Sie in der Übersicht über die Modellabstimmung für Gemini.
Multimodale Modelle, die Batchvorhersagen unterstützen
Die folgenden multimodalen Modelle unterstützen Batchvorhersagen.
gemini-1.5-flash-001
gemini-1.5-pro-001
gemini-1.0-pro-002
gemini-1.0-pro-001
Eingaben vorbereiten
Batchanfragen für multimodale Modelle akzeptieren nur BigQuery-Speicherquellen. Weitere Informationen finden Sie unter Überblick über BigQuery-Speicher.
Details zum BigQuery-Eingabeformat
- Der Inhalt in der Anfrage-Spalte muss gültiges JSON-Format sein.
- Der Inhalt in der JSON-Anleitung muss mit der Struktur einer
GenerateContentRequest
übereinstimmen. - Informationen zu Modellen oder Endpunkten, die in der Anfrage enthalten sind, werden ignoriert.
- Sie können der Tabelle weitere Spalten hinzufügen. Hinzugefügte Spalten werden für das Generieren von Inhalten ignoriert. Nach Abschluss des Jobs werden die zusätzlichen Spalten an die Ergebnisse angehängt.
- Das System reserviert zwei Spaltennamen: Antwort und Status. Diese werden verwendet, um Informationen zum Ergebnis des Modellanfragejobs bereitzustellen.
BigQuery-Eingabebeispiel
Anfrage |
---|
{ "contents": [ { "role": "user", "parts": { "text": "Give me a recipe for banana bread." } } ], "system_instruction": { "parts": [ { "text": "You are a chef." } ] }, "generation_config": { "top_k": 5 } } |
BigQuery-Ausgabebeispiel
Anfrage | Antwort | Status |
---|---|---|
'{"content":[{...}]}' | { "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 } } |
Batchantwort anfordern
Abhängig von der Anzahl der Eingabeelemente, die Sie eingereicht haben, kann die Batchvgenerierung eine Weile dauern.
REST
Senden Sie zum Testen eines multimodalen Code-Prompts mit der Vertex AI API eine POST-Anfrage an den Endpunkt des Publisher-Modells.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID ist der Name Ihres Google Cloud-Projekts.
- BP_JOB_NAME: Name des Jobs.
- INPUT_URI: Der URI der Eingabequelle. Dies ist entweder ein BigQuery-Tabellen-URI oder ein JSONL-Datei-URI in Cloud Storage.
- OUTPUT_URI: Ausgabeziel-URI.
HTTP-Methode und URL:
POST https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/batchPredictionJobs
JSON-Text der Anfrage:
{ "name": "BP_JOB_NAME", "displayName": "BP_JOB_NAME", "model": "publishers/google/models/gemini-1.0-pro-001", "inputConfig": { "instancesFormat":"bigquery", "bigquerySource":{ "inputUri" : "INPUT_URI" } }, "outputConfig": { "predictionsFormat":"bigquery", "bigqueryDestination":{ "outputUri": "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://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/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://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/batchPredictionJobs" | Select-Object -Expand Content
Sie sollten in etwa folgende JSON-Antwort erhalten:
{ "name": "projects/{PROJECT_ID}/locations/us-central1/batchPredictionJobs/{BATCH_JOB_ID}", "displayName": "BP_sample_publisher_BQ_20230712_134650", "model": "projects/{PROJECT_ID}/locations/us-central1/models/gemini-1.0-pro-001", "inputConfig": { "instancesFormat": "bigquery", "bigquerySource": { "inputUri": "bq://sample.text_input" } }, "modelParameters": {}, "outputConfig": { "predictionsFormat": "bigquery", "bigqueryDestination": { "outputUri": "bq://sample.llm_dataset.embedding_out_BP_sample_publisher_BQ_20230712_134650" } }, "state": "JOB_STATE_PENDING", "createTime": "2023-07-12T20:46:52.148717Z", "updateTime": "2023-07-12T20:46:52.148717Z", "labels": { "owner": "sample_owner", "product": "llm" }, "modelVersionId": "1", "modelMonitoringStatus": {} }
Die Antwort enthält eine eindeutige Kennung für den Batchjob.
Sie können den Status des Batch-Jobs mit BATCH_JOB_ID abfragen, bis der Job state
den Wert JOB_STATE_SUCCEEDED
hat. Beispiel:
curl \ -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/batchPredictionJobs/BATCH_JOB_ID
Batchausgabe abrufen
Wenn eine Batchvorhersage abgeschlossen ist, wird die Ausgabe in der BigQuery-Tabelle gespeichert, die Sie in der Anfrage angegeben haben.
Nächste Schritte
- Informationen zum Optimieren eines Gemini-Modells finden Sie in der Übersicht über die Modellabstimmung für Gemini