Alguns dos modelos disponíveis no Model Garden podem ser autoimplantados no seu próprio projeto do Google Cloud e usados para fornecer previsões em lote. Com as previsões em lote, você usa um modelo com eficiência para processar vários comandos somente de texto que não são sensíveis à latência.
Preparar entrada
Antes de começar, prepare suas entradas em uma tabela do BigQuery ou como um arquivo JSONL no Cloud Storage. A entrada para ambas as fontes precisa seguir o formato JSON do esquema da API OpenAI, conforme mostrado no exemplo a seguir:
{"body": {"messages": [{"role": "user", "content": "Give me a recipe for banana bread"}], "max_tokens": 1000}}
BigQuery
Sua tabela de entrada do BigQuery precisa obedecer ao seguinte esquema:
| Nome da coluna | Descrição |
|---|---|
| custom_id | Um ID para cada solicitação que corresponde à entrada e à saída. |
| método | O método da solicitação. |
| url | O endpoint de solicitação. |
| body(JSON) | Seu comando de entrada. |
- A tabela de entrada pode ter outras colunas, que são ignoradas pelo job em lote e transmitidas diretamente para a tabela de saída.
- Os jobs de previsão em lote reservam dois nomes de coluna para a saída da previsão em lote: response(JSON) e id. Não use essas colunas na tabela de entrada.
- As colunas method e url são descartadas e não incluídas na tabela de saída.
Cloud Storage
Para o Cloud Storage, o arquivo de entrada precisa ser um arquivo JSONL localizado em um bucket do Cloud Storage.
Receber os recursos necessários para um modelo
Escolha um modelo e consulte os requisitos de recursos dele. Os recursos necessários aparecem na resposta, no campo dedicatedResources, que você especifica na configuração do job de previsão em lote.
REST
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PUBLISHER: o editor do modelo, por exemplo,
meta,google,mistral-aioudeepseek-ai. - PUBLISHER_MODEL_ID: o ID do modelo do editor para o
modelo, por exemplo,
llama3_1. - VERSION_ID: o ID da versão do editor para o
modelo. Por exemplo,
llama-3.1-8b-instruct.
Método HTTP e URL:
GET "https://us-central1-aiplatform.googleapis.com/ui/publishers/PUBLISHER/models/PUBLISHER_MODEL_ID@VERSION_ID" | jq '.supportedActions.multiDeployVertex'
Para enviar a solicitação, escolha uma destas opções:
curl
Execute o seguinte 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
execute o seguinte 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
Você receberá um código de status bem-sucedido (2xx) e uma resposta vazia.
Solicitar uma predição em lote
Faça uma previsão em lote com um modelo do Model Garden autogerenciado usando entradas do BigQuery ou do Cloud Storage. É possível escolher de forma independente gerar previsões para uma tabela do BigQuery ou um arquivo JSONL em um bucket do Cloud Storage.
BigQuery
Especifique a tabela de entrada do BigQuery, o modelo e o local de saída. O job de previsão em lote e a tabela precisam estar na mesma região.
REST
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- LOCATION: uma região compatível com modelos autoimplantados do Model Garden.
- PROJECT_ID: o ID do projeto.
- MODEL: o nome do modelo a ser ajustado. Por exemplo,
llama-3.1-8b-instruct. - PUBLISHER: o editor do modelo, por exemplo,
meta,google,mistral-aioudeepseek-ai. - INPUT_URI: a tabela do BigQuery em que a entrada de previsão em lote está localizada, como
myproject.mydataset.input_table. - OUTPUT_FORMAT: para gerar uma saída em uma tabela do BigQuery, especifique
bigquery. Para gerar em um bucket do Cloud Storage, especifiquejsonl. - DESTINATION: para o BigQuery, especifique
bigqueryDestination. No Cloud Storage, especifiquegcsDestination. - OUTPUT_URI_FIELD_NAME:
Para o BigQuery, especifique
outputUri. Para o Cloud Storage, especifiqueoutputUriPrefix. - OUTPUT_URI: para o BigQuery, especifique o local da tabela, como
myproject.mydataset.output_result. Para o Cloud Storage, especifique o local do bucket e da pasta, comogs://mybucket/path/to/outputfile. - MACHINE_TYPE: define o conjunto de recursos a serem
implantados para seu modelo, por exemplo,
g2-standard-4. - ACC_TYPE: especifica os aceleradores a serem adicionados ao seu job de previsão em lote para melhorar o desempenho ao trabalhar com cargas de trabalho intensivas, por exemplo,
NVIDIA_L4. - ACC_COUNT: o número de aceleradores a serem usados no job de previsão em lote.
Método HTTP e URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/batchPredictionJobs
Corpo JSON da solicitação:
'{
"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,
},
}'
Para enviar a solicitação, escolha uma destas opções:
curl
Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando abaixo:
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
Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando a seguir:
$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
Você receberá uma resposta JSON semelhante a seguinte.
Cloud Storage
Especifique o local do Cloud Storage, o modelo e o local de saída do arquivo JSONL.
REST
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- LOCATION: uma região compatível com modelos autoimplantados do Model Garden.
- PROJECT_ID: o ID do projeto.
- MODEL: o nome do modelo a ser ajustado. Por exemplo,
llama-3.1-8b-instruct. - PUBLISHER: o editor do modelo, por exemplo,
meta,google,mistral-aioudeepseek-ai. - INPUT_URI: o local no Cloud Storage da entrada de previsão em lote JSONL, como
gs://bucketname/path/to/jsonl. - OUTPUT_FORMAT: para gerar uma saída em uma tabela do BigQuery, especifique
bigquery. Para gerar em um bucket do Cloud Storage, especifiquejsonl. - DESTINATION: para o BigQuery, especifique
bigqueryDestination. No Cloud Storage, especifiquegcsDestination. - OUTPUT_URI_FIELD_NAME:
Para o BigQuery, especifique
outputUri. Para o Cloud Storage, especifiqueoutputUriPrefix. - OUTPUT_URI: para o BigQuery, especifique o local da tabela, como
myproject.mydataset.output_result. Para o Cloud Storage, especifique o local do bucket e da pasta, comogs://mybucket/path/to/outputfile. - MACHINE_TYPE: define o conjunto de recursos a serem
implantados para seu modelo, por exemplo,
g2-standard-4. - ACC_TYPE: especifica os aceleradores a serem adicionados ao seu job de previsão em lote para melhorar o desempenho ao trabalhar com cargas de trabalho intensivas, por exemplo,
NVIDIA_L4. - ACC_COUNT: o número de aceleradores a serem usados no job de previsão em lote.
Método HTTP e URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/batchPredictionJobs
Corpo JSON da solicitação:
'{
"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,
},
}'
Para enviar a solicitação, escolha uma destas opções:
curl
Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando abaixo:
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
Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando a seguir:
$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
Você receberá uma resposta JSON semelhante a seguinte.
Conferir o status de um job de previsão em lote
Confira o estado do seu job de previsão em lote para verificar se ele foi concluído com sucesso. A duração do job depende do número de itens de entrada enviados.
REST
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PROJECT_ID: o ID do projeto.
- LOCATION: a região em que seu job em lote está localizado.
- JOB_ID: o ID do job em lote retornado quando você criou o job.
Método HTTP e URL:
GET https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/batchPredictionJobs/JOB_ID
Para enviar a solicitação, escolha uma destas opções:
curl
Execute o seguinte 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
execute o seguinte 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
Você receberá uma resposta JSON semelhante a seguinte.
Recuperar saída
Quando um job de predição em lote for concluído, recupere a saída do local especificado:
- No BigQuery, a saída está na coluna response(JSON) da tabela de destino do BigQuery.
- Para o Cloud Storage, a saída é salva como um arquivo JSONL no local de saída do Cloud Storage.
Modelos compatíveis
A Vertex AI é compatível com predições em lote para os seguintes modelos autodeployados:
- Llama
publishers/meta/models/llama3_1@llama-3.1-8b-instructpublishers/meta/models/llama3_1@llama-3.1-70b-instructpublishers/meta/models/llama3_1@llama-3.1-405b-instruct-fp8publishers/meta/models/llama3-2@llama-3.2-1b-instructpublishers/meta/models/llama3-2@llama-3.2-3b-instructpublishers/meta/models/llama3-2@llama-3.2-90b-vision-instruct
- Gemma
publishers/google/models/gemma@gemma-1.1-2b-itpublishers/google/models/gemma@gemma-7b-itpublishers/google/models/gemma@gemma-1.1-7b-itpublishers/google/models/gemma@gemma-2b-itpublishers/google/models/gemma2@gemma-2-2b-itpublishers/google/models/gemma2@gemma-2-9b-itpublishers/google/models/gemma2@gemma-2-27b-it
- Mistral
publishers/mistral-ai/models/mistral@mistral-7b-instruct-v0.2publishers/mistral-ai/models/mistral@mistral-7b-instruct-v0.3publishers/mistral-ai/models/mistral@mistral-7b-instruct-v0.1publishers/mistral-ai/models/mistral@mistral-nemo-instruct-2407
- Deepseek
publishers/deepseek-ai/models/deepseek-r1@deepseek-r1-distill-llama-8b