As previsões em lote permitem-lhe enviar de forma eficiente vários comandos apenas de texto que não sejam sensíveis à latência para um modelo Llama. Em comparação com as previsões online, em que envia um comando de entrada para cada pedido, pode processar em lote um grande número de comandos de entrada num único pedido.
Não existem custos para as previsões em lote durante o período de pré-visualização.
Modelos Llama suportados
O Vertex AI suporta previsões em lote para os seguintes modelos Llama:
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:
{"custom_id": "test-request-0", "method": "POST", "url": "/v1/chat/completions", "body": {"model": "meta/llama-3.1-405b-instruct-maas", "messages": [{"role": "system", "content": "You are a chef."}, {"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.
Peça uma previsão em lote
Faça uma previsão em lote com base num modelo Llama 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
Depois de configurar o seu ambiente, pode usar a API REST para testar um comando de texto. O exemplo seguinte envia um pedido para o ponto final do modelo do publicador.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- LOCATION: uma região que suporta modelos Llama.
- PROJECT_ID: o seu ID do projeto.
- MODEL: o nome do modelo a ajustar.
- 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
.
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/meta/models/MODEL", "inputConfig": { "instancesFormat":"bigquery", "bigquerySource":{ "inputUri" : "INPUT_URI" } }, "outputConfig": { "predictionsFormat":"OUTPUT_FORMAT", "DESTINATION":{ "OUTPUT_URI_FIELD_NAME": "OUTPUT_URI" } } }'
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
Depois de configurar o seu ambiente, pode usar a API REST para testar um comando de texto. O exemplo seguinte envia um pedido para o ponto final do modelo do publicador.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- LOCATION: uma região que suporta modelos Llama.
- PROJECT_ID: o seu ID do projeto.
- MODEL: o nome do modelo a ajustar.
- 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
.
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/meta/models/MODEL", "inputConfig": { "instancesFormat":"jsonl", "gcsDestination":{ "uris" : "INPUT_URI" } }, "outputConfig": { "predictionsFormat":"OUTPUT_FORMAT", "DESTINATION":{ "OUTPUT_URI_FIELD_NAME": "OUTPUT_URI" } } }'
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
Depois de configurar o seu ambiente, pode usar a API REST para testar um comando de texto. O exemplo seguinte envia um pedido para o ponto final do modelo do publicador.
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 que especificou. Para o BigQuery, o resultado encontra-se na coluna response(JSON) da tabela de destino do BigQuery. Para o armazenamento na nuvem, o resultado é guardado como um ficheiro JSONL na localização do armazenamento na nuvem de saída.