Alguns dos modelos disponíveis no Model Garden podem ser implementados automaticamente no seu próprio Google Cloud projeto e usados para fornecer previsões em lote. As previsões em lote permitem-lhe usar um modelo de forma eficiente para processar vários comandos apenas de texto que não sejam sensíveis à latência.
Prepare a entrada
Antes de começar, prepare as entradas numa tabela do BigQuery ou como um ficheiro JSONL no Cloud Storage. A entrada para ambas as origens tem de seguir o formato JSON do esquema da API OpenAI, conforme mostrado no seguinte exemplo:
{"body": {"messages": [{"role": "user", "content": "Give me a recipe for banana bread"}], "max_tokens": 1000}}
BigQuery
A tabela de entrada do BigQuery tem de seguir o seguinte esquema:
Nome da coluna | Descrição |
---|---|
custom_id | Um ID para cada pedido de correspondência entre a entrada e a saída. |
método | O método de pedido. |
url | O ponto final do pedido. |
body(JSON) | O seu comando de entrada. |
- A tabela de entrada pode ter outras colunas, que são ignoradas pela tarefa em lote e passadas diretamente para a tabela de saída.
- As tarefas de previsão em lote reservam dois nomes de colunas para o resultado da previsão em lote: response(JSON) e id. Não use estas colunas na tabela de entrada.
- As colunas method e url são ignoradas e não incluídas na tabela de saída.
Cloud Storage
Para o Cloud Storage, o ficheiro de entrada tem de ser um ficheiro JSONL localizado num contentor do Cloud Storage.
Obtenha os recursos necessários para um modelo
Escolha um modelo e consulte os respetivos requisitos de recursos. Os recursos
necessários aparecem na resposta, no campo dedicatedResources
, que
especifica na configuração da tarefa de previsão em lote.
REST
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PUBLISHER: o publicador do modelo, por exemplo,
meta
,google
,mistral-ai
oudeepseek-ai
. - PUBLISHER_MODEL_ID: O ID do modelo do publicador para o modelo, por exemplo,
llama3_1
. - VERSION_ID: o ID da versão do publicador 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 o seu pedido, 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
Deve receber um código de estado de êxito (2xx) e uma resposta vazia.
Peça uma previsão em lote
Faça uma previsão em lote com base num modelo do Model Garden implementado por si, usando a entrada do BigQuery ou do Cloud Storage. Pode optar por gerar previsões de forma independente para uma tabela do BigQuery ou um ficheiro JSONL num contentor do Cloud Storage.
BigQuery
Especifique a tabela de entrada, o modelo e a localização de saída do BigQuery. A tarefa de previsão em lote e a sua tabela têm de estar na mesma região.
REST
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- LOCATION: uma região que suporta modelos implementados automaticamente do Model Garden.
- PROJECT_ID: o seu ID do projeto.
- MODEL: o nome do modelo a ajustar, por exemplo,
llama-3.1-8b-instruct
. - PUBLISHER: o publicador do modelo, por exemplo,
meta
,google
,mistral-ai
oudeepseek-ai
. - INPUT_URI: a tabela do BigQuery onde se encontra a entrada de previsão em lote, como
myproject.mydataset.input_table
. - OUTPUT_FORMAT: para gerar resultados numa
tabela do BigQuery, especifique
bigquery
. Para gerar resultados num contentor do Cloud Storage, especifiquejsonl
. - DESTINATION: para o BigQuery, especifique
bigqueryDestination
. Para o Cloud Storage, especifiquegcsDestination
. - OUTPUT_URI_FIELD_NAME:
Para o BigQuery, especifique
outputUri
. Para o Cloud Storage, especifiqueoutputUriPrefix
. - OUTPUT_URI: para o BigQuery, especifique a localização da tabela, como
myproject.mydataset.output_result
. Para o Cloud Storage, especifique a localização do contentor e da pasta, comogs://mybucket/path/to/outputfile
. - MACHINE_TYPE: define o conjunto de recursos a implementar para o seu modelo, por exemplo,
g2-standard-4
. - ACC_TYPE: especifica os aceleradores a adicionar à sua tarefa de previsão em lote para ajudar a melhorar o desempenho quando trabalha com cargas de trabalho intensivas, por exemplo,
NVIDIA_L4
. - ACC_COUNT: o número de aceleradores a usar no seu trabalho 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 do pedido:
'{ "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 o seu pedido, escolha uma destas opções:
curl
Guarde o corpo do pedido num ficheiro com o nome request.json
,
e execute o seguinte 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
Guarde o corpo do pedido num ficheiro com o nome request.json
,
e execute o seguinte 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
Deve receber uma resposta JSON semelhante à seguinte.
Cloud Storage
Especifique a localização do Cloud Storage, o modelo e a localização de saída do ficheiro JSONL.
REST
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- LOCATION: uma região que suporta modelos implementados automaticamente do Model Garden.
- PROJECT_ID: o seu ID do projeto.
- MODEL: o nome do modelo a ajustar, por exemplo,
llama-3.1-8b-instruct
. - PUBLISHER: o publicador do modelo, por exemplo,
meta
,google
,mistral-ai
oudeepseek-ai
. - INPUT_URI: a localização do Cloud Storage da entrada de previsão em lote JSONL, como
gs://bucketname/path/to/jsonl
. - OUTPUT_FORMAT: para gerar resultados numa
tabela do BigQuery, especifique
bigquery
. Para gerar resultados num contentor do Cloud Storage, especifiquejsonl
. - DESTINATION: para o BigQuery, especifique
bigqueryDestination
. Para o Cloud Storage, especifiquegcsDestination
. - OUTPUT_URI_FIELD_NAME:
Para o BigQuery, especifique
outputUri
. Para o Cloud Storage, especifiqueoutputUriPrefix
. - OUTPUT_URI: para o BigQuery, especifique a localização da tabela, como
myproject.mydataset.output_result
. Para o Cloud Storage, especifique a localização do contentor e da pasta, comogs://mybucket/path/to/outputfile
. - MACHINE_TYPE: define o conjunto de recursos a implementar para o seu modelo, por exemplo,
g2-standard-4
. - ACC_TYPE: especifica os aceleradores a adicionar à sua tarefa de previsão em lote para ajudar a melhorar o desempenho quando trabalha com cargas de trabalho intensivas, por exemplo,
NVIDIA_L4
. - ACC_COUNT: o número de aceleradores a usar no seu trabalho 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 do pedido:
'{ "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 o seu pedido, escolha uma destas opções:
curl
Guarde o corpo do pedido num ficheiro com o nome request.json
,
e execute o seguinte 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
Guarde o corpo do pedido num ficheiro com o nome request.json
,
e execute o seguinte 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
Deve receber uma resposta JSON semelhante à seguinte.
Obtenha o estado de uma tarefa de previsão em lote
Obtenha o estado da sua tarefa de previsão em lote para verificar se foi concluída com êxito. A duração da tarefa depende do número de itens introduzidos que enviou.
REST
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o seu ID do projeto.
- LOCATION: a região onde o seu trabalho em lote está localizado.
- JOB_ID: o ID da tarefa em lote que foi devolvido quando criou a tarefa.
Método HTTP e URL:
GET https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/batchPredictionJobs/JOB_ID
Para enviar o seu pedido, 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
Deve receber uma resposta JSON semelhante à seguinte.
Recuperar saída
Quando um trabalho de previsão em lote é concluído, obtenha o resultado da localização especificada:
- Para o BigQuery, o resultado encontra-se na coluna response(JSON) da tabela de destino do BigQuery.
- Para o Cloud Storage, o resultado é guardado como um ficheiro JSONL na localização do Cloud Storage de saída.
Modelos suportados
A Vertex AI suporta previsões em lote para os seguintes modelos implementados automaticamente:
- 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