Dopo aver inviato una richiesta batch per un modello di testo ed esaminato i risultati, puoi modificarlo tramite l'ottimizzazione del modello. Dopo l'ottimizzazione, puoi inviare il modello aggiornato per le generazioni batch come di consueto. Per scoprire di più sull'ottimizzazione dei modelli, consulta Ottimizzare i modelli di base.
Modelli di testo che supportano le previsioni batch
text-bison
Prepara gli input
L'input per le richieste batch specifica gli elementi da inviare al modello per una generazione batch. Quando utilizzi la classificazione del testo nei modelli, puoi utilizzare un file righe JSON o una tabella BigQuery per specificare un elenco di input. Archivia la tabella BigQuery in BigQuery e il file JSON Lines in Cloud Storage.
Le richieste batch per i modelli di testo accettano solo origini di archiviazione BigQuery e Cloud Storage. Le richieste possono includere fino a 30.000 prompt.
Per scoprire di più sulla formattazione, consulta:
Esempio JSONL
Formato di input JSONL
{"prompt":"Give a short description of a machine learning model:"}
{"prompt":"Best recipe for banana bread:"}
Output JSONL
{"instance":{"prompt":"Give..."},"predictions": [{"content":"A machine","safetyAttributes":{...}}],"status":""}
{"instance":{"prompt":"Best..."},"predictions": [{"content":"Sure", "safetyAttributes":{...}}],"status":""}
Esempio di BigQuery
Formato di input BigQuery
Questo esempio mostra una tabella BigQuery con una sola colonna.
prompt |
---|
"Fornisci una breve descrizione di un modello di machine learning:" |
"Miglior ricetta per il banana bread:" |
Output BigQuery
prompt | previsioni. | stato |
---|---|---|
"Fornisci una breve descrizione di un modello di machine learning:" |
'[{ "content": "A machine learning model is a statistical method", "safetyAttributes": { "blocked": false, "scores": [ 0.10000000149011612 ], "categories": [ "Violent" ] } }]' |
|
"Miglior ricetta per il banana bread:" |
'[{"content": "Sure, here is a recipe for banana bread:\n\nIngredients:\n\n*", "safetyAttributes": { "scores": [ 0.10000000149011612 ], "blocked": false, "categories": [ "Violent" ] } }]' |
Richiedere una risposta collettiva
In base al numero di input che hai inviato, viene visualizzata una di generazione batch può richiedere del tempo.
REST
Per testare un prompt di testo utilizzando l'API Vertex AI, invia una richiesta POST al l'endpoint del modello del publisher.
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- PROJECT_ID: il nome del tuo progetto Google Cloud.
- BP_JOB_NAME: il nome del job.
- MODEL_PARAM: una mappa dei parametri del modello. Alcuni parametri accettabili includono: maxOutputTokens, topK, topP e temperatura.
- INPUT_URI: l'URI di origine di input. Può essere un URI della tabella BigQuery o un URI del file JSONL in Cloud Storage.
- OUTPUT_URI: URI di destinazione di output.
Metodo HTTP e URL:
POST https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/batchPredictionJobs
Corpo JSON della richiesta:
{ "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" } } }
Per inviare la richiesta, scegli una delle seguenti opzioni:
curl
Salva il corpo della richiesta in un file denominato request.json
.
ed esegui questo comando:
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
Salva il corpo della richiesta in un file denominato request.json
.
ed esegui questo comando:
$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
Dovresti ricevere una risposta JSON simile alla seguente:
{ "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": {} }
La risposta include un identificatore univoco per il job batch.
Puoi eseguire il polling per lo stato del job batch utilizzando
BATCH_JOB_ID fino a quando il job state
non è
JOB_STATE_SUCCEEDED
. Ad esempio:
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
Per scoprire come installare o aggiornare l'SDK Vertex AI per Python, vedi Installare l'SDK Vertex AI per Python. Per saperne di più, consulta la documentazione di riferimento dell'API Python.
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)
Recupera l'output batch
Quando un'attività di previsione batch è completata, l'output viene archiviato nel bucket Cloud Storage o nella tabella BigQuery specificata nella tua richiesta.
Passaggi successivi
- Scopri come testare i prompt di testo.
- Scopri altre strategie di progettazione dei prompt per il testo specifiche per le attività:
- Scopri come ottimizzare un modello.