Monitoramento de modelos da Vertex AI para predições em lote

Nesta página, descrevemos como configurar solicitações de job de previsão em lote para incluir a análise única de monitoramento de modelos. Para previsões em lote, o monitoramento de modelos é compatível com a detecção de desvios de atributos para atributos de entrada categóricos e numéricos.

Para criar um job de previsão em lote com a análise de desvio do Monitoramento de modelos, é necessário incluir na solicitação os dados de entrada de previsão em lote e os dados de treinamento originais do modelo. Só é possível adicionar análises do Model Monitoring ao criar novos jobs de previsão em lote.

Para mais informações sobre desvios, consulte Introdução ao monitoramento do modelo.

Para instruções sobre como configurar o monitoramento de modelos para previsões on-line (em tempo real), consulte Como usar o monitoramento de modelos.

Pré-requisitos

Para usar o monitoramento de modelos com previsões em lote, faça o seguinte:

  1. Ter um modelo disponível no Vertex AI Model Registry que seja um tipo tabular do AutoML ou de treinamento personalizado tabular.

  2. Faça o upload dos dados de treinamento para o Cloud Storage ou o BigQuery e consiga o link do URI para os dados.

  3. O monitoramento de modelos compara os dados de treinamento com a saída da previsão em lote. Use os formatos de arquivo compatíveis com os dados de treinamento e a saída da previsão em lote:

    Tipo de modelo Dados de treinamento Saída da previsão em lote
    Treinamento personalizado CSV, JSONL, BigQuery, TfRecord(tf.train.Example) JSONL
    AutoML tabular CSV, JSONL, BigQuery, TfRecord(tf.train.Example) CSV, JSONL, BigQuery, TfRecord(Protobuf.Value)
  4. Opcional: para modelos treinados de maneira personalizada, faça upload do esquema do modelo para o Cloud Storage. O monitoramento de modelos requer o esquema para calcular a distribuição do valor de referência para a detecção de desvios.

Solicitar uma predição em lote

É possível usar os métodos a seguir para adicionar configurações do Monitoramento de modelos a jobs de previsão em lote:

Console

Siga as instruções para fazer uma solicitação de previsão em batch com o monitoramento de modelos ativado:

API REST

Siga as instruções para fazer uma solicitação de previsão em batch usando a API REST:

Ao criar a solicitação de previsão em batch, adicione a seguinte configuração do monitoramento de modelos ao corpo JSON da solicitação:

"modelMonitoringConfig": {
 "alertConfig": {
   "emailAlertConfig": {
     "userEmails": "EMAIL_ADDRESS"
   },
  "notificationChannels": [NOTIFICATION_CHANNELS]
 },
 "objectiveConfigs": [
   {
     "trainingDataset": {
       "dataFormat": "csv",
       "gcsSource": {
         "uris": [
           "TRAINING_DATASET"
         ]
       }
     },
     "trainingPredictionSkewDetectionConfig": {
       "skewThresholds": {
         "FEATURE_1": {
           "value": VALUE_1
         },
         "FEATURE_2": {
           "value": VALUE_2
         }
       }
     }
   }
 ]
}

em que:

  • EMAIL_ADDRESS é o endereço de e-mail em que você quer receber alertas do monitoramento de modelos. Por exemplo, example@example.com.

  • NOTIFICATION_CHANNELS: uma lista de canais de notificação do Cloud Monitoring em que você quer receber alertas do monitoramento de modelos. Use os nomes dos recursos para os canais de notificação, que podem ser recuperados por meio da listagem dos canais de notificação em seu projeto. Por exemplo, "projects/my-project/notificationChannels/1355376463305411567", "projects/my-project/notificationChannels/1355376463305411568".

  • TRAINING_DATASET é o link para o conjunto de dados de treinamento armazenado no Cloud Storage.

    • Para usar um link para um conjunto de dados de treinamento do BigQuery, substitua o campo gcsSource pelo seguinte:
    "bigquerySource": {
        {
          "inputUri": "TRAINING_DATASET"
        }
     }
    
    • Para usar um link para um modelo do AutoML, substitua o campo gcsSource pelo seguinte:
    "dataset": "TRAINING_DATASET"
  • FEATURE_1:VALUE_1 e FEATURE_2:VALUE_2 é o limite de alerta para cada recurso que você quer monitorar. Por exemplo, se você especificar Age=0.4, o monitoramento de modelos registrará um alerta quando a distância estatística entre as distribuições de entrada e referência para o recurso Age exceder 0,4. Por padrão, todos os atributos categóricos e numéricos são monitorados com valores limite de 0,3.

Para mais informações sobre as configurações do monitoramento de modelos, consulte a Referência do job de monitoramento.

Python

Veja o exemplo de notebook para executar um job de previsão em batch com o monitoramento de modelos para um modelo tabular personalizado.

O monitoramento de modelos notifica você automaticamente sobre atualizações e alertas de jobs por e-mail.

Acessar métricas de desvio

Use os seguintes métodos para acessar as métricas de desvio dos jobs de previsão em lote:

Console (histograma)

Use o console do Google Cloud para acessar os histogramas de distribuição de recursos de cada recurso monitorado e saber quais mudanças levaram a um desvio ao longo do tempo:

  1. Acesse a página Previsões em lote:

    Acessar "Previsões em lote"

  2. Na página Previsões em lote clique no job de previsão em lote que você quer analisar.

  3. Clique na guia Alertas de monitoramento de modelos para ver uma lista de recursos de entrada do modelo, com informações pertinentes, como o limite de alerta para cada recurso.

  4. Para analisar um recurso, clique no nome dele. Uma página exibe os histogramas de distribuição de recursos desse recurso.

    A visualização da distribuição de dados como histogramas permite que você se concentre rapidamente nas alterações que ocorreram nos dados. Depois, ajuste o pipeline de geração de recursos ou treine novamente o modelo.

    Histogramas mostrando um exemplo de distribuição de dados de entrada e distribuição de dados de treinamento para detecção de distorções.

Console (arquivo JSON)

Use o console do Google Cloud para acessar as métricas no formato JSON:

  1. Acesse a página Previsões em lote:

    Acessar "Previsões em lote"

  2. Clique no nome do job de monitoramento de previsão em lote.

  3. Clique na guia Propriedades do monitoramento.

  4. Clique no link Diretório de saída do Monitoring, que direciona você para um bucket do Cloud Storage.

  5. Clique na pasta metrics/.

  6. Clique na pasta skew/.

  7. Clique no arquivo feature_skew.json, que direciona você à página Detalhes do objeto.

  8. Abra o arquivo JSON usando uma destas opções:

  • Clique em Fazer download e abra o arquivo em seu editor de texto local.

  • Use o caminho URI do gsutil para executar gcloud storage cat gsutil_URI no Cloud Shell ou no terminal local.

O arquivo feature_skew.json inclui um dicionário em que a chave é o nome do recurso e o valor é o desvio do recurso. Exemplo:

{
  "cnt_ad_reward": 0.670936,
  "cnt_challenge_a_friend": 0.737924,
  "cnt_completed_5_levels": 0.549467,
  "month": 0.293332,
  "operating_system": 0.05758,
  "user_pseudo_id": 0.1
}

Python

Consulte o notebook de exemplo para acessar as métricas de desvio de um modelo tabular personalizado após executar um job de previsão em lote com o Monitoramento de modelos.

Depurar falhas de monitoramento de previsão em lote

Se o job de monitoramento de previsão em lote falhar, você poderá encontrar registros de depuração no console do Google Cloud:

  1. Acesse a página Previsões em lote.

    Acesse "Previsões em lote"

  2. Clique no nome do job de monitoramento de predição em lote com falha.

  3. Clique na guia Propriedades do monitoramento.

  4. Clique no link Diretório de saída do Monitoring, que direciona você para um bucket do Cloud Storage.

  5. Clique na pasta logs/.

  6. Clique em um dos arquivos .INFO para acessar a página Detalhes do objeto.

  7. Abra o arquivo de registros usando uma destas opções:

    • Clique em Fazer download e abra o arquivo em seu editor de texto local.

    • Use o caminho URI do gsutil para executar gcloud storage cat gsutil_URI no Cloud Shell ou no terminal local.

Tutoriais de notebook

Saiba mais sobre como usar o monitoramento de modelos da Vertex AI para acessar visualizações e estatísticas de modelos com estes tutoriais completos.

AutoML

Personalizado

Modelos XGBoost

Atribuições de recursos da Vertex Explainable AI

Previsão em lote

Configuração de modelos tabulares

A seguir