Ricevere le risposte in un batch è un modo per inviare in modo efficiente un numero elevato di richieste di embedding non sensibili alla latenza. A differenza di quanto accade quando ricevi risposte online, dove hai un limite di una richiesta di input alla volta, puoi inviare un numero elevato di richieste LLM in una singola richiesta batch. In modo simile a come viene eseguita la previsione batch per i dati tabulari in Vertex AI, puoi determinare la posizione di output, aggiungere l'input e le risposte vengono completate in modo asincrono nella posizione di output.
Modelli di incorporamenti di testo che supportano le previsioni in batch
Tutte le versioni stabili del modello textembedding-gecko
supportano le previsioni batch, ad eccezione di textembedding-gecko-multilingual@001
. Le versioni stabili non sono più in anteprima e sono completamente supportate per gli ambienti di produzione. Per visualizzare l'elenco completo dei modelli di embedding supportati, consulta Modello di embedding e versioni.
Preparare gli input
L'input per le richieste collettive è un elenco di prompt che possono essere archiviati in una tabella BigQuery o come file JSON Lines (JSONL) in Cloud Storage. Ogni richiesta può includere fino a 30.000 prompt.
Esempio JSONL
Questa sezione mostra esempi di come formattare l'input e l'output JSONL.
Esempio di input JSONL
{"content":"Give a short description of a machine learning model:"}
{"content":"Best recipe for banana bread:"}
Esempio di output JSONL
{"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":""}
Esempio di BigQuery
Questa sezione mostra esempi di come formattare l'input e l'output di BigQuery.
Esempio di input BigQuery
Questo esempio mostra una tabella BigQuery con una sola colonna.
contenuti |
---|
"Fornisci una breve descrizione di un modello di machine learning:" |
"La migliore ricetta per il banana bread:" |
Esempio di output BigQuery
contenuti | previsioni. | stato |
---|---|---|
"Fornisci una breve descrizione di un modello di machine learning:" |
'[{"embeddings": { "statistics":{"token_count":8,"truncated":false}, "Values":[0.1,....] } } ]' |
|
"La migliore ricetta per il banana bread:" |
'[{"embeddings": { "statistics":{"token_count":3,"truncated":false}, "Values":[0.2,....] } } ]' |
Richiedere una risposta collettiva
A seconda del numero di elementi di input inviati, l'elaborazione di un'attività di generazione batch può richiedere del tempo.
REST
Per testare un prompt di testo utilizzando l'API Vertex AI, invia una richiesta POST all'endpoint del modello del publisher.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: l'ID del tuo progetto Google Cloud.
- BP_JOB_NAME: il nome del job.
- INPUT_URI: l'URI di origine dell'input. Può essere un URI della tabella BigQuery o un URI del file JSONL in Cloud Storage.
- OUTPUT_URI: URI di destinazione dell'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/textembedding-gecko", "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
,
quindi esegui il comando seguente:
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
,
quindi esegui il comando seguente:
$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/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": {} }
La risposta include un identificatore univoco per il job batch.
Puoi eseguire il polling dello stato del job batch utilizzando
BATCH_JOB_ID finché 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, consulta Installare l'SDK Vertex AI per Python. Per saperne di più, consulta la documentazione di riferimento dell'API Python.
Recupera l'output batch
Al termine di un'attività di previsione batch, l'output viene archiviato nel bucket Cloud Storage o nella tabella BigQuery specificata nella richiesta.
Passaggi successivi
- Scopri come ottenere gli embedding di testo.