Diferença entre previsões on-line e em lote
As previsões on-line são solicitações síncronas feitas em um endpoint de modelo. Use as previsões on-line ao fazer solicitações em resposta a uma entrada de aplicativo ou em situações que exigem inferência em tempo hábil.
As previsões em lote são solicitações assíncronas. Solicite previsões em lote diretamente do recurso do modelo sem precisar implantá-lo em um endpoint. Para dados tabulares, use previsões em lote quando não precisar de uma resposta imediata e quiser processar dados acumulados usando uma única solicitação.
Receber predições on-line
Implantar um modelo em um endpoint
Implante um modelo em um endpoint antes de ele ser usado para exibir previsões on-line. A implantação de um modelo associa recursos físicos ao modelo para que ele possa exibir previsões on-line com baixa latência.
É possível implantar mais de um modelo em um endpoint, além de ser possível implantar um modelo em mais de um endpoint. Para mais informações sobre opções e casos de uso de implantação de modelos, consulte Sobre a implantação de modelos.
Use um dos seguintes métodos para implantar um modelo:
Console do Google Cloud
No Console do Google Cloud, na seção "Vertex AI", acesse a página Modelos.
Clique no nome do modelo que você quer implantar para abrir a página de detalhes.
Selecione a guia Implantar e testar.
Caso seu modelo já esteja implantado em um endpoint, o endpoint estará listado na seção Implantar seu modelo.
Clique em Implantar no endpoint.
Para implantar o modelo em um novo endpoint, selecione
Criar novo endpoint e dê um nome a ele. Para implantar o modelo em um endpoint atual, selecione Adicionar a um endpoint atual e escolha o endpoint na lista suspensa.É possível adicionar mais de um modelo a um endpoint, além de ser possível adicionar um modelo a mais de um endpoint. Saiba mais.
Se você implantar o modelo em um endpoint atual que tem um ou mais modelos implantados, é necessário atualizar a porcentagem de divisão de tráfego do modelo que você está implantando, bem como a dos modelos já implantados para que todas as porcentagens totalizem 100%.
Selecione AutoML Tabular e configure da seguinte maneira:
Se você estiver implantando seu modelo em um novo endpoint, aceite 100 para a divisão de tráfego. Caso contrário, ajuste os valores de divisão de tráfego para todos os modelos no endpoint para que totalizem 100.
Insira o Número de nós de computação que você quer fornecer ao modelo.
Esse é o número de nós disponíveis para este modelo em todos os momentos. Você é cobrado pelos nós, mesmo sem o tráfego de previsão. Consulte a página de preços.
Saiba como alterar as configurações padrão para a geração de registros de previsão.
Somente modelos de classificação (opcional): na seção Explicabilidade, selecione Vertex Explainable AI. Aceite as configurações de visualização existentes ou escolha novos valores e clique em Concluído.
Gerar atribuições de recursos para este modelo para ativar aA implantação de modelos de classificação de imagens do AutoML com a Vertex Explainable AI configurada e a realização de previsões com explicações é opcional. A ativação da Vertex Explainable AI no momento da implantação gera custos adicionais com base na contagem de nós implantada e no tempo de implantação. Para mais informações, consulte Preços.
Clique em Concluído no modelo. Quando todas as porcentagens de Divisão de tráfego estiverem corretas, clique em Continuar.
A região onde seu modelo é implantado é exibida. Precisa ser a região em que você criou o modelo.
Clique em Implantar para implantar o modelo no endpoint.
API
Ao implantar um modelo usando a API Vertex AI, siga estas etapas:
- Crie um endpoint, se necessário.
- Receba o ID do endpoint.
- Implantar o modelo no endpoint.
Criar um endpoint
Pule a etapa abaixo se você estiver implantando um modelo em um endpoint existente.
gcloud
O exemplo a seguir usa o comando
gcloud ai endpoints create
:
gcloud ai endpoints create \
--region=LOCATION \
--display-name=ENDPOINT_NAME
Substitua:
- LOCATION_ID: a região em que você está usando a Vertex AI.
- ENDPOINT_NAME: o nome de exibição do endpoint.
A ferramenta CLI do Google Cloud pode levar alguns segundos para criar o endpoint.
REST
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- LOCATION_ID: sua região.
- PROJECT_ID: o ID do projeto.
- ENDPOINT_NAME: o nome de exibição do endpoint.
Método HTTP e URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/endpoints
Corpo JSON da solicitação:
{ "display_name": "ENDPOINT_NAME" }
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/endpoints/ENDPOINT_ID/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.aiplatform.v1.CreateEndpointOperationMetadata", "genericMetadata": { "createTime": "2020-11-05T17:45:42.812656Z", "updateTime": "2020-11-05T17:45:42.812656Z" } } }
"done": true
.
Java
Antes de testar esse exemplo, siga as instruções de configuração para Java no Guia de início rápido da Vertex AI sobre como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Vertex AI para Java.
Para autenticar na Vertex AI, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Node.js
Antes de testar essa amostra, siga as instruções de configuração para Node.js Guia de início rápido da Vertex AI: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Vertex AI para Node.js.
Para autenticar na Vertex AI, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Python
Para saber como instalar o SDK da Vertex AI para Python, consulte Instalar o SDK da Vertex AI para Python. Para mais informações, consulte a documentação de referência da API Python.
Recuperar o ID do endpoint
Você precisa do ID do endpoint para implantar o modelo.
gcloud
O exemplo a seguir usa o comando
gcloud ai endpoints list
:
gcloud ai endpoints list \
--region=LOCATION \
--filter=display_name=ENDPOINT_NAME
Substitua:
- LOCATION_ID: a região em que você está usando a Vertex AI.
- ENDPOINT_NAME: o nome de exibição do endpoint.
Anote o número que aparece na coluna ENDPOINT_ID
. Use esse ID na
etapa a seguir.
REST
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- LOCATION_ID: a região em que você está usando a Vertex AI.
- PROJECT_ID: o ID do projeto.
- ENDPOINT_NAME: o nome de exibição do endpoint.
Método HTTP e URL:
GET https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/endpoints?filter=display_name=ENDPOINT_NAME
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
{ "endpoints": [ { "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/endpoints/ENDPOINT_ID", "displayName": "ENDPOINT_NAME", "etag": "AMEw9yPz5pf4PwBHbRWOGh0PcAxUdjbdX2Jm3QO_amguy3DbZGP5Oi_YUKRywIE-BtLx", "createTime": "2020-04-17T18:31:11.585169Z", "updateTime": "2020-04-17T18:35:08.568959Z" } ] }
Implantar o modelo
Selecione a guia abaixo para seu idioma ou ambiente:
gcloud
Os exemplos a seguir usam o comando gcloud ai endpoints deploy-model
.
O exemplo a seguir implanta um Model
em um Endpoint
sem dividir o
tráfego entre vários recursos DeployedModel
.
Antes de usar os dados do comando abaixo, faça estas substituições:
- ENDPOINT_ID: o ID do endpoint.
- LOCATION_ID: a região em que você está usando a Vertex AI.
- MODEL_ID: o ID do modelo a ser implantado.
-
DEPLOYED_MODEL_NAME: um nome para
DeployedModel
. Também é possível usar o nome de exibição doModel
para oDeployedModel
. - MIN_REPLICA_COUNT: o número mínimo de nós para esta implantação. A contagem de nós pode ser aumentada ou reduzida conforme necessário pela carga de previsão, até o número máximo de nós e nunca menos que esse número.
-
MAX_REPLICA_COUNT: o número máximo de nós para esta implantação.
A contagem de nós pode ser aumentada ou reduzida conforme necessário pela carga de previsão,
até esse número de nós e nunca menos que o número mínimo de nós.
Se você omitir a sinalização
--max-replica-count
, o número máximo de nós será definido como o valor de--min-replica-count
.
Execute o comando gcloud ai endpoints deploy-model:
Linux, macOS ou Cloud Shell
gcloud ai endpoints deploy-model ENDPOINT_ID\ --region=LOCATION_ID \ --model=MODEL_ID \ --display-name=DEPLOYED_MODEL_NAME \ --min-replica-count=MIN_REPLICA_COUNT \ --max-replica-count=MAX_REPLICA_COUNT \ --traffic-split=0=100
Windows (PowerShell)
gcloud ai endpoints deploy-model ENDPOINT_ID` --region=LOCATION_ID ` --model=MODEL_ID ` --display-name=DEPLOYED_MODEL_NAME ` --min-replica-count=MIN_REPLICA_COUNT ` --max-replica-count=MAX_REPLICA_COUNT ` --traffic-split=0=100
Windows (cmd.exe)
gcloud ai endpoints deploy-model ENDPOINT_ID^ --region=LOCATION_ID ^ --model=MODEL_ID ^ --display-name=DEPLOYED_MODEL_NAME ^ --min-replica-count=MIN_REPLICA_COUNT ^ --max-replica-count=MAX_REPLICA_COUNT ^ --traffic-split=0=100
Divisão de tráfego
A sinalização --traffic-split=0=100
nos exemplos anteriores envia 100% do tráfego de
previsão que Endpoint
recebe para o novo DeployedModel
, que é
representado pelo ID temporário 0
. Se a Endpoint
já tiver outros
recursos DeployedModel
, será possível dividir o tráfego entre o novo
DeployedModel
e os antigos.
Por exemplo, para enviar 20% do tráfego para o novo DeployedModel
e 80% para um mais antigo,
execute o seguinte comando.
Antes de usar os dados do comando abaixo, faça estas substituições:
- OLD_DEPLOYED_MODEL_ID: o ID do
DeployedModel
existente.
Execute o comando gcloud ai endpoints deploy-model:
Linux, macOS ou Cloud Shell
gcloud ai endpoints deploy-model ENDPOINT_ID\ --region=LOCATION_ID \ --model=MODEL_ID \ --display-name=DEPLOYED_MODEL_NAME \ --min-replica-count=MIN_REPLICA_COUNT \ --max-replica-count=MAX_REPLICA_COUNT \ --traffic-split=0=20,OLD_DEPLOYED_MODEL_ID=80
Windows (PowerShell)
gcloud ai endpoints deploy-model ENDPOINT_ID` --region=LOCATION_ID ` --model=MODEL_ID ` --display-name=DEPLOYED_MODEL_NAME \ --min-replica-count=MIN_REPLICA_COUNT ` --max-replica-count=MAX_REPLICA_COUNT ` --traffic-split=0=20,OLD_DEPLOYED_MODEL_ID=80
Windows (cmd.exe)
gcloud ai endpoints deploy-model ENDPOINT_ID^ --region=LOCATION_ID ^ --model=MODEL_ID ^ --display-name=DEPLOYED_MODEL_NAME \ --min-replica-count=MIN_REPLICA_COUNT ^ --max-replica-count=MAX_REPLICA_COUNT ^ --traffic-split=0=20,OLD_DEPLOYED_MODEL_ID=80
REST
Implantar o modelo.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- LOCATION_ID: a região em que você está usando a Vertex AI.
- PROJECT_ID: o ID do projeto.
- ENDPOINT_ID: o ID do endpoint.
- MODEL_ID: o ID do modelo a ser implantado.
-
DEPLOYED_MODEL_NAME: um nome para
DeployedModel
. Também é possível usar o nome de exibição doModel
para oDeployedModel
. - MIN_REPLICA_COUNT: o número mínimo de nós para esta implantação. A contagem de nós pode ser aumentada ou reduzida conforme necessário pela carga de previsão, até o número máximo de nós e nunca menos que esse número.
- MAX_REPLICA_COUNT: o número máximo de nós para esta implantação. A contagem de nós pode ser aumentada ou reduzida conforme necessário pela carga de previsão, até esse número de nós e nunca menos que o número mínimo de nós.
- TRAFFIC_SPLIT_THIS_MODEL: a porcentagem do tráfego de previsão para esse endpoint que será roteada para o modelo que está sendo implantado com esta operação. O padrão é 100. A soma de todas as porcentagens de tráfego precisam totalizar 100. Saiba mais sobre as divisões de tráfego.
- DEPLOYED_MODEL_ID_N: opcional. Se outros modelos forem implantados nesse endpoint, será necessário atualizar as porcentagens de divisão de tráfego para que todas as porcentagens somem 100.
- TRAFFIC_SPLIT_MODEL_N: o valor da porcentagem da divisão de tráfego para a chave de ID do modelo implantado.
- PROJECT_NUMBER: o número do projeto gerado automaticamente
Método HTTP e URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/endpoints/ENDPOINT_ID:deployModel
Corpo JSON da solicitação:
{ "deployedModel": { "model": "projects/PROJECT_ID/locations/LOCATION_ID/models/MODEL_ID", "displayName": "DEPLOYED_MODEL_NAME", "automaticResources": { "minReplicaCount": MIN_REPLICA_COUNT, "maxReplicaCount": MAX_REPLICA_COUNT } }, "trafficSplit": { "0": TRAFFIC_SPLIT_THIS_MODEL, "DEPLOYED_MODEL_ID_1": TRAFFIC_SPLIT_MODEL_1, "DEPLOYED_MODEL_ID_2": TRAFFIC_SPLIT_MODEL_2 }, }
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
{ "name": "projects/PROJECT_ID/locations/LOCATION_ID/endpoints/ENDPOINT_ID/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.aiplatform.v1.DeployModelOperationMetadata", "genericMetadata": { "createTime": "2020-10-19T17:53:16.502088Z", "updateTime": "2020-10-19T17:53:16.502088Z" } } }
Java
Antes de testar esse exemplo, siga as instruções de configuração para Java no Guia de início rápido da Vertex AI sobre como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Vertex AI para Java.
Para autenticar na Vertex AI, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Node.js
Antes de testar essa amostra, siga as instruções de configuração para Node.js Guia de início rápido da Vertex AI: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Vertex AI para Node.js.
Para autenticar na Vertex AI, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Python
Para saber como instalar o SDK da Vertex AI para Python, consulte Instalar o SDK da Vertex AI para Python. Para mais informações, consulte a documentação de referência da API Python.
Saiba como alterar as configurações padrão para a geração de registros de previsão.
Receber status da operação
Algumas solicitações iniciam operações de longa duração que exigem tempo para serem concluídas. Essas solicitações retornam um nome de operação, que pode ser usado para ver o status da operação ou cancelá-la. A Vertex AI oferece métodos auxiliares para realizar chamadas em operações de longa duração. Para mais informações, consulte Como trabalhar com operações de longa duração.
Fazer uma previsão on-line usando o modelo implantado
Para fazer uma previsão on-line, envie um ou mais itens de teste para um modelo para análise, e o modelo retornará resultados baseados no objetivo do modelo. Para mais informações sobre resultados de previsão, consulte a página Interpretar resultados.
Console
Use o console do Google Cloud para solicitar uma previsão on-line. Seu modelo precisa ser implantado em um endpoint.
No Console do Google Cloud, na seção "Vertex AI", acesse a página Modelos.
Na lista de modelos, clique no nome do modelo para solicitar previsões.
Selecione a guia Implantar e testar.
Na seção Testar o modelo, adicione itens de teste para solicitar uma predição.
Os modelos do AutoML para objetivos de imagem exigem o upload de uma imagem para solicitar uma predição.
Para mais informações sobre a importância do recurso local, consulte Receber explicações.
Após a conclusão da previsão, a Vertex AI retorna os resultados no console.
API
Use a API Vertex AI para solicitar uma predição on-line. Seu modelo precisa ser implantado em um endpoint.
Os objetivos do tipo de dados de imagem incluem classificação e detecção de objetos.
Previsão do modelo de borda: quando você usa modelos de borda do AutoML Image para previsão, é necessário converter qualquer arquivo de previsão não JPEG em um arquivo JPEG antes de enviar a solicitação de previsão. Para ter um exemplo de função de pré-processamento em Python, consulte Cliente Python para repositório da API Google Cloud AutoML.
gcloud
Crie um arquivo chamado
request.json
com o seguinte conteúdo:{ "instances": [{ "content": "CONTENT" }], "parameters": { "confidenceThreshold": THRESHOLD_VALUE, "maxPredictions": MAX_PREDICTIONS } }
Substitua:
- CONTENT: o conteúdo da imagem codificada em base64.
- THRESHOLD_VALUE opcional: o modelo retorna apenas previsões que têm pontuações de confiança com pelo menos esse valor.
- MAX_PREDICTIONS opcional: o modelo retorna até esse número de previsões com as maiores pontuações de confiança.
Execute este comando:
gcloud ai endpoints predict ENDPOINT_ID \ --region=LOCATION_ID \ --json-request=request.json
Substitua:
- ENDPOINT_ID: o ID do endpoint.
- LOCATION_ID: a região em que você está usando a Vertex AI.
REST
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- LOCATION_ID: região em que o endpoint está localizado. Por exemplo,
us-central1
. - PROJECT_ID: o ID do projeto.
- ENDPOINT_ID: o ID do endpoint.
- CONTENT: o conteúdo da imagem codificada em base64.
- THRESHOLD_VALUE opcional: o modelo retorna apenas previsões que têm pontuações de confiança com pelo menos esse valor.
- MAX_PREDICTIONS opcional: o modelo retorna até esse número de previsões com as maiores pontuações de confiança.
Método HTTP e URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/endpoints/ENDPOINT_ID:predict
Corpo JSON da solicitação:
{ "instances": [{ "content": "CONTENT" }], "parameters": { "confidenceThreshold": THRESHOLD_VALUE, "maxPredictions": MAX_PREDICTIONS } }
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 a seguir:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/endpoints/ENDPOINT_ID:predict"
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_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/endpoints/ENDPOINT_ID:predict" | Select-Object -Expand Content
Você receberá uma resposta JSON semelhante a esta:
{ "predictions": [ { "confidences": [ 0.975873291, 0.972160876, 0.879488528, 0.866532683, 0.686478078 ], "displayNames": [ "Salad", "Salad", "Tomato", "Tomato", "Salad" ], "ids": [ "7517774415476555776", "7517774415476555776", "2906088397049167872", "2906088397049167872", "7517774415476555776" ], "bboxes": [ [ 0.0869686604, 0.977020741, 0.395135701, 1 ], [ 0, 0.488701463, 0.00157663226, 0.512249 ], [ 0.361617863, 0.509664357, 0.772928834, 0.914706349 ], [ 0.310678929, 0.45781514, 0.565507233, 0.711237729 ], [ 0.584359646, 1, 0.00116168708, 0.130817384 ] ] } ], "deployedModelId": "3860570043075002368" }
Java
Antes de testar esse exemplo, siga as instruções de configuração para Java no Guia de início rápido da Vertex AI sobre como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Vertex AI para Java.
Para autenticar na Vertex AI, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Node.js
Antes de testar essa amostra, siga as instruções de configuração para Node.js Guia de início rápido da Vertex AI: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Vertex AI para Node.js.
Para autenticar na Vertex AI, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Python
Para saber como instalar o SDK da Vertex AI para Python, consulte Instalar o SDK da Vertex AI para Python. Para mais informações, consulte a documentação de referência da API Python.
Receber predições em lote
Para fazer uma previsão em lote, especifique uma origem de entrada e um formato de saída em que a Vertex AI armazena os resultados das previsões. As previsões em lote para o tipo de modelo de imagem do AutoML exigem um arquivo de linhas JSON de entrada e o nome de um bucket do Cloud Storage para armazenar a saída.
Requisitos de dados de entrada
A entrada de solicitações em lote especifica os itens que serão enviados ao seu modelo para previsão. Em modelos de detecção de objetos de imagem, é possível usar um arquivo de Linhas em JSON para especificar uma lista de imagens para fazer previsões e, em seguida, armazenar esse arquivo em um bucket do Cloud Storage. No exemplo a seguir, há uma única linha em um arquivo de Linhas em JSON de entrada:
{"content": "gs://sourcebucket/datasets/images/source_image.jpg", "mimeType": "image/jpeg"}
Solicitar uma predição em lote
Para solicitações de previsão em lote, use o Console do Google Cloud ou a API Vertex AI. Dependendo do número de itens de entrada enviados, uma tarefa de previsão em lote pode levar algum tempo para ser concluída.
Console do Google Cloud
Use o console do Google Cloud para solicitar uma previsão em lote.
No console do Google Cloud, na seção Vertex AI, acesse a página Previsões em lote.
Clique em Criar para abrir a janela Nova previsão em lote e conclua as seguintes etapas:
- Insira um nome para a previsão em lote.
- Em Nome do modelo, selecione o nome do modelo a ser usado para a previsão em lote.
- Em Caminho de origem, especifique o local do Cloud Storage em que o arquivo de entrada das linhas JSON está localizado.
- Em Caminho de destino, especifique um local do Cloud Storage em que os resultados da predição em lote são armazenados. O formato da saída é determinado pelo objetivo do modelo. Os modelos do AutoML para objetivos de imagem geram arquivos de Linhas em JSON.
API
Use a API Vertex AI para enviar solicitações de previsão em lote.
REST
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- LOCATION_ID: região em que o modelo está armazenado e o job de previsão em lote é executado. Por exemplo,
us-central1
. - PROJECT_ID: o ID do projeto
- BATCH_JOB_NAME: nome de exibição do job em lote
- MODEL_ID: o ID do modelo a ser usado para fazer previsões.
- THRESHOLD_VALUE (opcional): a Vertex AI retorna apenas
previsões que têm pontuações de confiança com pelo menos esse valor. O padrão é
0.0
. - MAX_PREDICTIONS (opcional): a Vertex AI retorna até esse
número de previsões, começando com as que têm as pontuações de confiança mais
altas. O padrão é
10
. - URI: URI do Cloud Storage em que o arquivo de linhas JSON de entrada está localizado.
- BUCKET: o bucket do Cloud Storage
- PROJECT_NUMBER: o número do projeto gerado automaticamente
Método HTTP e URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/batchPredictionJobs
Corpo JSON da solicitação:
{ "displayName": "BATCH_JOB_NAME", "model": "projects/PROJECT/locations/LOCATION/models/MODEL_ID", "modelParameters": { "confidenceThreshold": THRESHOLD_VALUE, "maxPredictions": MAX_PREDICTIONS }, "inputConfig": { "instancesFormat": "jsonl", "gcsSource": { "uris": ["URI"], }, }, "outputConfig": { "predictionsFormat": "jsonl", "gcsDestination": { "outputUriPrefix": "OUTPUT_BUCKET", }, }, }
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 a seguir:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/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_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/batchPredictionJobs" | Select-Object -Expand Content
Você receberá uma resposta JSON semelhante a esta:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/batchPredictionJobs/BATCH_JOB_ID", "displayName": "BATCH_JOB_NAME", "model": "projects/PROJECT_ID/locations/LOCATION_ID/models/MODEL_ID", "inputConfig": { "instancesFormat": "jsonl", "gcsSource": { "uris": [ "CONTENT" ] } }, "outputConfig": { "predictionsFormat": "jsonl", "gcsDestination": { "outputUriPrefix": "BUCKET" } }, "state": "JOB_STATE_PENDING", "createTime": "2020-05-30T02:58:44.341643Z", "updateTime": "2020-05-30T02:58:44.341643Z", "modelDisplayName": "MODEL_NAME", "modelObjective": "MODEL_OBJECTIVE" }
É possível pesquisar o status da tarefa em lote usando BATCH_JOB_ID até que o job state
seja JOB_STATE_SUCCEEDED
.
Python
Para saber como instalar o SDK da Vertex AI para Python, consulte Instalar o SDK da Vertex AI para Python. Para mais informações, consulte a documentação de referência da API Python.
Recuperar resultados de predição em lote
A Vertex AI envia a saída da previsão em lote para o destino especificado.
Quando uma tarefa de predição em lote é concluída, a saída da previsão é armazenada no bucket do Cloud Storage especificado na solicitação.
Exemplo de resultados de previsão em lote
Veja a seguir um exemplo de previsão em lote de um modelo de detecção de objetos de imagem.
Importante : as caixas delimitadoras são especificadas como:
"bboxes": [
[xMin, xMax, yMin, yMax],
...]
xMin
e xMax
são os valores mínimo e máximo de x e
yMin
e yMax
são os valores mínimo e máximo de y, respectivamente.
{ "instance": {"content": "gs://bucket/image.jpg", "mimeType": "image/jpeg"}, "prediction": { "ids": [1, 2], "displayNames": ["cat", "dog"], "bboxes": [ [0.1, 0.2, 0.3, 0.4], [0.2, 0.3, 0.4, 0.5] ], "confidences": [0.7, 0.5] } }