Batch-Textgenerierungen abrufen

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