모니터링 작업 실행

작업을 실행하면 Model Monitoring v2에서 대상 및 기준 데이터 세트의 데이터를 사용하고 측정항목을 계산하며 잠재적으로 알림을 생성합니다. Model Monitoring v2는 임시 모니터링에 사용되는 주문형 작업이나 지속적 모니터링에 사용되는 예약 작업을 제공합니다. 선택한 옵션에 관계없이 각 작업은 단일 일괄 실행입니다.

모니터링 목표 및 지원되는 모델에 대한 자세한 내용은 Model Monitoring v2 개요모델 모니터링 설정을 참조하세요.

주문형 작업 실행

일회성 모니터링 작업을 실행합니다. 대상 및 기준 데이터 세트는 물론 모니터링할 목표의 모니터링 사양을 설정합니다. 이 구성은 모델 모니터에서 정의한 모든 기본값(설정된 경우)을 재정의합니다.

Console

  1. Google Cloud 콘솔에서 Monitoring 페이지로 이동합니다.

    Monitoring으로 이동

  2. 모니터링 작업을 실행할 모델 모니터를 클릭합니다.

  3. 모델 모니터 세부정보 페이지에서 지금 실행을 클릭하여 모니터링 작업을 구성합니다.

  4. 작업을 구성하거나 모델 모니터에 정의된 기본값을 사용합니다.

  5. 실행을 클릭합니다.

Python SDK

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_condition=0.0003,
  feature_alert_conditions={"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
)

지속적 실행 예약

모델 모니터에 예약 실행을 하나 이상 설정할 수 있습니다. 시간 사양이 있는 지속적 모니터링을 사용하려면 Model Monitoring v2에서 지정된 기간에서 데이터를 검색할 수 있도록 데이터 세트에 타임스탬프 열이 있어야 합니다.

Console

  1. Google Cloud 콘솔에서 Monitoring 페이지로 이동합니다.

    Monitoring으로 이동

  2. 지속적 모니터링을 구성할 모델 모니터를 클릭합니다.

  3. 반복 실행 예약을 클릭합니다.

  4. 대상 및 기준 데이터 세트를 설정한 후 계속을 클릭합니다.

  5. 알림이 생성될 때 모니터링할 목표, 임곗값, 알림 설정을 설정합니다.

  6. 계속을 클릭합니다.

  7. 반복 작업 일정을 구성합니다.

    1. 스케줄러 이름을 지정합니다.
    2. 시작 시간에 첫 번째 작업 시작 시간을 지정합니다.
    3. 빈도크론 표현식을 사용하여 빈도를 설정한 후 시간대를 설정합니다.
    4. 종료에 스케줄러 종료 시간을 지정합니다.
  8. 만들기를 클릭합니다.

Python SDK

모니터링 작업 빈도를 설정하려면 크론 표현식을 사용합니다.

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(
      feature_drift_spec=FEATURE_DRIFT_SPEC
  ),
  output_spec=OUTPUT_SPEC,
  notification_spec=NOTIFICATION_SPEC,
)

일정 일시중지 또는 재개

일정을 일시중지하고 재개하여 모니터링 작업 실행을 건너뛰거나 일시적으로 중지할 수 있습니다.

Console

  1. Google Cloud 콘솔에서 Monitoring 페이지로 이동합니다.

    Monitoring으로 이동

  2. 수정할 일정이 포함된 모델 모니터를 클릭합니다.

  3. 세부정보 페이지에서 일정 탭으로 이동합니다.

  4. 수정할 일정을 클릭합니다.

  5. 일시중지 또는 재개를 클릭하여 일정을 일시중지하거나 재개합니다.

Python SDK

# Pause schedule
my_model_monitor.pause_schedule(my_monitoring_schedule.name)

# Resume schedule
my_model_monitor.resume_schedule(my_monitoring_schedule.name)

일정 삭제

사용하지 않는 일정을 삭제합니다. 기존 데이터뿐만 아니라 이전에 만든 작업은 유지됩니다.

Console

  1. Google Cloud 콘솔에서 Monitoring 페이지로 이동합니다.

    Monitoring으로 이동

  2. 수정할 일정이 포함된 모델 모니터를 클릭합니다.

  3. 세부정보 페이지에서 일정 탭으로 이동합니다.

  4. 수정할 일정을 클릭합니다.

  5. 삭제를 클릭하고 삭제를 다시 클릭하여 확인합니다.

Python SDK

my_model_monitor.delete_schedule(my_monitoring_schedule.name)

모니터링 작업 결과 분석

Google Cloud 콘솔을 사용하여 각 모니터링 목표의 데이터 분포를 시각화하고 시간 경과에 따라 드리프트를 유발한 변경사항을 확인할 수 있습니다.

시각화에서는 대상 데이터와 기준 데이터 간의 데이터 분포를 비교하는 히스토그램을 보여줍니다. 예를 들어 허용 범위에 따라 특성 생성 파이프라인을 조정하거나 모델을 다시 학습시킬 수 있습니다.

작업 세부정보 보기

모니터링되는 특성 목록 및 알림을 생성한 특성과 같은 모니터링 작업 실행에 대한 세부정보를 봅니다.

Console

  1. Google Cloud 콘솔에서 Monitoring 페이지로 이동합니다.

    Monitoring으로 이동

  2. 분석할 작업이 포함된 모델 모니터를 클릭합니다.

  3. 모니터 세부정보 페이지에서 실행 탭을 클릭합니다.

  4. 실행 목록에서 실행을 클릭하여 실행에 포함된 모든 특성과 같은 세부정보를 봅니다.

    다음 예시에서는 일괄 예측 작업에서 국가 특성의 분포 비교를 보여줍니다. 또한 Google Cloud 콘솔에서는 측정항목에 따라 비교에 대한 세부정보(예: 고유 값 수, 평균 값, 표준 편차)를 제공합니다.

    대상 데이터 세트와 기준 데이터 세트의 특성 분포 예시를 보여주는 히스토그램

특성 세부정보 보기

특성에 대한 정보 및 특성을 포함하는 모니터링 작업 목록을 봅니다.

Console

  1. Google Cloud 콘솔에서 Monitoring 페이지로 이동합니다.

    Monitoring으로 이동

  2. 분석할 작업이 포함된 모델 모니터를 클릭합니다.

  3. 지속적 모니터링이 설정된 경우 개요 탭에서 모든 모니터링 목표의 드리프트 추세가 포함된 요약을 볼 수 있습니다. 또한 특정 목표를 자세히 살펴보고 모니터링된 특성 이름 및 모니터링 실행 목록과 같은 세부정보를 확인할 수 있습니다.

    다음 예시에서는 국가 특성의 분포 비교를 보여줍니다. 히스토그램 다음에 알림을 생성한 실행을 확인하거나 이 특성의 모니터링 데이터가 포함된 다른 모니터링 작업을 선택할 수 있습니다.

    대상 데이터 세트와 기준 데이터 세트의 입력 데이터 분포 예시를 보여주는 히스토그램