Receber respostas num lote é uma forma eficiente de enviar um grande número de pedidos de incorporações não sensíveis à latência. Ao contrário das respostas online, em que está limitado a um pedido de entrada de cada vez, pode enviar um grande número de pedidos de GML num único pedido em lote. Tal como a previsão em lote é feita para dados tabulares no Vertex AI, determina a localização de saída, adiciona a entrada e as respostas são preenchidas de forma assíncrona na localização de saída.
Modelos de incorporações de texto que suportam previsões em lote
Todas as versões estáveis dos modelos de incorporação de texto suportam previsões em lote, com exceção das incorporações do Gemini (gemini-embedding-001). As versões estáveis são totalmente suportadas para ambientes de produção. Para ver a lista completa de modelos de incorporação, consulte o artigo Modelo de incorporaç��o e versões.
Prepare as suas entradas
A entrada para pedidos em lote é uma lista de comandos que podem ser armazenados numa tabela do BigQuery ou como um ficheiro JSON Lines (JSONL) no Cloud Storage. Cada pedido pode incluir até 30 000 comandos.
Exemplo de JSONL
Esta secção mostra exemplos de como formatar a entrada e a saída JSONL.
Exemplo de entrada JSONL
{"content":"Give a short description of a machine learning model:"}
{"content":"Best recipe for banana bread:"}
Exemplo de saída JSONL
{"instance":{"content":"Give..."},"predictions": [{"embeddings":{"statistics":{"token_count":8,"truncated":false},"values":[0.2,....]}}],"status":""}
{"instance":{"content":"Best..."},"predictions": [{"embeddings":{"statistics":{"token_count":3,"truncated":false},"values":[0.1,....]}}],"status":""}
Exemplo do BigQuery
Esta secção mostra exemplos de como formatar a entrada e a saída do BigQuery.
Exemplo de entrada do BigQuery
Este exemplo mostra uma tabela do BigQuery com uma única coluna.
conteúdo |
---|
"Dá uma breve descrição de um modelo de aprendizagem automática:" |
"Melhor receita de pão de banana:" |
Exemplo de saída do BigQuery
conteúdo | previsões | estado |
---|---|---|
"Dá uma breve descrição de um modelo de aprendizagem automática:" |
'[{"embeddings": { "statistics":{"token_count":8,"truncated":false}, "Values":[0.1,....] } } ]' |
|
"Melhor receita de pão de banana:" |
'[{"embeddings": { "statistics":{"token_count":3,"truncated":false}, "Values":[0.2,....] } } ]' |
Peça uma resposta em lote
Consoante o número de itens de entrada que enviou, uma tarefa de geração em lote pode demorar algum tempo a ser concluída.
REST
Para testar um comando de texto através da API Vertex AI, envie um pedido POST 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 ID do seu projeto Google Cloud .
- BP_JOB_NAME: o nome da tarefa.
- INPUT_URI: o URI de origem da entrada. Este é um URI de tabela do BigQuery ou um URI de ficheiro JSONL no Cloud Storage.
- OUTPUT_URI: Output target URI.
Método HTTP e URL:
POST https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/batchPredictionJobs
Corpo JSON do pedido:
{ "name": "BP_JOB_NAME", "displayName": "BP_JOB_NAME", "model": "publishers/google/models/textembedding-gecko", "inputConfig": { "instancesFormat":"bigquery", "bigquerySource":{ "inputUri" : "INPUT_URI" } }, "outputConfig": { "predictionsFormat":"bigquery", "bigqueryDestination":{ "outputUri": "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://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/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://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/batchPredictionJobs" | Select-Object -Expand Content
Deve receber uma resposta JSON semelhante à seguinte:
{ "name": "projects/123456789012/locations/us-central1/batchPredictionJobs/1234567890123456789", "displayName": "BP_sample_publisher_BQ_20230712_134650", "model": "projects/{PROJECT_ID}/locations/us-central1/models/textembedding-gecko", "inputConfig": { "instancesFormat": "bigquery", "bigquerySource": { "inputUri": "bq://project_name.dataset_name.text_input" } }, "modelParameters": {}, "outputConfig": { "predictionsFormat": "bigquery", "bigqueryDestination": { "outputUri": "bq://project_name.llm_dataset.embedding_out_BP_sample_publisher_BQ_20230712_134650" } }, "state": "JOB_STATE_PENDING", "createTime": "2023-07-12T20:46:52.148717Z", "updateTime": "2023-07-12T20:46:52.148717Z", "labels": { "owner": "sample_owner", "product": "llm" }, "modelVersionId": "1", "modelMonitoringStatus": {} }
A resposta inclui um identificador exclusivo para a tarefa em lote.
Pode sondar o estado da tarefa em lote através do BATCH_JOB_ID até que a tarefa state
seja JOB_STATE_SUCCEEDED
. Por exemplo:
curl \ -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/batchPredictionJobs/BATCH_JOB_ID
Python
Instalação
pip install --upgrade google-genai
Para saber mais, consulte a documentação de referência do SDK.
Defina variáveis de ambiente para usar o SDK de IA generativa com o Vertex AI:
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=us-central1 export GOOGLE_GENAI_USE_VERTEXAI=True
Obtenha o resultado do lote
Quando uma tarefa de previsão em lote está concluída, o resultado é armazenado no contentor do Cloud Storage ou na tabela do BigQuery que especificou no seu pedido.
O que se segue?
- Saiba como obter incorporações de texto.