Azure Machine Learning 모델 모니터링

모델 모니터링은 기계 학습 엔드투엔드 수명 주기의 마지막 단계입니다. 이 단계에서는 프로덕션 환경에서 모델 성능을 추적하고 데이터 과학과 운영 관점에서 성능을 분석합니다. 이 문서에서는 Azure Machine Learning의 모델 모니터링, 모니터링할 수 있는 신호와 메트릭, 모델 모니터링을 위한 권장 사례에 대해 알아봅니다.

기존 소프트웨어 시스템과 달리 기계 학습 시스템의 동작은 코드에 지정된 규칙에 따라서만 결정되는 것이 아니라, 데이터로부터도 학습됩니다. 데이터 배포 변경 내용, 학습 제공 오차, 데이터 품질 문제, 환경의 변화 및 소비자 동작 변경으로 인해 모델이 부실해질 수 있습니다.

모델이 부실해지면 성능이 저하되어 비즈니스 가치를 추가하지 못하거나 규제가 심한 환경에서 심각한 규정 준수 문제가 발생할 수 있습니다. 따라서 모델 성능을 모니터링해야 합니다.

Azure Machine Learning 모델 모니터링 작동 방식

모니터링을 구현하기 위해 Azure Machine Learning은 스트림된 프로덕션 유추 데이터와 참조 데이터에 대한 통계 계산을 수행하여 모니터링 신호를 획득합니다. 프로덕션 유추 데이터는 프로덕션 과정에서 수집된 모델의 입력 및 출력 데이터를 말합니다. 참조 데이터는 과거 학습 데이터, 유효성 검사 데이터 또는 참값 데이터일 수 있습니다.

Important

Azure Machine Learning 모델 모니터링은 데이터 저장소에 포함된 데이터에 액세스하기 위해 SAS(공유 액세스 서명) 토큰과 같은 자격 증명 기반 인증만 지원합니다. 데이터 저장소 및 인증 모드에 대해 자세히 알아보려면 데이터 관리를 참조하세요.

각 모니터링 신호에는 하나 이상의 메트릭이 있습니다. Azure Machine Learning 또는 Azure Event Grid를 통해 모델 또는 데이터 변칙에 대한 경고를 트리거하기 위해 이러한 메트릭에 대한 임계값을 설정할 수 있습니다. 경고를 받으면 Azure Machine Learning 스튜디오를 사용하여 모니터링 신호를 분석하거나 문제를 해결하여 지속적으로 모델 품질을 개선할 수 있습니다.

Azure Machine Learning은 프로덕션 모델의 기본 제공 모니터링 신호(예: 데이터 드리프트)를 처리하기 위해 다음 프로세스를 사용합니다.

  • 먼저, Azure Machine Learning은 학습 데이터의 기능 값에 대한 통계적 배포를 계산합니다. 이 배포는 기능의 기준 배포입니다.

  • 다음으로, Azure Machine Learning은 프로덕션에서 기록된 기능의 최신 값의 통계적 배포를 계산합니다.

  • 그런 다음 Azure Machine Learning은 통계적 테스트를 수행하거나 거리 점수를 계산하여 프로덕션 환경에서 기능의 최신 값의 배포를 기준 배포와 비교합니다. 테스트 통계 또는 두 배포 간의 거리 점수가 사용자 지정 임계값을 초과하면 Azure Machine Learning은 변칙을 식별하고 사용자에게 알립니다.

모델 모니터링 설정 및 사용

Azure Machine Learning에서 모델 모니터링을 사용하려면:

먼저, 프로덕션 유추 데이터 수집을 사용하도록 설정합니다.

  • Azure Machine Learning 온라인 엔드포인트에 모델을 배포하는 경우 Azure Machine Learning 모델 데이터 수집을 사용하여 프로덕션 유추 데이터 수집을 사용하도록 설정할 수 있습니다.
  • Azure Machine Learning 외부 또는 Azure Machine Learning 일괄 처리 엔드포인트에 모델을 배포하는 경우 Azure Machine Learning 모델 모니터링에 사용할 수 있는 프로덕션 유추 데이터를 수집해야 합니다.

다음으로, 모델 모니터링을 설정합니다. Azure Machine Learning SDK/CLI 2.0 또는 스튜디오 UI를 사용하여 모델 모니터링을 간편하게 설정할 수 있습니다. 설정 중에 선호하는 모니터링 신호를 지정하고 신호마다 메트릭과 임계값을 사용자 지정할 수 있습니다.

마지막으로 모델 모니터링 결과를 보고 분석합니다. 모델 모니터링을 설정하면 Azure Machine Learning이 지정된 일정에 따라 모니터링 작업을 실행합니다. 각 실행은 선택된 모든 모니터링 신호에 대한 메트릭을 컴퓨팅 및 평가하고 지정된 임계값이 초과되면 경고 알림을 트리거합니다. Azure Machine Learning 작업 영역의 경고 알림 링크를 따라가면 모니터링 결과를 보고 분석할 수 있습니다.

모델 모니터링 기능

Azure Machine Learning은 지속적인 모델 모니터링을 위해 다음과 같은 기능을 제공합니다.

  • 데이터 드리프트, 예측 드리프트, 데이터 품질, 기능 특성 드리프트 및 모델 성능을 포함한 표 형식 데이터에 대한 기본 제공 모니터링 신호
  • 온라인 엔드포인트에 대한 기본 제공 모델 모니터링 모델을 온라인 엔드포인트에서 프로덕션에 배포하는 경우 Azure Machine Learning은 프로덕션 유추 데이터를 자동으로 수집하여 지속적인 모니터링에 사용합니다.
  • 하나의 모니터링 설정에서 다중 모니터링 신호가 가능합니다. 각 모니터링 신호에 대해 원하는 메트릭과 경고 임계값을 선택할 수 있습니다.
  • 비교를 위한 참조 데이터 선택 모니터링 신호의 경우, 학습 데이터 또는 최근 과거 프로덕션 데이터를 사용하여 참조 데이터를 설정할 수 있습니다.
  • 데이터 드리프트 또는 데이터 품질 모니터링을 위한 상위 N개 기능 학습 데이터를 참조 데이터로 사용하는 경우 기능 중요도에 따라 계층화된 데이터 드리프트 또는 데이터 품질 신호를 정의할 수 있습니다.
  • 사용자 지정 모니터링 신호를 정의하는 기능 기본 제공된 모니터링 신호가 비즈니스 시나리오에 적합하지 않은 경우 사용자 지정 모니터링 신호 구성 요소를 사용하여 자체 모니터링 신호를 정의할 수 있습니다.
  • 모든 소스에서 프로덕션 유추 데이터를 사용할 수 있는 유연성. Azure Machine Learning 외부에 모델을 배포하거나 일괄 처리 엔드포인트에 모델을 배포하는 경우에도 Azure Machine Learning 모델 모니터링에 사용할 프로덕션 유추 데이터를 직접 수집할 수 있습니다.

모델 모니터링을 위한 모범 사례

각 기계 학습 모델과 사용 사례는 고유합니다. 따라서 모델 모니터링은 상황마다 고유합니다. 다음 목록은 모델 모니터링을 위해 권장되는 모범 사례를 설명합니다.

  • 모델을 프로덕션에 배포한 직후 모델 모니터링을 시작합니다.
  • 모델에 익숙한 데이터 과학자와 협력하여 모니터링을 설정합니다. 모델과 해당 사용 사례에 대한 인사이트를 갖춘 데이터 과학자는 모니터링 신호와 메트릭을 권장하고 각 메트릭에 대한 적절한 경고 임계값을 설정하여 경고 피로를 방지할 수 있습니다.
  • 설정에 여러 개의 모니터링 신호를 포함합니다. 여러 모니터링 신호를 통해 광범위하고 세부적인 모니터링 보기를 모두 가져올 수 있습니다. 예를 들어, 데이터 드리프트와 기능 특성 드리프트 신호를 결합하여 모델 성능 문제에 대한 조기 경고를 가져올 수 있습니다.
  • 적절한 참조 데이터를 비교 기준으로 사용합니다. 비교 기준으로 사용되는 참조 데이터의 경우 최근 과거 프로덕션 데이터나 학습 또는 유효성 검사 데이터와 같은 과거 데이터를 사용할 수 있습니다. 더욱 의미 있는 비교를 위해 학습 데이터를 데이터 드리프트와 데이터 품질에 대한 비교 기준으로 사용합니다. 예측 드리프트를 위한 비교 기준으로 유효성 검사 데이터를 사용합니다.
  • 시간 경과에 따른 프로덕션 데이터 증가에 따라 모니터링 빈도를 지정합니다. 예를 들어, 운영 모델에 매일 트래픽이 많고 일별 데이터 누적이 충분한 경우 모니터링 빈도를 매일로 설정합니다. 그렇지 않은 경우 시간 경과에 따른 프로덕션 데이터의 증가에 따라 주간 또는 월간 모니터링 빈도를 고려합니다.
  • 상위 N개 기능 또는 기능 하위 집합을 모니터링합니다. 학습 데이터를 비교 기준으로 사용하는 경우 상위 N개 중요한 기능에 대한 데이터 드리프트 모니터링이나 데이터 품질 모니터링을 간편하게 구성할 수 있습니다. 기능이 많은 모델의 경우 해당 기능의 하위 집합을 모니터링하여 계산 비용을 줄이고 노이즈를 모니터링하는 것이 좋습니다.
  • 참값 데이터에 액세스할 수 있으면 모델 성능 신호를 사용합니다. 기계 학습 애플리케이션을 기반으로 참값 데이터라고도 하는 기준 데이터에 액세스할 수 있는 경우 모델 성능 신호를 사용하여 참값 데이터와 모델 출력을 비교합니다. 이러한 비교는 실제 환경에서의 모델 성능에 대한 객관적인 관점을 제공합니다.

조회 기간 크기 및 오프셋

조회 기간 크기는 ISO 8601 형식의 프로덕션 또는 참조 데이터 창에 대한 시간 기간입니다. 조회 기간 오프셋은 모니터링 실행 날짜로부터 데이터 윈도우의 종료를 오프셋하는 기간입니다.

예를 들어, 프로덕션 중인 모델의 모니터가 1월 31일 오후 3시 15분(UTC)에 실행되도록 설정되어 있습니다. P7D 또는 7일의 프로덕션 데이터 조회 기간 크기와 P0D 또는 0일의 데이터 조회 기간 오프셋은 모니터가 실행되는 시간인 1월 24일 오후 3시 15분(UTC)부터 1월 31일 오후 3시 15분(UTC)까지 프로덕션 데이터를 모니터가 사용한다는 것을 의미합니다.

참조 데이터의 경우 조회 기간 오프셋을 P7D 또는 7일로 설정하면 참조 데이터 기간은 프로덕션 데이터 기간이 시작되기 직전에 종료되므로 겹치지 않습니다. 그런 다음, 참조 데이터 조회 기간 크기를 원하는 만큼 크게 설정할 수 있습니다.

예를 들어, 참조 데이터 조회 기간 크기를 P24D 또는 24일로 설정하면 참조 데이터 창에는 1월 1일 오후 3시 15분(UTC)부터 1월 24일 오후 3시 15분(UTC)까지의 데이터가 포함됩니다. 아래 다이어그램은 이 예를 보여 줍니다.

참조 및 프로덕션 데이터의 전환 확인 기간 크기와 오프셋을 보여 주는 다이어그램.

어떤 경우에는 운영 데이터의 조회 기간 오프셋을 0일보다 큰 숫자로 설정하는 것이 유용할 수 있습니다. 예를 들어 모니터링이 매주 월요일 오후 3시 15분(UTC)에 실행되도록 예약되어 있지만 모니터링 실행에서 주말의 데이터를 사용하지 않으려면 조회 기간 크기P5D 또는 5일과 조회 기간 오프셋 P2D 또는 2일을 사용하면 됩니다. 그러면 데이터 기간은 이전 월요일 오후 3시 15분(UTC)에 시작되어 금요일 오후 3시 15분(UTC)에 종료됩니다.

실제로 참조 데이터 기간과 프로덕션 데이터 기간이 겹치지 않도록 해야 합니다. 다음 그림과 같이 참조 데이터 조회 기간 오프셋(P10D 또는 이 예에서 10일)이 프로덕션 데이터 조회 기간 크기와 해당 조회 기간 오프셋의 합계(이 예에서 총 7일)보다 크거나 같도록 하여 기간이 겹치지 않도록 할 수 있습니다.

중복되지 않는 참조 데이터와 프로덕션 데이터 창을 보여 주는 다이어그램.

Azure Machine Learning 모델 모니터링을 사용하면 조회 기간 크기와 조회 기간 오프셋에 스마트 기본값을 사용하거나 필요에 맞게 사용자 지정할 수 있습니다. 롤링 기간과 고정 기간 모두 지원됩니다.

조회 기간 크기 사용자 지정

프로덕션 데이터와 참조 데이터 모두에 대한 조회 기간 크기를 유연하게 선택할 수 있습니다.

  • 기본적으로 프로덕션 데이터의 조회 기간 크기는 모니터링 빈도입니다. 모니터링 작업이 실행되기 전 모니터링 기간에 수집된 모든 데이터는 조회 기간에 포함됩니다. production_data.data_window.lookback_window_size 속성을 사용하여 프로덕션 데이터의 롤링 데이터 기간을 조정할 수 있습니다.

  • 기본적으로 참조 데이터의 조회 기간은 전체 데이터 세트입니다. reference_data.data_window.lookback_window_size 속성을 사용하여 참조 조회 기간 크기를 조정할 수 있습니다.

참조 데이터에 대한 고정 데이터 창을 지정하려면 속성 reference_data.data_window.window_start_datereference_data.data_window.window_end_date를 사용합니다.

조회 기간 오프셋 사용자 지정

프로덕션 데이터와 참조 데이터 모두에 대한 데이터 기간의 조회 기간 오프셋을 유연하게 선택할 수 있습니다. 오프셋을 사용하여 모니터링에서 사용하는 데이터를 세부적으로 제어할 수 있습니다. 오프셋은 롤링 데이터 창에만 적용됩니다.

  • 기본적으로 운영 데이터의 오프셋은 P0D 또는 0일입니다. production_data.data_window.lookback_window_offset 속성을 사용하여 이 오프셋을 수정할 수 있습니다.

  • 기본적으로 참조 데이터의 오프셋은 production_data.data_window.lookback_window_size의 2배입니다. 이 설정은 통계적으로 의미 있는 모니터링 결과에 충분한 참조 데이터가 있는지 확인합니다. reference_data.data_window.lookback_window_offset 속성을 사용하여 이 오프셋을 수정할 수 있습니다.

신호 및 메트릭 모니터링

Azure Machine Learning 모델 모니터링은 다음과 같은 모니터링 신호와 메트릭을 지원합니다.

Important

이 문서에 표시된 항목(미리 보기)은 현재 퍼블릭 미리 보기에서 확인할 수 있습니다. 미리 보기 버전은 서비스 수준 계약 없이 제공되며 프로덕션 워크로드에는 권장되지 않습니다. 특정 기능이 지원되지 않거나 기능이 제한될 수 있습니다. 자세한 내용은 Microsoft Azure Preview에 대한 추가 사용 약관을 참조하세요.

모니터링 신호 설명 메트릭 모델 작업 또는 지원되는 데이터 서식 프로덕션 데이터 참조 데이터
데이터 드리프트 모델의 학습 데이터나 최근 프로덕션 데이터와 배포를 비교하여 모델의 입력 데이터 배포의 변화를 추적합니다. Jensen-Shannon 거리, 모집단 안정성 지수, 정규화된 Wasserstein 거리, 2-표본 Kolmogorov-Smirnov 테스트, Pearson의 카이제곱 테스트 분류(표 형식 데이터), 회귀(표 형식 데이터) 프로덕션 데이터: 모델 입력 최근 과거 프로덕션 데이터 또는 학습 데이터
예측 드리프트 모델의 예측된 출력 배포의 변화의 유효성을 검사 데이터, 레이블이 지정된 테스트 데이터 또는 최근 프로덕션 데이터와 비교하여 추적합니다. Jensen-Shannon 거리, 모집단 안정성 지수, 정규화된 Wasserstein 거리, Chebyshev 거리, 2-표본 Kolmogorov-Smirnov 테스트, Pearson의 카이제곱 테스트 분류(표 형식 데이터), 회귀(표 형식 데이터) 프로덕션 데이터: 모델 출력 최근의 과거 프로덕션 데이터 또는 유효성 검사 데이터
데이터 품질 모델의 학습 데이터나 최근 프로덕션 데이터와 비교하여 모델 입력의 데이터 무결성을 추적합니다. 데이터 품질 검사에는 null 값, 형식 불일치 또는 값 범위를 벗어난 검사가 포함됩니다. Null 값 비율, 데이터 형식 오류 비율, 범위를 벗어난 비율 분류(표 형식 데이터), 회귀(표 형식 데이터) 프로덕션 데이터: 모델 입력 최근 과거 프로덕션 데이터 또는 학습 데이터
기능 특성 드리프트(미리 보기) 예측에 대한 기능의 기여도를 기준으로 하며 기능 중요도라고도 합니다. 기능 특성 드리프트는 프로덕션 중의 기능 중요도를 학습 중의 기능 중요도와 비교하여 추적합니다. 정규화 할인 누적 이득 분류(표 형식 데이터), 회귀(표 형식 데이터) 프로덕션 데이터: 모델 입력 및 출력 학습 데이터(필수)
모델 성능: 분류(미리 보기) 수집된 참값 데이터와 비교하여 프로덕션에서 모델 출력의 목표 성능을 추적합니다. 정확도, 정밀도 및 재현율 분류(표 형식 데이터) 프로덕션 데이터: 모델 출력 참값 데이터(필수)
모델 성능: 회귀(미리 보기) 수집된 참값 데이터와 비교하여 프로덕션에서 모델 출력의 목표 성능을 추적합니다. MAE(평균 절대 오차), MSE(평균 제곱 오차), RMSE(제곱 평균 오차) 회귀(표 형식 데이터) 프로덕션 데이터: 모델 출력 참값 데이터(필수)
생성형 AI: 세대 안전 및 품질(미리 보기) GPT 지원 메트릭을 사용하여 생성형 AI 애플리케이션의 안전과 품질을 평가합니다. 근거성, 관련성, 유창성, 유사성, 일관성 질문과 대답 프롬프트, 완료, 컨텍스트 및 주석 템플릿 해당 없음

데이터 품질 메트릭

데이터 품질 모니터링 신호는 다음 세 가지 메트릭을 계산하여 모델의 입력 데이터 무결성을 추적합니다.

  • null 값 비율
  • 데이터 형식 오류율
  • 범위 초과율

Azure Machine Learning 모델 모니터링은 null 값 비율, 데이터 형식 오류율 및 범위 초과율 계산에 최대 0.00001 정밀도를 지원합니다.

null 값 비율

null 값 비율은 각 기능에 대한 모델 입력의 null 값 비율입니다. 예를 들어 모니터링 프로덕션 데이터 기간에 행이 100개 포함되어 있고 기능 temperature 값이 해당 행 중 10개에 대해 null인 경우 temperature의 null 값 비율은 10%입니다.

Azure Machine Learning은 모든 기능 데이터 형식에 대한 null 값 비율을 계산할 수 있습니다.

데이터 형식 오류율

각 모니터링 실행 중에 Azure Machine Learning 모델 모니터링은 참조 데이터의 각 기능에 대한 데이터 형식을 유추합니다. 데이터 형식 오류율은 현재 프로덕션 데이터 기간과 참조 데이터 간의 데이터 형식 차이 비율입니다.

예를 들어, temperature 기능에 대한 데이터 형식이 참조 데이터에서 IntegerType으로 유추되지만 프로덕션 데이터 창에서 temperature에 대한 100개 값 중 10개가 IntegerType이 아닌 문자열인 경우 temperature에 대한 데이터 형식 오류율은 10%입니다.

Azure Machine Learning은 PySpark에서 사용할 수 있는 ShortType, BooleanType, BinaryType, DoubleType, TimestampType, StringType, IntegerType, FloatType, ByteType, LongTypeDateType 데이터 형식의 데이터 형식 오류율을 계산할 수 있습니다. 해당 기능에 대한 데이터 형식이 이 목록에 없는 경우에도 Azure Machine Learning 모델 모니터링은 계속 실행되지만 해당 기능에 대한 데이터 형식 오류율은 계산되지 않습니다.

범위 초과율

각 모니터링 실행 중에 Azure Machine Learning 모델 모니터링은 참조 데이터의 각 기능에 대한 허용 범위나 설정을 결정합니다. 범위 초과율은 적정 범위를 벗어나거나 참조 데이터에 의해 결정된 각 기능의 값 비율입니다.

  • 숫자형 기능의 경우 적절한 범위는 참조 데이터 세트의 최솟값과 최댓값 사이의 숫자 간격(예: [0, 100])입니다.
  • 범주 기능(예: color)의 경우 적정 범위는 참조 데이터 세트에 포함된 모든 값 집합(예: [red, yellow, green])입니다.

예를 들어, 참조 데이터 세트의 모든 값이 범위 [37, 77] 내에 있는 수치형 temperature 기능이 있고, 프로덕션 데이터 창에서 temperature에 대한 100개 값 중 10개가 범위 [37, 77] 밖에 있는 경우, temperature에 대한 범위를 벗어난 비율은 10%입니다.

Azure Machine Learning은 PySpark에서 사용 가능한 다음 데이터 형식에 대한 범위를 벗어난 비율 계산을 지원합니다. StringType, IntegerType, DoubleType, ByteType, LongTypeFloatType. 해당 기능에 대한 데이터 형식이 이 목록에 없는 경우에도 Azure Machine Learning 모델 모니터링은 계속 실행되지만 해당 기능에 대한 범위를 벗어난 비율은 계산되지 않습니다.

Azure Event Grid와 모델 모니터링 통합

Azure Machine Learning 모델 모니터링 실행에서 생성된 이벤트를 사용하여 Azure Event Grid를 통해 이벤트 기반 애플리케이션, 프로세스 또는 CI/CD(연속 통합/지속적인 업데이트) 워크플로를 설정할 수 있습니다. 모델 모니터링에서 드리프트, 데이터 품질 문제 또는 모델 성능 저하를 감지하면 Event Grid를 사용하여 이러한 이벤트를 추적하고 프로그래밍 방식으로 조치를 취할 수 있습니다.

예를 들어 프로덕션 환경에서 분류 모델 정확도가 특정 임계값 이하로 저하되면 Event Grid를 사용하여 수집된 참값 데이터를 사용하는 재학습 작업을 시작할 수 있습니다. Azure Machine Learning을 Event Grid와 통합하는 방법을 알아보려면 프로덕션에 배포된 모델의 성능 모니터링을 참조하세요.