Use o registo de inferência online

Para modelos tabulares do AutoML, modelos de imagens do AutoML e modelos com treino personalizado, pode ativar ou desativar os registos de inferência durante a implementação do modelo ou a criação do ponto final. Esta página explica os diferentes tipos de registos de inferência disponíveis e como ativar ou desativar estes registos.

Tipos de registos de inferência

Existem vários tipos de registos de inferência que pode usar para obter informações dos seus nós de inferência:

  • O registo de contentores, que regista as streams stdout e stderr dos seus nós de inferência no Cloud Logging. Estes registos são necessários para a depuração.

    • No ponto final do serviço v1, o registo do contentor está ativado por predefinição. Pode desativá-lo quando implementar um modelo. Também pode desativar ou ativar o registo quando altera o modelo implementado.

    • No ponto final do serviço v1beta1, o registo do contentor está desativado por predefinição. Pode ativá-lo quando implementar um modelo. Também pode desativar ou ativar o registo quando altera o modelo implementado.

  • Registo de acesso, que regista informações como a data/hora e a latência de cada pedido ao Cloud Logging.

    Nos pontos finais de serviço v1 e v1beta1, o registo de acesso está desativado por predefinição. Pode ativar o registo de acesso quando implementa um modelo num ponto final.

  • Registo de pedidos-respostas, que regista uma amostra de pedidos e respostas de inferência online numa tabela do BigQuery.

    Pode ativar o registo de pedido-resposta criando ou corrigindo o ponto final de inferência.

Pode ativar ou desativar cada tipo de registo de forma independente.

Definições do registo de inferências

Pode ativar ou desativar os registos de inferência online quando cria um ponto final, implementa um modelo no ponto final ou altera um modelo implementado.

Para atualizar as definições dos registos de acesso, tem de anular a implementação do modelo e, em seguida, voltar a implementá-lo com as novas definições. Pode atualizar as definições dos registos de contentores sem voltar a implementar o modelo.

A inferência online a uma taxa elevada de consultas por segundo (CPS) pode gerar um número substancial de registos, que estão sujeitos aos preços do Cloud Logging. Para estimar os preços dos registos de inferência online, consulte o artigo Estimativa das suas faturas para registos. Para reduzir este custo, pode desativar o registo de inferências.

Ative e desative os registos de inferência

Os exemplos seguintes realçam onde modificar as predefinições das definições de registo:

Consola

Quando implementa um modelo num ponto final ou cria um novo ponto final na Google Cloud consola, pode especificar os tipos de registos de inferência a ativar no passo Registo. Selecione as caixas de verificação para ativar o Registo de acesso ou o Registo de contentores, ou desmarque as caixas de verificação para desativar estes registos.

Use a API REST para atualizar as definições dos registos de contentores.

Use a API REST para ativar o registo de pedidos e respostas. A consola e a CLI gcloud não suportam a configuração do registo de pedidos e respostas.Google Cloud

Para ver mais contexto sobre como implementar modelos, leia o artigo Implemente um modelo através da Google Cloud consola.

gcloud

Para alterar o comportamento predefinido dos registos ativados nos modelos implementados, adicione flags ao comando gcloud:

Ponto final do serviço v1

Corrida gcloud ai endpoints deploy-model:

gcloud ai endpoints deploy-model ENDPOINT_ID\
  --region=LOCATION \
  --model=MODEL_ID \
  --display-name=DEPLOYED_MODEL_NAME \
  --machine-type=MACHINE_TYPE \
  --accelerator=count=2,type=nvidia-tesla-t4 \
  --disable-container-logging \
  --enable-access-logging

Ponto final do serviço v1beta1

Corrida gcloud beta ai endpoints deploy-model:

gcloud beta ai endpoints deploy-model ENDPOINT_ID\
  --region=LOCATION \
  --model=MODEL_ID \
  --display-name=DEPLOYED_MODEL_NAME \
  --machine-type=MACHINE_TYPE \
  --accelerator=count=2,type=nvidia-tesla-t4 \
  --enable-access-logging \
  --enable-container-logging

Use a API REST para atualizar as definições dos registos de contentores.

Use a API REST para ativar o registo de pedidos e respostas. A consola e a CLI gcloud não suportam a configuração do registo de pedidos e respostas.Google Cloud

Para ver mais contexto sobre como implementar modelos, leia o artigo Implemente um modelo com a API Vertex AI.

REST

Para alterar o comportamento predefinido dos registos ativados nos modelos implementados, defina os campos relevantes como True:

Ponto final do serviço v1

Para desativar o registo do contentor, defina o campo disableContainerLogging como True quando chamar projects.locations.endpoints.deployModel ou projects.locations.endpoints.mutateDeployedModel.

Para ativar o registo de acesso, defina enableAccessLogging como True quando implementar o seu modelo com projects.locations.endpoints.deployModel.

Ponto final do serviço v1beta1

Para ativar o registo do contentor, defina o campo enableContainerLogging como True quando chamar projects.locations.endpoints.deployModel ou projects.locations.endpoints.mutateDeployedModel.

Para ativar o registo de acesso, defina enableAccessLogging como True quando implementar o seu modelo com projects.locations.endpoints.deployModel.

Para ver mais contexto sobre como implementar modelos, leia o artigo Implemente um modelo com a API Vertex AI.

Registo de pedidos e respostas

Só pode ativar o registo de pedidos/respostas quando cria um ponto final com projects.locations.endpoints.create ou aplica um patch a um ponto final existente com projects.locations.endpoints.patch.

O registo de pedidos-respostas é feito ao nível do ponto final, pelo que os pedidos enviados a quaisquer modelos implementados no mesmo ponto final são registados.

Quando cria ou corrige um ponto final, preencha o campo predictRequestResponseLoggingConfig do recurso Endpoint com as seguintes entradas:

  • enabled: definido como True para ativar o registo de pedidos/respostas.

  • samplingPercentage: um número entre 0 ou 1 que define a fração de pedidos a registar. Por exemplo, defina este valor como 1 para registar todos os pedidos ou como 0.1 para registar 10% dos pedidos.

  • BigQueryDestination: a tabela do BigQuery a usar para registo. Se especificar apenas um nome de projeto, é criado um novo conjunto de dados com o nome logging_ENDPOINT_DISPLAY_NAME_ENDPOINT_ID, em que ENDPOINT_DISPLAY_NAME segue as regras de nomenclatura do BigQuery. Se não especificar um nome da tabela, é criada uma nova tabela com o nome request_response_logging.

    O esquema da tabela do BigQuery deve ter o seguinte aspeto:

    Nome do campoTipoModo
    endpointSTRINGNULLABLE
    deployed_model_idSTRINGNULLABLE
    logging_timeTIMESTAMPNULLABLE
    request_idNUMERICNULLABLE
    request_payloadSTRINGREPETIDO
    response_payloadSTRINGREPETIDO

Segue-se um exemplo de configuração:

{
   "predict_request_response_logging_config": {
     "enabled": true,
     "sampling_rate": 0.5,
     "bigquery_destination": {
       "output_uri": "bq://PROJECT_ID.DATASET_NAME.TABLE_NAME"
     }
   }
}

Registo de pedidos-respostas de inferência para pontos finais dedicados e pontos finais do Private Service Connect

Para pontos finais dedicados e pontos finais do Private Service Connect, pode usar o registo de pedidos e respostas para registar pedidos e payloads de respostas com menos de 10 MB (os payloads maiores são ignorados automaticamente) para modelos do TensorFlow, PyTorch, sklearn e XGBoost.

O registo de pedidos/respostas só está disponível para os métodos predict e rawPredict.

Para ativar o registo de pedidos/respostas, preencha o campo predictRequestResponseLoggingConfig do recurso Endpoint com as seguintes entradas:

  • enabled: definido como True para ativar o registo de pedidos/respostas.

  • samplingRate: a fração de pedidos e respostas a registar. Definido para um número superior a 0 e inferior ou igual a 1. Por exemplo, defina este valor como 1 para registar todos os pedidos ou como 0.1 para registar 10% dos pedidos.

  • BigQueryDestination: a localização do BigQuery para o conteúdo de saída, como um URI para um projeto ou uma tabela.

Segue-se um exemplo de configuração para criar um ponto final dedicado com o registo de pedido-resposta ativado:

curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer `gcloud auth print-access-token`" https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/endpoints \
-d '{displayName: "ENDPOINT_NAME", \
     dedicatedEndpointEnabled: true, \
     predictRequestResponseLoggingConfig: { \
       enabled: true, \
       samplingRate: 1.0, \
       bigqueryDestination: { \
          outputUri:"bq://PROJECT_ID" \
       } \
     } \
   }'

Substitua o seguinte:

  • LOCATION_ID: a região onde está a usar o Vertex AI.
  • PROJECT_NUMBER: o número do projeto do seu Google Cloud projeto.
  • ENDPOINT_NAME: o nome a apresentar do ponto final.
  • PROJECT_ID: o ID do projeto do seu projeto Google Cloud .

Segue-se um exemplo de configuração para criar um ponto final do Private Service Connect com o registo de pedidos e respostas ativado:

curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer `gcloud auth print-access-token`" https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/endpoints \
-d '{displayName: "ENDPOINT_NAME", \
     privateServiceConnectConfig: { \
       enablePrivateServiceConnect: true, \
       projectAllowlist: ["ALLOWED_PROJECTS"] \
     }, \
     predictRequestResponseLoggingConfig: { \
       enabled: true, \
       samplingRate: 1.0, \
       bigqueryDestination: { \
          outputUri:"bq://PROJECT_ID" \
       } \
     } \
   }'

Substitua o seguinte:

  • ALLOWED_PROJECTS: uma lista separada por vírgulas de Google Cloud IDs de projetos, cada um entre aspas. Por exemplo, ["PROJECTID1", "PROJECTID2"]. Se um projeto não estiver incluído nesta lista, não vai poder enviar pedidos de inferência para o endpoint do Vertex AI a partir dele. Certifique-se de que inclui VERTEX_AI_PROJECT_ID nesta lista para poder chamar o ponto final a partir do mesmo projeto em que se encontra.

Registo de pedidos e respostas e monitorização de modelos v1

O registo de pedidos-respostas e a monitorização de modelos v1 usam a mesma tabela do BigQuery no back-end para registar os pedidos recebidos. Para evitar alterações inesperadas a esta tabela do BigQuery, as seguintes limitações são aplicadas quando usa ambas as funcionalidades em simultâneo:

  • Se um ponto final tiver a monitorização de modelos ativada, não pode ativar o registo de pedidos-respostas para o mesmo ponto final.

  • Se ativar o registo de pedidos-respostas e, em seguida, a monitorização de modelos no mesmo ponto final, não vai poder alterar a configuração do registo de pedidos-respostas.

O que se segue?