특성 기여 분석 편향 및 드리프트 모니터링

Vertex Model Monitoring은 특성 기여 분석(특성 중요도 점수)을 지원하며 Vertex Explainable AI를 기반으로 범주형 및 숫자 입력 특성의 편향과 드리프트를 감지합니다.

이 페이지에서는 모델 모니터링의 다음 기능을 설명합니다.

  • Vertex AI 온라인 예측 엔드포인트에 배포된 모델의 특성 기여 분석 편향 또는 드리프트 감지
  • 특성 기여 분석 변경사항에 대한 알림
  • 특성 기여 분석 편향 또는 드리프트 시각화 및 분석

특성 기여 분석 기반 모니터링 소개

특성 기여 분석은 예측을 개별 입력의 특성에 기인하여 특정 입력에 대한 모델의 예측을 설명합니다. 기여 분석 점수는 모델의 예측에 대한 특성의 기여도에 비례합니다. 이러한 점수는 일반적으로 특성이 예측을 푸시하는 데 도움이 되는지 여부가 표시되어 있습니다. 모든 특성에 대한 기여 분석은 모델의 예측 점수를 합산해야 합니다.

특성 기여 분석 모니터링에는 시간 경과에 따른 프로덕션 단계의 모델 예측과 관련된 특성 기여 분석을 추적하는 작업이 포함됩니다. 핵심 아이디어는 특성 값 자체가 아니라 예측에 대한 특성의 기여도 변화를 추적하는 것입니다. 주요 특성의 기여 분석 점수 변화는 특성이 모델 예측의 정확성에 영향을 미칠 수 있는 방식으로 변경되었다는 강력한 신호일 수 있습니다.

특성 기여 분석을 모니터링하면 다음과 같은 다양한 이점이 있습니다.

  • 가장 중요한 특성을 추적할 수 있습니다. 특성의 기여 분석이 크게 변경되면 예측에 대한 특성의 기여도가 변경되었다는 의미입니다. 예측은 특성 기여도의 합과 동일하므로 일반적으로 가장 중요한 특성의 큰 기여 분석 드리프트는 모델 예측에서의 큰 드리프트를 나타냅니다.
  • 모든 특성 표현을 모니터링합니다. 특성 기여 분석은 기본 특성 유형에 관계없이 항상 숫자로 표현됩니다. 또한 더해질 수 있으므로 다차원 특성(예: 임베딩)에 대한 기여 분석은 여러 차원에 걸쳐 기여 분석을 더하여 단일 숫자 값으로 줄일 수 있습니다. 이렇게 하면 모든 특성 유형에 표준 일변량 드리프트 감지 방법을 사용할 수 있습니다.
  • 특성 상호작용을 설명합니다. 특성에 대한 기여 분석은 개별적으로 그리고 다른 특성과의 상호 작용을 통해 예측에 대한 기여를 설명합니다. 특성과 다른 특성의 상호작용이 변경되면 특성의 한계 분포는 동일하게 유지되더라도 특성의 기여 분석 분포가 변경됩니다.
  • 특성 그룹을 모니터링합니다. 기여 분석은 누적되므로 관련 특성에 기여 분석을 추가하여 특성 그룹의 기여 분석을 얻을 수 있습니다. 예를 들어 신용 대출 모델에서는 대출 유형과 관련된 모든 특성(예: '등급', '하위_등급', '목적')에 기여 분석을 결합하여 단일 대출 기여 분석을 얻을 수 있습니다. 그 다음 이 그룹 수준 기여 분석을 추적하여 특성 그룹의 변경사항을 모니터링할 수 있습니다.

특성 기여 분석 편향 또는 드리프트 감지 사용 설정

모델에 특성 기여 분석 드리프트 모니터링을 사용 설정하려면 다음 단계를 따르세요.

  1. 모델에 Explainable AI를 사용 설정하려면 모델에 대한 설명을 구성합니다. 특히 ExplanationParameters를 사용하여 모델을 배포해야 합니다.

  2. 모델이 설명에 대해 구성되면 다음을 수행하여 기여 분석 점수 모니터링을 사용 설정합니다.

    • ExplanationConfig에서 enableFeatureAttributes 필드를 true로 설정합니다.
    • (선택사항) 다음 중 하나를 제공하여 explanationBaseline을 지정합니다.

  3. 모니터링 유형을 편향 또는 드리프트로 설정합니다.

    모델의 특성 기여 분석 편향 감지를 사용 설정하려면 모델을 학습시키는 데 사용된 TrainingDataset 또는 ExplanationConfigexplanationBaseline을 제공해야 합니다.

    드리프트 감지를 사용 설정하기 위해 학습 데이터 또는 설명 기준이 필요하지 않습니다.

  4. 알림을 수신할 사용자 이메일 주소를 지정합니다. 필수 매개변수입니다.

  5. 예측 요청 샘플링 레이트를 설정합니다.

    비용 효율성을 위해 모델에 대한 프로덕션 입력의 하위 집합을 모니터링하는 것으로 충분합니다. 이 매개변수는 모니터링 목적으로 로깅 및 수신되는 수신 예측 요청의 비율을 제어합니다.

    이는 선택적 매개변수입니다. 사용자가 이 매개변수를 구성하지 않으면 모델 모니터링 서비스가 모든 예측 요청을 로깅합니다.

  6. 모니터링 빈도를 설정합니다.

    모니터링 빈도는 배포된 모델의 입력이 편향 또는 드리프트에 대해 모니터링되는 빈도를 결정합니다. 지정된 실행 빈도로 모니터링 작업이 실행되고 최근에 로깅된 입력에서 모니터링을 수행합니다. 각 모니터링 작업은 타임스탬프(마감 시간 — 모니터링 기간 — 마감 시간) 사이에 로깅된 입력을 모니터링합니다. 모니터링 빈도는 각 모니터링 실행에서 분석되는 로깅된 데이터의 기간 또는 모니터링 기간 크기를 결정합니다. Google Cloud Console에서 각 모니터링 작업이 실행되는 시간을 확인하고 각 작업에서 분석된 데이터를 시각화할 수 있습니다.

    최소 단위는 1시간입니다. Cloud SDK를 사용하여 모델 모니터링 작업을 설정하면 기본값이 24시간입니다.

  7. 모니터링할 기능 목록을 알림 임곗값과 함께 지정합니다.

    모니터링할 입력 특성과 각 특성의 알림 임곗값을 지정할 수 있습니다. 알림 임곗값에 따라 알림이 발생할 시점이 결정됩니다. 이러한 임계값은 입력 특성 분포와 해당 기준 사이에 계산된 통계 거리 측정항목을 나타냅니다. 각 모니터링 특성마다 별도의 임곗값을 구성할 수 있습니다.

    이 목록이 제공되지 않으면 기본적으로 모든 범주 및 숫자 특성이 모니터링되고 다음과 같은 기본 임곗값을 사용합니다.

    • 범주 특성: 0.3
    • 숫자 특성: 0.3

엔드포인트 범위의 구성 매개변수

온라인 예측 엔드포인트는 여러 모델을 호스팅할 수 있습니다. 엔드포인트에서 편향 또는 드리프트 감지를 사용 설정하면 해당 엔드포인트에서 호스팅되는 모든 모델에 다음과 같은 구성 매개변수가 공유됩니다.

  • 감지 유형
  • 모니터링 실행 빈도
  • 모니터링되는 입력 요청 비율

다른 구성 매개변수의 경우 모델마다 값을 다르게 설정할 수 있습니다.

Google Cloud Console에서 구성 매개변수를 볼 수 있습니다.

모델 모니터링 작업 만들기

편향 감지 또는 드리프트 감지를 설정하려면 Cloud SDK를 사용하여 모델 배포 모니터링 작업을 만들면 됩니다.

편향 감지

학습 데이터 세트를 사용할 수 있는 경우 gcloud beta ai model-monitoring-jobs create를 실행하여 엔드포인트 ENDPOINT_ID에서 배포된 모든 모델의 편향 감지로 모델 모니터링 작업을 만들 수 있습니다.

gcloud beta ai model-monitoring-jobs create \
    --project=PROJECT_ID \
    --region=REGION \
    --display-name=MONITORING_JOB_NAME \
    --emails=EMAIL_ADDRESS_1,EMAIL_ADDRESS_2 \
    --endpoint=ENDPOINT_ID \
    --feature-thresholds=FEATURE_1=THRESHOLD_1,FEATURE_2=THRESHOLD_2 \
    --feature-attribution-thresholds=FEATURE_1=THRESHOLD_1,FEATURE_2=THRESHOLD_2 \
    --prediction-sampling-rate=SAMPLING_RATE \
    --monitoring-frequency=MONITORING_FREQUENCY \
    --target-field=TARGET_FIELD \
    --bigquery-uri=BIGQUERY_URI

위의 명령어는 BigQuery에서 학습 데이터 세트를 사용하며 형식은 다음과 같습니다.

"bq://\.\.\"

Cloud Storage의 학습 데이터 세트를 CSV 또는 TFRecord 형식으로 지정할 수도 있습니다.

CSV를 사용하려면 bigquery-uri 플래그를 --data-format=csv --gcs-uris=gs://some_bucket/some_file로 바꿉니다.

TFRecord를 사용하려면 bigquery-uri 플래그를 --data-format=tf-record --gcs-uris=gs://some_bucket/some_file로 바꿉니다.

bigquery-uri 플래그를 --dataset=dataset-id로 바꿔 표 형식의 AutoML에 관리형 데이터 세트를 사용할 수도 있습니다.

드리프트 감지

학습 데이터 세트를 사용할 수 있는 경우 gcloud beta ai model-monitoring-jobs create을 실행하여 엔드포인트 ENDPOINT_ID에서 배포된 모든 모델의 드리프트 감지로 모델 모니터링 작업을 만들 수 있습니다.

gcloud beta ai model-monitoring-jobs create \
    --project=PROJECT_ID \
    --region=REGION \
    --display-name=MONITORING_JOB_NAME \
    --emails=EMAIL_ADDRESS_1,EMAIL_ADDRESS_2 \
    --endpoint=ENDPOINT_ID \
    --feature-thresholds=FEATURE_1=THRESHOLD_1,FEATURE_2=THRESHOLD_2 \
    --feature-attribution-thresholds=FEATURE_1=THRESHOLD_1,FEATURE_2=THRESHOLD_2 \
    --prediction-sampling-rate=SAMPLING_RATE \
    --monitoring-frequency=MONITORING_FREQUENCY

모델 모니터링 SDK 명령어

Cloud SDK를 사용하여 모델 모니터링 작업을 업데이트, 일시중지, 삭제할 수 있습니다.

예를 들어 us-central1 리전의 example 프로젝트에 있는 123 모델 모니터링 작업의 모니터링 빈도를 업데이트하려면 다음 안내를 따르세요.

gcloud beta ai model-monitoring-jobs update 123 \
    --monitoring-frequency=1 --project=example --region=us-central1

작업을 일시중지하려면 다음을 실행합니다.

gcloud beta ai model-monitoring-jobs pause 123 --project=example \
    --region=us-central1

작업을 재개하려면 다음을 실행합니다.

gcloud beta ai model-monitoring-jobs resume 123 --project=example \
    --region=us-central1

작업을 삭제하려면 다음을 실행합니다.

gcloud beta ai model-monitoring-jobs pause 123 --project=example \
    --region=us-central1

자세한 내용은 Cloud SDK의 model-monitoring-jobs를 참조하세요.

모델 모니터링 작업 API

편향 또는 드리프트 감지에 대한 자세한 내용은 Model Monitoring API 문서를 참조하세요.

이메일 알림

다음 이벤트의 경우 모델 모니터링은 모델 모니터링 작업이 생성될 때 지정된 각 이메일 주소로 이메일 알림을 보냅니다.

  • 알림 임곗값을 초과할 때마다
  • 편향 또는 드리프트 감지가 설정될 때마다
  • 기존 모델 모니터링 작업 구성이 업데이트될 때마다

이메일 알림에는 다음과 같은 관련 정보가 포함됩니다.

  • 모니터링 작업이 실행된 시간
  • 편향 또는 드리프트가 있는 특성의 이름
  • 알림 임곗값과 기여 분석 점수 거리

편향 및 드리프트 데이터 분석

Cloud Console을 사용하여 각 모니터링된 특성의 특성 기여 분석을 시각화하고 편향 또는 드리프트를 초래하는 변경사항을 확인할 수 있습니다. 특성 값 분포를 시계열 또는 히스토그램으로 볼 수 있습니다.

편향 감지를 위한 예측 데이터 특성 기여 분석 및 학습 데이터 특성 기여 분석 예시를 보여주는 스코어카드

안정적인 머신러닝 시스템에서 특성의 상대적 중요성은 일반적으로 시간이 지나면서 안정적으로 유지됩니다. 중요한 특성의 중요도가 떨어지면 해당 특성의 무언가가 변경되었다는 신호일 수 있습니다. 특성 중요도 드리프트 또는 편향의 일반적인 원인은 다음과 같습니다.

  • 데이터 소스 변경사항
  • 데이터 스키마 및 로깅 변경사항
  • 최종 사용자 조합 또는 행동의 변화(예를 들어 계절적 변화나 이상점 이벤트 때문임)
  • 다른 머신러닝 모델로 생성된 특성의 업스트림 변경 다음은 몇 가지 예시입니다.
    • 적용 범위(전체 또는 개별 분류 값) 증가 또는 감소를 초래하는 모델 업데이트
    • 모델의 성능 변화(특성의 의미 변경)
    • 전체 적용 범위가 감소할 수 있는 데이터 파이프라인 업데이트

다음 단계