Questa pagina descrive come ottenere inferenze batch utilizzando Cloud Storage.
1. Prepara gli input
L'inferenza batch per i modelli Gemini accetta come dati di input un file JSON Lines (JSONL) archiviato in Cloud Storage. Ogni riga dei dati di input batch è una richiesta al modello.
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
Dopo aver preparato i dati di input e averli caricati in Cloud Storage, assicurati che l'agente di servizio AI Platform abbia l'autorizzazione a leggere il file di Cloud Storage.
2. Invia un job batch
Puoi creare un job batch utilizzando la Cloud de Confiance console, l'API REST, o l'SDK Google Gen AI.
Console
- Nella sezione Agent Platform della Cloud de Confiance console, vai a la pagina Inferenza batch.
- Fai clic su Crea.
REST
Per creare un job di inferenza batch, utilizza il
projects.locations.batchPredictionJobs.create metodo.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- ENDPOINT_PREFIX: La regione della risorsa modello seguita da
-. Ad esempio,us-central1-. Se utilizzi l'endpoint globale, lascia vuoto. Nota: l'endpoint globale non è supportato per l'inferenza batch che utilizza modelli ottimizzati. - LOCATION: una regione che supporta
i modelli Gemini. Se utilizzi l'endpoint globale, inserisci
global. - PROJECT_ID: il tuo ID progetto.
- MODEL_PATH: il nome del modello del publisher, 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 località di Cloud Storage dell'input di inferenza 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 località 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 inferenza batch di Agent Platform. Per Cloud Storage, specifica la località del bucket e della directory, ad esempiogs://mybucket/path/to/output.
Metodo HTTP e URL:
POST https://ENDPOINT_PREFIXaiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/batchPredictionJobs
Corpo JSON della richiesta:
{
"displayName": "my-cloud-storage-batch-inference-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,
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://ENDPOINT_PREFIXaiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/batchPredictionJobs"
PowerShell
Salva il corpo della richiesta in un file denominato request.json,
e 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://ENDPOINT_PREFIXaiplatform.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 il BATCH_JOB_ID. Per saperne di più, consulta Monitorare lo stato del job.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 Google 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_ENTERPRISE=True
3. Monitora lo stato e l'avanzamento del job
Dopo aver inviato il job batch, puoi controllarne lo stato utilizzando la Cloud de Confiance console, 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 inferenza batch, utilizza il
projects.locations.batchPredictionJobs.get metodo e visualizza il CompletionStats campo nella risposta.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- ENDPOINT_PREFIX: La regione della risorsa modello seguita da
-. Ad esempio,us-central1-. Se utilizzi l'endpoint globale, lascia vuoto. - LOCATION: una regione che supporta
i modelli Gemini. Se utilizzi l'endpoint globale, inserisci
global. - PROJECT_ID: il tuo ID progetto.
- BATCH_JOB_ID: l'ID job batch.
Metodo HTTP e URL:
GET https://ENDPOINT_PREFIXaiplatform.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://ENDPOINT_PREFIXaiplatform.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://ENDPOINT_PREFIXaiplatform.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 Google 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_ENTERPRISE=True
Per le descrizioni degli stati dei job, consulta JobState.
4. Recupera l'output batch
Al termine di un job di inferenza batch, l'output viene archiviato nel bucket Cloud Storage specificato durante la creazione del job. Per le righe riuscite, le risposte del modello vengono archiviate nel campo response. In caso contrario, i dettagli dell'errore vengono archiviati nel campo status per ulteriori ispezioni.
Durante i job a lunga esecuzione, le inferenze completate vengono esportate continuamente nella destinazione di output specificata. Se il job di inferenza batch viene terminato, vengono esportate tutte le righe completate. Ti vengono addebitate solo le inferenze 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 non riuscito
{
"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": {}
}
Riprendi un job batch incompleto
Se un job di inferenza batch non riesce, viene annullato o scade, puoi riprenderlo creando un nuovo job batch. Il nuovo job elabora solo le richieste incomplete o non riuscite del job precedente, unendo i nuovi risultati a quelli delle richieste completate in precedenza. Ad esempio, se il job batch incompleto è stato completato al 90%, il nuovo job elabora il restante 10% delle richieste.
Per riprendere un job batch, crea un nuovo job batch, fornendo il file di Cloud Storage come input per il nuovo job.