Durch das Abrufen von Antworten in einem Batch können Sie eine große Anzahl an nicht-latenzempfindlichen Einbettungsanfragen effizient 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.
Nachdem Sie eine Batchanfrage gesendet und deren Ergebnisse überprüft haben, können Sie das Modell über die Modellabstimmung optimieren. Nach der Abstimmung können Sie das aktualisierte Modell wie gewohnt für Batchgenerierungen senden. Weitere Informationen zum Abstimmen von Modellen finden Sie unter Spracherkennungsmodelle abstimmen.
Texteinbettungsmodelle, die Batchvorhersagen unterstützen
textembedding-gecko@
Eingaben vorbereiten
Die Eingabe für Batchanfragen ist eine Liste von Eingabeaufforderungen, die entweder in einer BigQuery-Tabelle oder als JSONL-Datei (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 die JSONL-Eingabe und -Ausgabe 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.
Inhalte |
---|
„Kurze Beschreibung eines ML-Modells angeben:” |
„Das beste Rezept für Bananenbrot:“ |
BigQuery-Ausgabebeispiel
Inhalte | 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: 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 in etwa folgende JSON-Antwort 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
Python
Informationen zum Installieren oder Aktualisieren von Python finden Sie unter Vertex AI SDK für Python installieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Python API.
from vertexai.preview.language_models import TextEmbeddingModel textembedding_model = TextEmbeddingModel.from_pretrained("textembedding-gecko") batch_prediction_job = textembedding_model.batch_predict( dataset=["gs://BUCKET_NAME/test_table.jsonl"], destination_uri_prefix="gs://BUCKET_NAME/tmp/2023-05-25-vertex-LLM-Batch-Prediction/result3", ) print(batch_prediction_job.display_name) print(batch_prediction_job.resource_name) print(batch_prediction_job.state)
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.