Executar tarefas de monitorização

Quando executa uma tarefa, a monitorização de modelos v2 consome dados dos conjuntos de dados de destino e de base, calcula métricas e, potencialmente, gera alertas. A monitorização de modelos v2 oferece tarefas a pedido para monitorização ad hoc ou tarefas agendadas para monitorização contínua. Independentemente da opção que escolher, cada tarefa é uma única execução em lote.

Para mais informações sobre a monitorização de objetivos e os modelos suportados, consulte os artigos Vista geral da monitorização de modelos v2 e Configure a monitorização de modelos.

Execute uma tarefa a pedido

Execute uma tarefa de monitorização única. Defina os conjuntos de dados de destino e de base, bem como as especificações de monitorização para os objetivos a monitorizar. A sua configuração substitui todas as predefinições, se definidas, que são definidas pelo monitor do modelo.

Consola

  1. Na Google Cloud consola, aceda à página Monitorização.

    Aceder a Monitorização

  2. Clique no monitor de modelo para o qual quer executar uma tarefa de monitorização.

  3. Na página de detalhes do monitor de modelos, clique em Executar agora para configurar a tarefa de monitorização.

  4. Configure a tarefa ou use as predefinições conforme definido na monitorização de modelos.

  5. Clique em Executar.

SDK 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
)

Agende execuções contínuas

Pode definir uma ou mais execuções de agendamento para uma monitorização de modelos. Para usar a monitorização contínua com especificações de tempo, o conjunto de dados tem de ter uma coluna de data/hora para que a Model Monitoring v2 possa obter os dados do intervalo de tempo especificado.

Consola

  1. Na Google Cloud consola, aceda à página Monitorização.

    Aceder a Monitorização

  2. Clique no monitor de modelos para o qual quer configurar a monitorização contínua.

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

  4. Defina os conjuntos de dados de destino e de base e, de seguida, clique em Continuar.

  5. Defina os objetivos a monitorizar, os respetivos limites e as definições de notificação quando é gerado um alerta.

  6. Clique em Continuar.

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

    1. Especifique um nome para o agendador.
    2. Para Hora de início, especifique quando o primeiro trabalho vai começar.
    3. Para a Frequência, use uma expressão cron para definir a frequência e, em seguida, defina o fuso horário.
    4. Para Termina, especifique quando o agendador termina.
  8. Clique em Criar.

SDK Python

Para definir a frequência das tarefas de monitorização, 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,
)

Pause ou retome um agendamento

Pode pausar e retomar um agendamento para ignorar ou interromper temporariamente as execuções de tarefas de monitorização.

Consola

  1. Na Google Cloud consola, aceda à página Monitorização.

    Aceder a Monitorização

  2. Clique no monitor de modelos que contém o horário a modificar.

  3. Na página de detalhes, aceda ao separador Programações.

  4. Clique na agenda a modificar.

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

SDK Python

# Pause schedule
my_model_monitor.pause_schedule(my_monitoring_schedule.name)

# Resume schedule
my_model_monitor.resume_schedule(my_monitoring_schedule.name)

Elimine um agendamento

Elimine um horário se não o estiver a usar. Os seus dados existentes permanecem, bem como todas as tarefas criadas anteriormente.

Consola

  1. Na Google Cloud consola, aceda à página Monitorização.

    Aceder a Monitorização

  2. Clique no monitor de modelos que contém o horário a modificar.

  3. Na página de detalhes, aceda ao separador Programações.

  4. Clique na agenda a modificar.

  5. Clique em Eliminar e, de novo, em Eliminar para confirmar.

SDK Python

my_model_monitor.delete_schedule(my_monitoring_schedule.name)

Analise os resultados da tarefa de monitorização

Pode usar a Google Cloud consola para visualizar as distribuições de dados de cada objetivo de monitorização e saber que alterações provocaram a deriva ao longo do tempo.

As visualizações mostram um histograma que compara a distribuição de dados entre os dados de destino e os dados de base. Com base no seu nível de tolerância, pode, por exemplo, decidir ajustar o pipeline de geração de funcionalidades ou voltar a formar o modelo.

Ver detalhes do trabalho

Veja detalhes sobre a execução de uma tarefa de monitorização, como uma lista de funcionalidades monitorizadas e que funcionalidades geraram um alerta.

Consola

  1. Na Google Cloud consola, aceda à página Monitorização.

    Aceder a Monitorização

  2. Clique no monitor de modelos que contém a tarefa a analisar.

  3. Na página Detalhes do monitor, clique no separador Execuções.

  4. Na lista de execuções, clique numa execução para ver os respetivos detalhes, como todas as funcionalidades incluídas numa execução.

    O exemplo seguinte mostra uma comparação da distribuição para a funcionalidade country de tarefas de previsão em lote. A Google Cloud consola também fornece detalhes sobre a comparação, consoante a métrica, como o número de valores únicos, o valor médio e o desvio padrão.

    Histogramas que mostram a distribuição de funcionalidades de exemplo para um conjunto de dados de destino e um conjunto de dados de base.

Veja os detalhes da funcionalidade

Veja informações sobre uma funcionalidade e uma lista de tarefas de monitorização que incluem a funcionalidade.

Consola

  1. Na Google Cloud consola, aceda à página Monitorização.

    Aceder a Monitorização

  2. Clique no monitor de modelos que contém as tarefas a analisar.

  3. No separador Vista geral, pode ver um resumo, que inclui tendências na deriva para todos os objetivos monitorizados, se tiver a monitorização contínua configurada. Também pode analisar objetivos específicos para ver detalhes como os nomes das funcionalidades monitorizadas e uma lista de execuções de monitorização.

    O exemplo seguinte mostra uma comparação da distribuição para a funcionalidade country. Após o histograma, pode ver que execuções geraram um alerta ou selecionar outra tarefa de monitorização que inclua dados de monitorização para esta funcionalidade.

    Histogramas que mostram a distribuição de dados de entrada de exemplo para um conjunto de dados de destino e um conjunto de dados de base.