Previsões em lote

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, especifique jsonl.
  • DESTINATION: para o BigQuery, especifique bigqueryDestination. Para o Cloud Storage, especifique gcsDestination.
  • OUTPUT_URI_FIELD_NAME: Para o BigQuery, especifique outputUri. Para o Cloud Storage, especifique outputUriPrefix.
  • 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, como gs://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, especifique jsonl.
  • DESTINATION: para o BigQuery, especifique bigqueryDestination. Para o Cloud Storage, especifique gcsDestination.
  • OUTPUT_URI_FIELD_NAME: Para o BigQuery, especifique outputUri. Para o Cloud Storage, especifique outputUriPrefix.
  • 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, como gs://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.