Questa pagina descrive come ottenere previsioni batch utilizzando Cloud Storage.
1. Preparare gli input
Batch per i modelli Gemini accetta un file JSON Lines (JSONL) archiviato in Cloud Storage come dati di input. Ogni riga dei dati di input batch รจ una richiesta al modello, che segue lo stesso formato dell'API Gemini.
Ad esempio:
{"request":{"contents": [{"role": "user", "parts": [{"text": "What is the relation between the following video and image samples?"}, {"fileData": {"fileUri": "gs://cloud-samples-data/generative-ai/video/animals.mp4", "mimeType": "video/mp4"}}, {"fileData": {"fileUri": "gs://cloud-samples-data/generative-ai/image/cricket.jpeg", "mimeType": "image/jpeg"}}]}], "generationConfig": {"temperature": 0.9, "topP": 1, "maxOutputTokens": 256}}}
Scarica il file di richiesta batch di esempio.
Una volta preparati i dati di input e caricati su Cloud Storage. Assicurati che l'agente di servizio AI Platform abbia l'autorizzazione per il file Cloud Storage.
2. Invia un job batch
Puoi creare un job batch utilizzando la console Google Cloud , l'API REST o Google Gen AI SDK.
Console
- Nella sezione Vertex AI della console Google Cloud , vai alla pagina Inferenza batch.
- Fai clic su Crea.
REST
Per creare un job di previsione batch, utilizza il
metodo projects.locations.batchPredictionJobs.create
.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- LOCATION: una regione che supporta i modelli Gemini.
- PROJECT_ID: il tuo ID progetto
- MODEL_PATH: il nome del modello dell'editore, ad esempio
publishers/google/models/gemini-2.5-flash
; o il nome dell'endpoint ottimizzato, ad esempioprojects/PROJECT_ID/locations/LOCATION/models/MODEL_ID
, dove MODEL_ID รจ l'ID modello del modello ottimizzato. - INPUT_URI: la
posizione Cloud Storage dell'input di previsione batch JSONL, ad esempio
gs://bucketname/path/to/file.jsonl
. - OUTPUT_FORMAT: per l'output in
un bucket Cloud Storage, specifica
jsonl
. - DESTINATION: per
BigQuery, specifica
bigqueryDestination
. Per Cloud Storage, specificagcsDestination
. - OUTPUT_URI_FIELD_NAME:
Per BigQuery, specifica
outputUri
. Per Cloud Storage, specificaoutputUriPrefix
. - OUTPUT_URI: per
BigQuery, specifica la posizione della tabella, ad esempio
bq://myproject.mydataset.output_result
. La regione del set di dati BigQuery di output deve essere la stessa del job di previsione batch di Vertex AI. Per Cloud Storage, specifica la posizione del bucket e della directory, ad esempiogs://mybucket/path/to/output
.
Metodo HTTP e URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/batchPredictionJobs
Corpo JSON della richiesta:
{ "displayName": "my-cloud-storage-batch-prediction-job", "model": "MODEL_PATH", "inputConfig": { "instancesFormat": "jsonl", "gcsSource": { "uris" : "INPUT_URI" } }, "outputConfig": { "predictionsFormat": "OUTPUT_FORMAT", "DESTINATION": { "OUTPUT_URI_FIELD_NAME": "OUTPUT_URI" } } }
Per inviare la richiesta, scegli una di queste 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://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/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://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/batchPredictionJobs" | Select-Object -Expand Content
Dovresti ricevere una risposta JSON simile alla seguente.
La risposta include un identificatore univoco per il job batch. Puoi eseguire il polling dello stato del job batch utilizzando BATCH_JOB_ID. Per saperne di piรน, vedi Monitorare lo stato del job. Nota: i report su service account personalizzato, stato di avanzamento in tempo reale, CMEK e VPCSC non sono supportati.Python
Installa
pip install --upgrade google-genai
Per saperne di piรน, consulta la documentazione di riferimento dell'SDK.
Imposta le variabili di ambiente per utilizzare l'SDK Gen AI con Vertex AI:
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=global export GOOGLE_GENAI_USE_VERTEXAI=True
3. Monitorare lo stato e l'avanzamento del job
Dopo l'invio del job, puoi controllare lo stato del job batch utilizzando la console Google Cloud , l'API REST o l'SDK Google Gen AI.
Console
- Vai alla pagina Inferenza batch.
- Seleziona il job batch per monitorarne l'avanzamento.
REST
Per monitorare un job di previsione batch, utilizza il
metodo projects.locations.batchPredictionJobs.get
e visualizza il campo CompletionStats
nella risposta.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- LOCATION: una regione che supporta i modelli Gemini.
- PROJECT_ID: .
- BATCH_JOB_ID: l'ID del job batch.
Metodo HTTP e URL:
GET https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/batchPredictionJobs/BATCH_JOB_ID
Per inviare la richiesta, scegli una di queste opzioni:
curl
Esegui questo comando:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/batchPredictionJobs/BATCH_JOB_ID"
PowerShell
Esegui questo comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/batchPredictionJobs/BATCH_JOB_ID" | Select-Object -Expand Content
Dovresti ricevere una risposta JSON simile alla seguente.
Python
Installa
pip install --upgrade google-genai
Per saperne di piรน, consulta la documentazione di riferimento dell'SDK.
Imposta le variabili di ambiente per utilizzare l'SDK Gen AI con Vertex AI:
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=global export GOOGLE_GENAI_USE_VERTEXAI=True
Per le descrizioni degli stati dei job, vedi JobState.
4. Recupera output batch
Al termine di un job di previsione batch, l'output viene archiviato nel bucket Cloud Storage specificato al momento della creazione del job. Per le righe
riuscire, le risposte del modello vengono archiviate nel campo response
. In caso contrario,
i dettagli dell'errore vengono memorizzati nel campo status
per ulteriori controlli.
Durante i job a esecuzione prolungata, le previsioni completate vengono esportate continuamente nella destinazione di output specificata. Se il job di previsione batch viene terminato, vengono esportate tutte le righe completate. Ti vengono addebitate solo le previsioni completate.
Esempi di output
Esempio riuscito
{
"status": "",
"processed_time": "2024-11-01T18:13:16.826+00:00",
"request": {
"contents": [
{
"parts": [
{
"fileData": null,
"text": "What is the relation between the following video and image samples?"
},
{
"fileData": {
"fileUri": "gs://cloud-samples-data/generative-ai/video/animals.mp4",
"mimeType": "video/mp4"
},
"text": null
},
{
"fileData": {
"fileUri": "gs://cloud-samples-data/generative-ai/image/cricket.jpeg",
"mimeType": "image/jpeg"
},
"text": null
}
],
"role": "user"
}
]
},
"response": {
"candidates": [
{
"avgLogprobs": -0.5782725546095107,
"content": {
"parts": [
{
"text": "This video shows a Google Photos marketing campaign where animals at the Los Angeles Zoo take self-portraits using a modified Google phone housed in a protective case. The image is unrelated."
}
],
"role": "model"
},
"finishReason": "STOP"
}
],
"modelVersion": "gemini-2.0-flash-001@default",
"usageMetadata": {
"candidatesTokenCount": 36,
"promptTokenCount": 29180,
"totalTokenCount": 29216
}
}
}
Esempio di operazione non riuscita
{
"status": "Bad Request: {\"error\": {\"code\": 400, \"message\": \"Please use a valid role: user, model.\", \"status\": \"INVALID_ARGUMENT\"}}",
"processed_time": "2025-07-09T19:57:43.558+00:00",
"request": {
"contents": [
{
"parts": [
{
"text": "Explain how AI works in a few words"
}
],
"role": "tester"
}
]
},
"response": {}
}