모니터링

Data drift 개요

학습된 분석모델은 계속해서 유입된 데이터 및 시간이 지남에 따라 성능이 저하 되는데 Data drift를 모니터링 하면 모델 성능 문제를 감지할 수 있습니다.(ex. 날씨 온도, 센서 수치, 은행 금리등)

  1. Data drift 알고리즘
    Data drift를 계산하는 알고리즘이 여러 개 존재하지만 AccuInsight에서 KLD 알고리즘을 사용합니다.
    Kullback–Leibler divergence(KLD)은 두 확률분포의 차이를 계산하는 데에 사용하는 함수로, 어떤 이상적인 분포에 대해, 그 분포를 근사하는 다른 분포를 사용해 샘플링을 한다면 발생할 수 있는 정보 엔트로피 차이를 계산합니다.
  1. AccuInsight에서 Data drift 사용 및 주의 사항
    AccuInsight상에서 배포된 모델과 baseline/target dataset에 대해서 모니터링을 생성합니다. 선택한 feature 및 설정한 모니터링 주기에 따라 Data drift를 계산하며 기준치를 넘기게 되면 사용자에게 email 또는 slack으로 알람을 보냅니다. 이때, 모니터링을 생성할 때 주의할 점은 baseline 및 target dataset의 feature의 데이터 형식이 동일해야 하며 카테고리 데이터일 경우 인코딩 시켜줘야 합니다.(ex. 남자:0, 여자:1)

모델 모니터링 관리

Data drift 기반의 분석모델 성능 모니터링 기능을 제공합니다.

monitoring

  1. 상단에서 프로젝트 선택
  2. 관리 메뉴에서 모델 모니터링 선택
  3. 테이블 목록
필드설명
이름모델 모니터링의 이름
Baseline DatasetBaseline Dataset 이름
Deployed Model모니터링 대상 분석 모델
생성시간모니터링 생성 일자
마지막 수행 시간Data Drift cronjob 마지막 수행 시간
모니터링현재 분석모델의 성능 상태 표기
RUNNING: 모델 성능이 정상적으로 실행중인 상태
ALERT: 설정한 Threshold보다 마지막 모니터링 수치가 높아 Alert 뜬 상태
상태현재 Data Drift cronjob의 상태 표기
RUNNING: cronjob이 정상적으로 실행중인 상태
SUSPEND: cronjob이 멈춤 상태
ActionGitLab: 학습모델이 저장되어 있는 GitLab repository로 연결
시작: 중지중인 성는 모니터링 서비스의 재생성
중지: 성능 모니터링 리소스를 중지(삭제)
삭제 : 성능 모니터링 리소스 삭제 및 관련 정보 삭제

모델 모니터링 생성

monitoring

  1. 모델 모니터링 생성
    • 우측 상단의 ‘+ 신규 생성’ 버튼을 눌러 모니터링 생성
    • 모니터 이름 중복 생성 불가
    • 모니터 생성 입력 필드:
      • 모니터 이름: 모니터링 이름 입력
      • 배포저장소: 모니터링할 학습 모델 선택
      • Baseline Bucket: 기준 데이터의 Datacatalog상에 등록된 버킷
      • Target Bucket: 타깃 데이터의 Datacatalog상에 등록된 버킷
      • Baseline Dataset: 기준 데이터의 Datacatalog상에 등록된 데이터셋
      • Target Dataset: 타깃 데이터의 Datacatalog상에 등록된 데이터셋
      • Baseline Features: 모니터링할 기준 데이터의 피쳐
      • Target Features: 모니터링할 타깃 데이터의 피쳐
      • 모니터링 주기: 모니터링 주기 설정 (ex : 5 시간마다)
      • 알람 방법 (slack): slack webhook url 및 알람을 받을 channel 입력
      • 알람 방법 (email): 알람을 받을 email 주소 입력
      • threshold: datadrift의 알람 기준 설정

모델 모니터링 결과

monitoring

  1. 모델 모니터링 결과
    • Data Drift의 결과 추이 그래프 확인