Ricevere risposte in batch è un modo per inviare in modo efficiente un gran numero di messaggi non richieste di incorporamenti sensibili. A differenza di ricevere risposte online, in cui puoi inviare una sola richiesta di input alla volta, puoi inviare un numero di richieste LLM in una singola richiesta batch. Simile a come si esegue la previsione batch per i dati tabulari in Vertex AI, determinare la posizione di output, aggiungere l'input e le risposte in modo asincrono. inseriscilo nella posizione di output.
Dopo aver inviato ed esaminato una richiesta batch dai risultati, puoi modificare il modello attraverso l'ottimizzazione. Dopo l'ottimizzazione, puoi inviare il modello aggiornato per le generazioni di batch come di consueto. Per scoprire di più su di ottimizzazione dei modelli, consulta Ottimizzazione dei modelli di base linguistici.
Modelli di incorporamenti di testo che supportano le previsioni batch
Tutte le versioni stabili del modello textembedding-gecko
supportano le previsioni batch, ad eccezione di textembedding-gecko-multilingual@001
. Le versioni stabili sono versioni che non sono
più lunghi in anteprima e sono completamente supportati per gli ambienti di produzione. Per vedere le
Per l'elenco completo dei modelli di incorporamento supportati, consulta la sezione Modello e versioni di incorporamento.
Prepara gli input
L'input per le richieste batch è un elenco di prompt che possono essere archiviati come tabella BigQuery o come File JSON Lines (JSONL) in di archiviazione ideale in Cloud Storage. Ogni richiesta può includere fino a 30.000 prompt.
Esempio JSONL
Questa sezione mostra esempi di come formattare input e 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 singola colonna.
contenuti |
---|
"Fornisci una breve descrizione di un modello di machine learning:" |
"Miglior 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,....] } } ]' |
|
"Miglior ricetta per il banana bread:" |
'[{"embeddings": { "statistics":{"token_count":3,"truncated":false}, "Values":[0.2,....] } } ]' |
Richiedi una risposta batch
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 endpoint del modello del publisher.
Prima di utilizzare i dati della richiesta, effettua 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 di input. Questo è l'URI di una tabella BigQuery o un 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/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
.
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/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 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 ulteriori informazioni, consulta documentazione di riferimento dell'API Python.
Recuperare 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 ottenere gli incorporamenti di testo.