Mithilfe von Batchvorhersagen können Sie eine große Anzahl an nicht-latenzempfindlichen Text-Prompts für Anfragen senden. Im Gegensatz zur Onlinevorhersage, 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-Prompts hinzu und die Antworten werden asynchron in Ihren Ausgabespeicherort übernommen.
Nachdem Sie eine Batchanfrage für ein Textmodell gesendet und dessen 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 Foundation Models abstimmen.
Textmodelle, die Batchvorhersagen unterstützen
text-bison
Eingaben vorbereiten
Die Eingabe für Batchanfragen gibt die Elemente an, die für eine Batchgenerierung an Ihr Modell gesendet werden sollen. Wenn Sie die Textklassifizierung für Modelle verwenden, können Sie eine JSON Lines-Datei oder eine BigQuery-Tabelle verwenden, um eine Liste der Eingaben anzugeben. Sie speichern die BigQuery-Tabelle in BigQuery und die JSON Lines-Datei in Cloud Storage.
Batchanfragen für Textmodelle akzeptieren nur BigQuery-Speicherquellen und Cloud Storage. Anfragen können bis zu 30.000 Prompts enthalten.
Weitere Informationen zur Formatierung finden Sie unter:
JSONL-Beispiel
JSONL-Eingabeformat
{"prompt":"Give a short description of a machine learning model:"}
{"prompt":"Best recipe for banana bread:"}
JSONL-Ausgabe
{"instance":{"prompt":"Give..."},"predictions": [{"content":"A machine","safetyAttributes":{...}}],"status":""}
{"instance":{"prompt":"Best..."},"predictions": [{"content":"Sure", "safetyAttributes":{...}}],"status":""}
BigQuery-Beispiel
BigQuery-Eingabeformat
Dieses Beispiel zeigt eine BigQuery-Tabelle mit einer einzigen Spalte.
prompt |
---|
„Kurze Beschreibung eines ML-Modells angeben:” |
„Das beste Rezept für Bananenbrot:“ |
BigQuery-Ausgabe
prompt | Vorhersagen | Status |
---|---|---|
„Kurze Beschreibung eines ML-Modells angeben:” |
'[{ "content": "A machine learning model is a statistical method", "safetyAttributes": { "blocked": false, "scores": [ 0.10000000149011612 ], "categories": [ "Violent" ] } }]' |
|
„Das beste Rezept für Bananenbrot:“ |
'[{"content": "Sure, here is a recipe for banana bread:\n\nIngredients:\n\n*", "safetyAttributes": { "scores": [ 0.10000000149011612 ], "blocked": false, "categories": [ "Violent" ] } }]' |
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 ist der Name Ihres Google Cloud-Projekts.
- BP_JOB_NAME: Name des Jobs.
- MODEL_PARAM: Eine Zuordnung von Modellparametern. Zulässige Parameter sind: maxOutputTokens, topK, topP und Temperatur.
- 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/text-bison", "model_parameters": "MODEL_PARAM" "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/text-bison", "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
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.
from vertexai.preview.language_models import TextGenerationModel text_model = TextGenerationModel.from_pretrained("text-bison") batch_prediction_job = text_model.batch_predict( source_uri=["gs://BUCKET_NAME/test_table.jsonl"], destination_uri_prefix="gs://BUCKET_NAME/tmp/2023-05-25-vertex-LLM-Batch-Prediction/result3", # Optional: model_parameters={ "maxOutputTokens": "200", "temperature": "0.2", "topP": "0.95", "topK": "40", }, ) 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.
Nächste Schritte
- Weitere Informationen zum Testen von Text-Prompts
- Weitere Strategien zum Entwerfen von aufgabenspezifischen Prompts für Text:
- Modell abstimmen