Antworten als Stapel zu erhalten ist eine effiziente Art, eine große Anzahl von nicht-latenzempfindlichen Anfragen für embeddings zu senden. Im Gegensatz zur Onlineantworten, bei der jeweils nur eine Eingabeanfrage gleichzeitig möglich ist, können Sie eine große Anzahl von LLM-Anfragen in einer einzelnen Batchanfrage senden. Ähnlich wie die Batchvorhersage für tabellarische Daten in Vertex AI legen Sie den Ausgabespeicherort fest, fügen Ihre Eingabe hinzu und die Antworten werden asynchron in Ihren Ausgabespeicherort übernommen.
Texteinbettungsmodelle, die Batchvorhersagen unterstützen
Alle stabilen Versionen von Modelleinbettungsmodellen unterstützen Batchvorhersagen, mit Ausnahme von textembedding-gecko-multilingual@001
. Stabile Versionen sind Versionen, die nicht mehr in der Vorabversion sind und in Produktionsumgebungen vollständig unterstützt werden. Eine vollständige Liste der unterstützten Einbettungsmodelle finden Sie unter Einbettungsmodell und -versionen.
Eingaben vorbereiten
Die Eingabe für Batchanfragen ist eine Liste an Eingabeaufforderungen, die entweder in einer BigQuery-Tabelle oder als JSON-Lieniendatei (JSONL) in Cloud Storage gespeichert werden können. Jede Anfrage kann bis zu 30.000 Anfragen enthalten.
JSONL-Beispiel
In diesem Abschnitt wird anhand von Beispielen gezeigt, wie Sie JSONL-Eingaben und -Ausgaben formatieren.
JSONL-Eingabebeispiel
{"content":"Give a short description of a machine learning model:"}
{"content":"Best recipe for banana bread:"}
JSONL-Ausgabebeispiel
{"instance":{"content":"Give..."},"predictions": [{"embeddings":{"statistics":{"token_count":8,"truncated":false},"values":[0.2,....]}}],"status":""}
{"instance":{"content":"Best..."},"predictions": [{"embeddings":{"statistics":{"token_count":3,"truncated":false},"values":[0.1,....]}}],"status":""}
BigQuery-Beispiel
In diesem Abschnitt wird anhand von Beispielen gezeigt, wie Sie BigQuery-Eingaben und -Ausgaben formatieren.
BigQuery-Eingabebeispiel
Dieses Beispiel zeigt eine BigQuery-Tabelle mit einer einzigen Spalte.
Inhalt |
---|
„Kurze Beschreibung eines ML-Modells angeben:” |
„Das beste Rezept für Bananenbrot:“ |
BigQuery-Ausgabebeispiel
Inhalt | Vorhersagen | Status |
---|---|---|
„Kurze Beschreibung eines ML-Modells angeben:” |
'[{"embeddings": { "statistics":{"token_count":8,"truncated":false}, "Values":[0.1,....] } } ]' |
|
„Das beste Rezept für Bananenbrot:“ |
'[{"embeddings": { "statistics":{"token_count":3,"truncated":false}, "Values":[0.2,....] } } ]' |
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 Text-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: Die ID 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/textembedding-gecko", "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 eine JSON-Antwort ähnlich wie diese erhalten:
{ "name": "projects/123456789012/locations/us-central1/batchPredictionJobs/1234567890123456789", "displayName": "BP_sample_publisher_BQ_20230712_134650", "model": "projects/{PROJECT_ID}/locations/us-central1/models/textembedding-gecko", "inputConfig": { "instancesFormat": "bigquery", "bigquerySource": { "inputUri": "bq://project_name.dataset_name.text_input" } }, "modelParameters": {}, "outputConfig": { "predictionsFormat": "bigquery", "bigqueryDestination": { "outputUri": "bq://project_name.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
Gen AI SDK für Python
Informationen zum Installieren oder Aktualisieren des Google Gen AI SDK for Python
Weitere Informationen finden Sie in der
Referenzdokumentation zur Gen AI SDK for Python API oder im
python-genai
GitHub-Repository.
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=us-central1 export GOOGLE_GENAI_USE_VERTEXAI=True
Vertex AI SDK für 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 Vertex AI SDK for Python API.
Batchausgabe abrufen
Wenn eine Batchvorhersage abgeschlossen ist, wird die Ausgabe im Cloud Storage-Bucket oder in der BigQuery-Tabelle gespeichert, die Sie in der Anfrage angegeben haben.