Executar jobs de monitoramento

Quando você executa um job, o monitoramento de modelos v2 consome os dados dos conjuntos de dados de destino e de referência, calcula métricas e potencialmente gera alertas. O monitoramento de modelos v2 oferece sob demanda jobs para monitoramento ad hoc ou agendamentos para monitoramento contínuo. Não seja qual for a opção escolhida, cada job é uma única execução em lote.

Para mais informações sobre objetivos de monitoramento e modelos compatíveis, consulte Visão geral do Model Monitoring v2 e Configurar o monitoramento de modelos.

Executar um job sob demanda

Executar um job de monitoramento único. Defina os conjuntos de dados de destino e de referência, bem como as especificações de monitoramento para os objetivos a serem monitorados. Suas modificações de configuração padrões, se definidos, que são definidos pelo monitor de modelo.

Console

  1. No Console do Google Cloud, acesse a página Monitoring.

    Acessar Monitoring

  2. Clique no monitor de modelos para executar um job de monitoramento.

  3. Na página de detalhes do monitor de modelos, clique em Executar agora para configurar de monitoramento.

  4. Configure o job ou use os padrões, conforme definido no monitor de modelos.

  5. Clique em Executar.

SDK do Python

from vertexai.resources.preview import ml_monitoring

FEATURE_THRESHOLDS = {
  "culmen_length_mm": 0.001,
  "body_mass_g": 0.002,
}

FEATURE_DRIFT_SPEC=ml_monitoring.spec.DataDriftSpec(
  categorical_metric_type="l_infinity",
  numeric_metric_type="jensen_shannon_divergence",
  default_categorical_alert_threshold=0.001,
  default_numeric_alert_threshold=0.002,
  feature_alert_thresholds=FEATURE_THRESHOLDS,
)

PREDICTION_OUTPUT_DRIFT_SPEC=ml_monitoring.spec.DataDriftSpec(
  categorical_metric_type="l_infinity",
  numeric_metric_type="jensen_shannon_divergence",
  default_categorical_alert_threshold=0.001,
  default_numeric_alert_threshold=0.001,
)

FEATURE_ATTRIBUTION_SPEC=ml_monitoring.spec.FeatureAttributionSpec(
  default_alert_threshold=0.0003,
  feature_alert_thresholds={"cnt_ad_reward":0.0001},
)

EXPLANATION_SPEC=ExplanationSpec(
  parameters=ExplanationParameters(
      {"sampled_shapley_attribution": {"path_count": 2}}
  ),
  metadata=ExplanationMetadata(
      inputs={
          "cnt_ad_reward": ExplanationMetadata.InputMetadata({
              "input_tensor_name": "cnt_ad_reward",
              "encoding": "IDENTITY",
              "modality": "numeric"
          }),
          ...
      },
      ...
  )
)

TRAINING_DATASET=ml_monitoring.spec.MonitoringInput(
  gcs_uri=TRAINING_URI,
  data_format="csv"
)

TARGET_DATASET=ml_monitoring.spec.MonitoringInput(
  table_uri=BIGQUERY_URI
)

model_monitoring_job=my_model_monitor.run(
  display_name=JOB_DISPLAY_NAME,
  baseline_dataset=TRAINING_DATASET,
  target_dataset=TARGET_DATASET,
  tabular_objective_spec=ml_monitoring.spec.TabularObjective(
      # Optional: set to monitor input feature drift.
      feature_drift_spec=FEATURE_DRIFT_SPEC,

      # Optional: set to monitor prediction output drift.
      prediction_output_drift_spec=PREDICTION_OUTPUT_DRIFT_SPEC,

      # Optional: set to monitor feature attribution drift.
      feature_attribution_spec=FEATURE_ATTRIBUTION_SPEC
  ),

  # Optional: additional configurations to override default values.
  explanation_config=EXPLANATION_SPEC,
  notification_spec=NOTIFICATION_SPEC,
  output_spec=OUTPUT_SPEC
)

Programar execuções contínuas

É possível definir uma ou mais execuções de programação para um monitor de modelo. Para usar a integração monitoramento com especificações de tempo, seu conjunto de dados deve ter uma coluna de carimbo de data/hora para que o monitoramento de modelos v2 recupere os dados do período especificado.

Console

  1. No Console do Google Cloud, acesse a página Monitoring.

    Acessar Monitoring

  2. Clique no monitor de modelo que você quer configurar o monitoramento contínuo consulta.

  3. Clique em Programar uma execução recorrente.

  4. Defina seus conjuntos de dados de destino e de referência e clique em Continuar.

  5. Defina os objetivos a serem monitorados, os limites deles e as configurações de notificação quando um alerta é gerado.

  6. Clique em Continuar.

  7. Configure uma programação para jobs recorrentes:

    1. Especifique um nome para o programador.
    2. Em Horário de início, especifique quando o primeiro job começará.
    3. Em Frequência, use uma expressão cron para definir a frequência. e depois defina o fuso horário.
    4. Em Término, especifique quando o programador termina.
  8. Clique em Criar.

SDK do Python

Para definir a frequência dos jobs de monitoramento, use uma expressão cron.

my_model_monitoring_schedule=my_model_monitor.create_schedule(
  display_name=SCHEDULE_DISPLAY_NAME,
  # Every day at 0:00(midnight)
  cron='"0 * * * *"',
  baseline_dataset=ml_monitoring.spec.MonitoringInput(
      endpoints=[ENDPOINT_RESOURCE_NAME],
      offset="24h",
      window="24h",
  ),
  target_dataset=ml_monitoring.spec.MonitoringInput(
      endpoints=[ENDPOINT_RESOURCE_NAME],
      window="24h"
  ),
  tabular_objective_spec=ml_monitoring.spec.TabularObjective(
      # Optional: set to monitor input feature drift.
      feature_drift_spec=FEATURE_DRIFT_SPEC,

      # Optional: set to monitor prediction output drift.
      prediction_output_drift_spec=PREDICTION_OUTPUT_DRIFT_SPEC,

      # Optional: set to monitor feature attribution drift.
      feature_attribution_spec=FEATURE_ATTRIBUTION_SPEC
  ),

  # Optional: additional configurations to override default values.
  explanation_config=EXPLANATION_SPEC,
  output_spec=OUTPUT_SPEC,
  notification_spec=NOTIFICATION_SPEC,
)

Pausar ou retomar uma programação

É possível pausar e retomar uma programação para pular ou interromper temporariamente o job de monitoramento é executado.

Console

  1. No Console do Google Cloud, acesse a página Monitoring.

    Acessar Monitoring

  2. Clique no monitor de modelo que contém a programação a ser modificada.

  3. Na página de detalhes, acesse a guia Programações.

  4. Clique na programação que você quer modificar.

  5. Clique em Pausar ou Retomar para pausar ou retomar a programação.

SDK do Python

# Pause schedule
my_model_monitor.pause_schedule(my_monitoring_schedule.name)

# Resume schedule
my_model_monitor.resume_schedule(my_monitoring_schedule.name)

Excluir uma programação

Exclua uma programação se ela não estiver sendo usada. Seus dados atuais permanecem tão bem jobs criados anteriormente.

Console

  1. No Console do Google Cloud, acesse a página Monitoring.

    Acessar Monitoring

  2. Clique no monitor de modelo que contém a programação a ser modificada.

  3. Na página de detalhes, acesse a guia Programações.

  4. Clique na programação que você quer modificar.

  5. Clique em Excluir e em Excluir novamente para confirmar.

SDK do Python

my_model_monitor.delete_schedule(my_monitoring_schedule.name)

Analisar os resultados do job de monitoramento

Use o console do Google Cloud para conferir as distribuições de dados dos cada objetivo de monitoramento e saber quais mudanças levaram ao desvio com o tempo.

As visualizações mostram um histograma comparando a distribuição de dados entre as de destino e os dados de referência. Com base no seu nível de tolerância, você pode por exemplo, ajuste o pipeline de geração de atributos ou treine novamente modelo do PyTorch.

Mais detalhes do job

Confira os detalhes da execução de um job de monitoramento, como uma lista de recursos monitorados e quais recursos geraram um alerta.

Console

  1. No Console do Google Cloud, acesse a página Monitoring.

    Acessar Monitoring

  2. Clique no monitor de modelo que contém o job a ser analisado.

  3. Na página Monitorar detalhes, clique na guia Execuções.

  4. Na lista de execuções, clique em uma para visualizar os detalhes dela, incluídos em uma execução.

    O exemplo a seguir mostra uma comparação de distribuição para o país dos jobs de previsão em lote. O console do Google Cloud também mostram detalhes sobre a comparação, dependendo da métrica, como número de valores únicos, valor médio e desvio padrão.

    Histogramas que mostram um exemplo de distribuição de atributos para um conjunto de dados de destino
e um conjunto de dados de referência.

Ver detalhes do atributo

Consulte informações sobre um recurso e uma lista de jobs de monitoramento que incluem o recurso.

Console

  1. No Console do Google Cloud, acesse a página Monitoring.

    Acessar Monitoring

  2. Clique no monitor de modelo que contém os jobs a serem analisados.

  3. Na guia Visão geral, é possível ver um resumo, que inclui as tendências desvio de todos os objetivos monitorados se houver monitoramento contínuo configurar. Você também pode se aprofundar em objetivos específicos para ver detalhes como os nomes dos recursos monitorados e uma lista de execuções de monitoramento.

    O exemplo a seguir mostra uma comparação de distribuição para o país. Após o histograma, é possível ver quais execuções geraram um alerta ou selecione outro job que inclua dados de monitoramento para esse .

    Histogramas que mostram um exemplo de distribuição de dados de entrada para um destino
conjunto de dados e um conjunto de dados de referência.