Alcuni dei modelli disponibili in Model Garden possono essere implementati autonomamente nel tuo progetto Google Cloud e utilizzati per fornire previsioni batch. Le previsioni batch ti consentono di utilizzare in modo efficiente un modello per elaborare più prompt solo di testo che non sono sensibili alla latenza.
Prepara l'input
Prima di iniziare, prepara gli input in una tabella BigQuery o come file JSONL in Cloud Storage. L'input per entrambe le origini deve seguire il formato JSON dello schema dell'API OpenAI, come mostrato nel seguente esempio:
{"body": {"messages": [{"role": "user", "content": "Give me a recipe for banana bread"}], "max_tokens": 1000}}
BigQuery
La tabella di input BigQuery deve rispettare il seguente schema:
Nome colonna | Descrizione |
---|---|
custom_id | Un ID per ogni richiesta per abbinare l'input all'output. |
metodo | Il metodo di richiesta. |
url | L'endpoint di richiesta. |
body(JSON) | Il prompt di input. |
- La tabella di input può contenere altre colonne, che vengono ignorate dal job batch e passate direttamente alla tabella di output.
- I job di previsione batch riservano due nomi di colonna per l'output della previsione batch: response(JSON) e id. Non utilizzare queste colonne nella tabella di input.
- Le colonne method e url vengono eliminate e non incluse nella tabella di output.
Cloud Storage
Per Cloud Storage, il file di input deve essere un file JSONL che si trova in un bucket Cloud Storage.
Recuperare le risorse richieste per un modello
Scegli un modello ed esamina i requisiti delle risorse. Le risorse
richieste vengono visualizzate nella risposta, nel campo dedicatedResources
, che
specifichi nella configurazione del job di previsione batch.
REST
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PUBLISHER: l'editore del modello, ad esempio
meta
,google
,mistral-ai
odeepseek-ai
. - PUBLISHER_MODEL_ID: l'ID modello dell'editore per il
modello, ad esempio
llama3_1
. - VERSION_ID: l'ID versione dell'editore per il
modello, ad esempio
llama-3.1-8b-instruct
.
Metodo HTTP e URL:
GET "https://us-central1-aiplatform.googleapis.com/ui/publishers/PUBLISHER/models/PUBLISHER_MODEL_ID@VERSION_ID" | jq '.supportedActions.multiDeployVertex'
Per inviare la richiesta, scegli una di queste opzioni:
curl
Esegui questo comando:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project: PROJECT_ID" \
""https://us-central1-aiplatform.googleapis.com/ui/publishers/PUBLISHER/models/PUBLISHER_MODEL_ID@VERSION_ID" | jq '.supportedActions.multiDeployVertex'"
PowerShell
Esegui questo comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "PROJECT_ID" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri ""https://us-central1-aiplatform.googleapis.com/ui/publishers/PUBLISHER/models/PUBLISHER_MODEL_ID@VERSION_ID" | jq '.supportedActions.multiDeployVertex'" | Select-Object -Expand Content
Dovresti ricevere un codice di stato riuscito (2xx) e una risposta vuota.
Richiedere una previsione batch
Esegui una previsione batch su un modello Model Garden autodeployato utilizzando l'input di BigQuery o Cloud Storage. Puoi scegliere in modo indipendente di generare l'output delle previsioni in una tabella BigQuery o in un file JSONL in un bucket Cloud Storage.
BigQuery
Specifica la tabella di input BigQuery, il modello e la posizione di output. Il job di previsione batch e la tabella devono trovarsi nella stessa regione.
REST
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- LOCATION: una regione che supporta i modelli di Model Garden con deployment autonomo.
- PROJECT_ID: il tuo ID progetto
- MODEL: il nome del modello da ottimizzare, ad esempio
llama-3.1-8b-instruct
. - PUBLISHER: l'editore del modello, ad esempio
meta
,google
,mistral-ai
odeepseek-ai
. - INPUT_URI: la
tabella BigQuery in cui si trova l'input della previsione batch
come
myproject.mydataset.input_table
. - OUTPUT_FORMAT: per l'output in
una tabella BigQuery, specifica
bigquery
. Per l'output in un bucket Cloud Storage, specificajsonl
. - 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
myproject.mydataset.output_result
. Per Cloud Storage, specifica la posizione del bucket e della cartella, ad esempiogs://mybucket/path/to/outputfile
. - MACHINE_TYPE: definisce l'insieme di risorse da
deploy per il modello, ad esempio
g2-standard-4
. - ACC_TYPE: specifica gli acceleratori da aggiungere al
job di previsione batch per migliorare le prestazioni quando si lavora con carichi di lavoro intensivi,
ad esempio
NVIDIA_L4
. - ACC_COUNT: il numero di acceleratori da utilizzare nel job di previsione batch.
Metodo HTTP e URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/batchPredictionJobs
Corpo JSON della richiesta:
'{ "displayName": "JOB_NAME", "model": "publishers/PUBLISHER/models/MODEL", "inputConfig": { "instancesFormat":"bigquery", "bigquerySource":{ "inputUri" : "INPUT_URI" } }, "outputConfig": { "predictionsFormat":"OUTPUT_FORMAT", "DESTINATION":{ "OUTPUT_URI_FIELD_NAME": "OUTPUT_URI" } }, "dedicated_resources": { "machine_spec": { "machine_type": "MACHINE_TYPE", "accelerator_type": "ACC_TYPE", "accelerator_count": ACC_COUNT, }, "starting_replica_count": 1, }, }'
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.
Cloud Storage
Specifica la posizione Cloud Storage, il modello e la posizione di output del file JSONL.
REST
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- LOCATION: una regione che supporta i modelli di Model Garden con deployment autonomo.
- PROJECT_ID: il tuo ID progetto
- MODEL: il nome del modello da ottimizzare, ad esempio
llama-3.1-8b-instruct
. - PUBLISHER: l'editore del modello, ad esempio
meta
,google
,mistral-ai
odeepseek-ai
. - INPUT_URI: la
posizione Cloud Storage dell'input di previsione batch JSONL, ad esempio
gs://bucketname/path/to/jsonl
. - OUTPUT_FORMAT: per l'output in
una tabella BigQuery, specifica
bigquery
. Per l'output in un bucket Cloud Storage, specificajsonl
. - 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
myproject.mydataset.output_result
. Per Cloud Storage, specifica la posizione del bucket e della cartella, ad esempiogs://mybucket/path/to/outputfile
. - MACHINE_TYPE: definisce l'insieme di risorse da
deploy per il modello, ad esempio
g2-standard-4
. - ACC_TYPE: specifica gli acceleratori da aggiungere al
job di previsione batch per migliorare le prestazioni quando si lavora con carichi di lavoro intensivi,
ad esempio
NVIDIA_L4
. - ACC_COUNT: il numero di acceleratori da utilizzare nel job di previsione batch.
Metodo HTTP e URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/batchPredictionJobs
Corpo JSON della richiesta:
'{ "displayName": "JOB_NAME", "model": "publishers/PUBLISHER/models/MODEL", "inputConfig": { "instancesFormat":"jsonl", "gcsDestination":{ "uris" : "INPUT_URI" } }, "outputConfig": { "predictionsFormat":"OUTPUT_FORMAT", "DESTINATION":{ "OUTPUT_URI_FIELD_NAME": "OUTPUT_URI" } }, "dedicated_resources": { "machine_spec": { "machine_type": "MACHINE_TYPE", "accelerator_type": "ACC_TYPE", "accelerator_count": ACC_COUNT, }, "starting_replica_count": 1, }, }'
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.
Recupero dello stato di un job di previsione batch
Recupera lo stato del job di previsione batch per verificare se è stato completato correttamente. La durata del job dipende dal numero di elementi di input che hai inviato.
REST
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: il tuo ID progetto
- LOCATION: la regione in cui si trova il job batch.
- JOB_ID: l'ID del job batch restituito quando hai creato il job.
Metodo HTTP e URL:
GET https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/batchPredictionJobs/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/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/JOB_ID" | Select-Object -Expand Content
Dovresti ricevere una risposta JSON simile alla seguente.
Recuperare l'output
Al termine di un job di previsione batch, recupera l'output dalla posizione che hai specificato:
- Per BigQuery, l'output si trova nella colonna response(JSON) della tabella BigQuery di destinazione.
- Per Cloud Storage, l'output viene salvato come file JSONL nella località di output di Cloud Storage.
Modelli supportati
Vertex AI supporta le previsioni in batch per i seguenti modelli autodistribuiti:
- Llama
publishers/meta/models/llama3_1@llama-3.1-8b-instruct
publishers/meta/models/llama3_1@llama-3.1-70b-instruct
publishers/meta/models/llama3_1@llama-3.1-405b-instruct-fp8
publishers/meta/models/llama3-2@llama-3.2-1b-instruct
publishers/meta/models/llama3-2@llama-3.2-3b-instruct
publishers/meta/models/llama3-2@llama-3.2-90b-vision-instruct
- Gemma
publishers/google/models/gemma@gemma-1.1-2b-it
publishers/google/models/gemma@gemma-7b-it
publishers/google/models/gemma@gemma-1.1-7b-it
publishers/google/models/gemma@gemma-2b-it
publishers/google/models/gemma2@gemma-2-2b-it
publishers/google/models/gemma2@gemma-2-9b-it
publishers/google/models/gemma2@gemma-2-27b-it
- Mistral
publishers/mistral-ai/models/mistral@mistral-7b-instruct-v0.2
publishers/mistral-ai/models/mistral@mistral-7b-instruct-v0.3
publishers/mistral-ai/models/mistral@mistral-7b-instruct-v0.1
publishers/mistral-ai/models/mistral@mistral-nemo-instruct-2407
- Deepseek
publishers/deepseek-ai/models/deepseek-r1@deepseek-r1-distill-llama-8b