Diferença entre inferências on-line e em lote
As inferências on-line são solicitações síncronas feitas em um endpoint de modelo. Use as inferências 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 inferências em lote são solicitações assíncronas. Solicite inferências em lote diretamente do recurso do modelo sem precisar implantá-lo em um endpoint. Para dados de imagem, use inferências em lote quando não precisar de uma resposta imediata e quiser processar dados acumulados usando uma única solicitação.
Receber inferências on-line
Implantar um modelo em um endpoint
Implante um modelo em um endpoint antes de ele ser usado para exibir inferências on-line. A implantação de um modelo associa recursos físicos ao modelo para que ele possa exibir inferências 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:
Google Cloud console
No console 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 inferência. Consulte a página de preços.
Saiba como alterar as configurações padrão para a geração de registros de inferência.
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 inferências 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 esse exemplo, siga as instruções de configuração para Node.js 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 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 inferência, 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 inferência,
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 inferência, 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 inferência, 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 esse exemplo, siga as instruções de configuração para Node.js 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 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 inferência.
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 inferência on-line usando o modelo implantado
Para fazer uma inferência 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 os resultados de inferência, consulte a página Interpretar resultados.
Console
Use o console Google Cloud para solicitar uma inferência on-line. Seu modelo precisa ser implantado em um endpoint.
No console Google Cloud , na seção "Vertex AI", acesse a página Modelos.
Na lista de modelos, clique no nome do modelo para solicitar inferências.
Selecione a guia Implantar e testar.
Na seção Testar o modelo, adicione itens de teste para solicitar uma inferência.
Os modelos do AutoML para objetivos de imagem exigem o upload de uma imagem para solicitar uma inferência.
Para mais informações sobre a importância do recurso local, consulte Receber explicações.
Após a conclusão da inferência, a Vertex AI retorna os resultados no console.
API
Use a API Vertex AI para solicitar uma inferência 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.
Inferência do modelo de borda:quando você usa modelos de borda do AutoML Image para inferência, é necessário converter qualquer arquivo de inferência não JPEG em um arquivo JPEG antes de enviar a solicitação.
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 esse exemplo, siga as instruções de configuração para Node.js 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 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 inferências em lote
Para fazer uma solicitação de inferência em lote, especifique uma origem de entrada e um formato de saída em que a Vertex AI armazena os resultados da inferência. As inferências 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 inferência. 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 inferências e, em seguida, armazenar esse arquivo em um bucket do Cloud Storage. No exemplo a seguir, há uma única linha em um arquivo JSON Lines de entrada.
{"content": "gs://sourcebucket/datasets/images/source_image.jpg", "mimeType": "image/jpeg"}
Solicitar uma inferência em lote
Para solicitações de inferência em lote, use o console Google Cloud ou a API Vertex AI. Dependendo do número de itens de entrada enviados, uma tarefa de inferência em lote pode levar algum tempo para ser concluída.
Google Cloud console
Use o console Google Cloud para solicitar uma inferência 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 inferência em lote.
- Em Nome do modelo, selecione o nome do modelo a ser usado para esta inferência 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 inferência 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 inferência 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 inferência 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 inferências.
- THRESHOLD_VALUE (opcional): a Vertex AI retorna apenas
inferências 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 inferências, 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 inferência em lote
A Vertex AI envia a saída da inferência em lote para o destino especificado.
Quando uma tarefa de inferência em lote é concluída, a saída da inferência é armazenada no bucket do Cloud Storage especificado na solicitação.
Exemplo de resultados de inferência em lote
Veja a seguir um exemplo de resultados de inferência 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] } }