Articleaws.amazon.com·2026년 7월 7일·0

Monitoring discriminative ML models using Amazon SageMaker AI with MLflow

Quick Summary

이 글은 분류·회귀용 판별형 머신러닝 모델의 성능 저하를 데이터 드리프트와 모델 품질 변화로 나누어 설명하고, SageMaker AI, MLflow, Evidently를 이용해 배치 및 실시간 추론 환경에서 이를 모니터링하는 구조를 제시한다.

Monitoring discriminative ML models using Amazon SageMaker AI with MLflow 관련 대표 이미지

🖼️ 인포그래픽

Monitoring discriminative ML models using Amazon SageMaker AI with MLflow 내용을 설명하는 본문 이미지

🖼️ 4컷 인포그래픽

Monitoring discriminative ML models using Amazon SageMaker AI with MLflow 내용을 설명하는 본문 이미지

💡 한 줄 요약

이 글은 분류·회귀용 판별형 머신러닝 모델의 성능 저하를 데이터 드리프트와 모델 품질 변화로 나누어 설명하고, SageMaker AI, MLflow, Evidently를 이용해 배치 및 실시간 추론 환경에서 이를 모니터링하는 구조를 제시한다.

📌 핵심 요약

  • 머신러닝 모델은 학습이 끝난 직후부터 소비자 행동, 제품 변화, 센서 기술, 경제·정치 환경 변화 등으로 인해 정확도와 효과가 낮아질 수 있으므로 운영 중 모니터링이 필요하다.
  • 글은 분류와 회귀에 쓰이는 판별형 모델을 대상으로 하며, 품질 저하 요인을 입력 데이터의 통계적 특성이 변하는 데이터 드리프트와 예측 정확도가 떨어지는 모델 드리프트로 구분한다.
  • 제안된 구조는 오픈소스 Evidently Python 라이브러리와 SageMaker AI, MLflow를 조합해 데이터 드리프트와 모델 품질 지표를 계산하고, 결과를 대시보드·알림·재학습 파이프라인과 연결할 수 있게 한다.
  • 배치 추론 방식에서는 학습 데이터와 모델 지표를 기준선으로 저장하고, 배치 변환 결과와 함께 처리 작업에서 Evidently 리포트와 지표를 산출해 MLflow에 기록한다.
  • 실시간 엔드포인트 방식에서는 데이터 캡처를 활성화해 입력과 출력을 S3에 저장한 뒤, Lambda 또는 처리 작업으로 정기적·이벤트 기반 모니터링을 수행할 수 있으며, MLflow에서 실험·학습·배포·모니터링 이력을 함께 추적한다.

🧩 주요 포인트

  1. 머신러닝 모델은 학습이 끝난 직후부터 소비자 행동, 제품 변화, 센서 기술, 경제·정치 환경 변화 등으로 인해 정확도와 효과가 낮아질 수 있으므로 운영 중 모니터링이 필요하다.
  2. 글은 분류와 회귀에 쓰이는 판별형 모델을 대상으로 하며, 품질 저하 요인을 입력 데이터의 통계적 특성이 변하는 데이터 드리프트와 예측 정확도가 떨어지는 모델 드리프트로 구분한다.
  3. 제안된 구조는 오픈소스 Evidently Python 라이브러리와 SageMaker AI, MLflow를 조합해 데이터 드리프트와 모델 품질 지표를 계산하고, 결과를 대시보드·알림·재학습 파이프라인과 연결할 수 있게 한다.
  4. 배치 추론 방식에서는 학습 데이터와 모델 지표를 기준선으로 저장하고, 배치 변환 결과와 함께 처리 작업에서 Evidently 리포트와 지표를 산출해 MLflow에 기록한다.
  5. 실시간 엔드포인트 방식에서는 데이터 캡처를 활성화해 입력과 출력을 S3에 저장한 뒤, Lambda 또는 처리 작업으로 정기적·이벤트 기반 모니터링을 수행할 수 있으며, MLflow에서 실험·학습·배포·모니터링 이력을 함께 추적한다.

🧠 상세 정리

1. 운영 중 모델 모니터링이 필요한 이유

글은 머신러닝 모델의 효과와 정확도가 학습 작업이 끝난 직후부터 낮아질 수 있다는 문제에서 출발한다. 소비자 행동 변화, 새 제품 출시, 센서 기술 업그레이드, 경제·정치 환경 변화처럼 통제하기 어려운 요인이 학습 당시 모델이 배운 패턴과 확률을 바꿀 수 있기 때문이다. 따라서 운영 환경에 배포된 모델의 정확도와 기준 통계가 어떻게 변하는지 능동적으로 감시하면, 정확도 저하가 심각한 문제로 커지기 전에 개입할 수 있다. 또한 모델 모니터링은 지연 시간, 애플리케이션 가용성 등 전체 시스템 문제를 식별하는 AI 관측성 도구와 함께 사용될 수 있다.

2. 판별형 모델과 두 가지 드리프트 개념

이 글의 초점은 분류와 회귀에 사용되는 판별형 머신러닝 모델이다. 글은 판별형 모델의 품질 저하 요인을 크게 데이터 드리프트와 모델 드리프트로 나눈다. 데이터 드리프트는 입력 데이터의 통계적 속성이 바뀌는 현상으로, 업스트림 데이터 소스 변경 때문에 정수형 열이 부동소수점 열로 바뀌는 단순한 사례부터 완전히 새로운 제품군이 등장하는 복잡한 사례까지 포함한다. 데이터 드리프트는 학습 데이터셋의 기준 통계를 계산한 뒤, 운영 중 수집된 데이터에서 같은 통계를 계산해 비교함으로써 측정할 수 있다.

3. 모델 드리프트와 품질 지표의 비교

모델 드리프트는 모델이 학습한 확률적 패턴이 새로 들어오는 데이터에 더 이상 잘 맞지 않아 예측 정확도가 변하는 현상을 뜻한다. 예를 들어 경제 상황이 개선되면서 소비자 행동이 달라지면, 과거 데이터에서 학습한 관계가 현재 데이터에서 동일하게 작동하지 않을 수 있다. 이를 측정하려면 실제 정답 레이블을 수집해 모델 품질 지표를 계산하고, 학습 과정에서 계산했던 지표와 비교해야 한다. 글은 Evidently가 모델 품질 지표를 계산할 수는 있지만, 학습 시점의 지표와 운영 시점의 지표 차이를 직접 계산하는 모델 드리프트 기능은 별도 코드로 확장해야 한다고 설명한다.

4. SageMaker AI, Evidently, MLflow를 이용한 맞춤형 구조

SageMaker AI는 판별형 및 생성형 모델을 빌드, 학습, 배포, 관리하는 완전관리형 머신러닝 서비스로 소개된다. 다만 완전관리형 서비스만으로는 전체 모델링 수명주기를 더 비용 효율적으로 관리하거나, 관리형 서비스가 지원하지 않는 고유한 사용 사례를 모니터링하거나, 기존 UI 및 관측성 파이프라인과 통합하기 어려울 수 있다. 그래서 글은 오픈소스 Evidently Python 라이브러리와 SageMaker AI with MLflow를 기반으로 데이터 드리프트와 모델 품질 지표를 계산하는 구조를 제안한다. 이 구조의 결과는 원하는 대시보드에 통합하거나, 관련 담당자에게 알림을 보내거나, 자동 모델 재학습 파이프라인을 트리거하는 데 사용할 수 있다.

5. 배치 추론 모니터링 워크플로

배치 추론 사용 사례의 워크플로는 학습, 추론, 모니터링, 기록, 알림 단계로 구성된다. 먼저 학습 작업은 Amazon S3 버킷의 입력 데이터로 모델을 학습하고, 모델 지표를 계산해 MLflow에 저장할 수 있으며, 학습에 사용한 기준 데이터셋도 별도 S3 위치에 저장한다. 이후 배치 변환 작업이 운영 워크로드에 대한 추론을 수행하고, 그 결과 역시 S3 버킷에 저장된다. 배치 변환 결과와 원본 데이터셋, 모델 지표는 처리 작업에서 Evidently 프리셋을 통해 데이터 드리프트와 모델 품질 지표를 계산하는 데 사용되며, 필요하면 EventBridge Scheduler로 배치 변환과 처리 작업을 파이프라인화해 정기 실행할 수 있다.

6. MLflow에 저장되는 리포트와 알림 활용

글은 모든 모니터링 지표와 Evidently 리포트를 MLflow에 저장하는 방식을 강조한다. 이렇게 하면 여러 실행을 시간에 따라 추적하고, 실행 간 결과를 비교하며, 리포트를 시각화할 수 있다. 데이터 드리프트나 모델 품질 저하가 감지되면 선택적으로 Amazon SNS 알림을 통해 이메일로 사용자에게 알릴 수도 있다. 또한 Evidently 리포트를 HTML과 JSON 아티팩트로 저장하고, 특정 드리프트 값을 별도 MLflow 지표로 추출하면, 특정 값에 기반한 알림 생성이나 장기 추세 비교가 가능해진다.

7. 실시간 엔드포인트와 Hyperpod 환경의 적용

실시간 엔드포인트를 사용하는 모델 배포 사례에도 유사한 접근법을 적용할 수 있다. 핵심 차이는 엔드포인트에 데이터 캡처를 활성화해야 한다는 점이며, 이를 통해 엔드포인트 입력과 출력이 S3 버킷에 기록된다. 이 구조에서는 처리 작업 대신 AWS Lambda 함수를 사용해 모니터링 코드를 배포할 수 있지만, 선호에 따라 처리 작업과 Lambda 중 하나를 선택할 수 있다. Lambda 함수는 정기적으로 실행되거나, 엔드포인트 데이터가 S3에 도착했을 때 트리거될 수 있다. 글은 같은 패턴을 SageMaker Hyperpod에도 사용할 수 있으며, 엔드포인트, 로드 밸런서, 모델 파드 수준에서 데이터 캡처를 활성화할 수 있다고 설명한다.

8. 예제 노트북의 학습·추론·품질 계산 흐름

워크스루는 배치 변환 기반 모델 모니터링 솔루션 설정을 단계별로 설명하며, 예제 노트북은 UCI Machine Learning Repository의 Bank Marketing 데이터셋을 사용한다. 이 데이터셋은 포르투갈 은행의 마케팅 전화 정보를 바탕으로 고객이 정기예금에 가입할지를 예측하는 이진 분류 문제이며, 가입한 경우 1, 가입하지 않은 경우 0을 목표값으로 둔다. 노트북 전반부에서는 데이터를 정제·처리하고 학습, 검증, 테스트 세트로 나눈 뒤 XGBoost 모델을 학습한다. 이때 로그와 지표는 MLflow로 전송되고, 최종 모델 객체는 MLflow 모델 레지스트리에 등록되며, 학습 데이터는 이후 데이터 드리프트 계산을 위한 기준 데이터셋으로 S3에 저장된다.

9. Evidently 프리셋과 MLflow 비교 기능

Evidently는 여러 유형의 데이터 드리프트를 계산하는 프리셋을 제공하며, 예제 노트북은 DataDriftPreset과 DataSummaryPreset을 사용한다. 또한 Evidently 리포트를 MLflow에 저장하고 특정 드리프트 값을 MLflow 지표로 따로 추출하는 헬퍼 함수를 만든다. 모델 품질 계산에는 ClassificationPreset을 사용하며, 이 프리셋은 정확도, 정밀도, 재현율, F1 점수 등을 계산한다. 다만 예제 데이터셋처럼 레이블이 불균형한 경우에는 정확도보다 정밀도, 재현율, AUC가 더 관련성 높은 지표일 수 있으며, Evidently의 사용자 정의 리포트를 통해 특정 사용 사례에 중요한 지표만 겨냥할 수도 있다.

10. 수명주기 추적과 파이프라인 확장

MLflow에 각 데이터 드리프트 계산을 하나의 실행으로 저장하면 모델명, 학습 작업명, 데이터셋 크기 같은 파라미터를 함께 남길 수 있다. 사용자는 MLflow 뷰를 사용자 정의해 여러 데이터 드리프트 실행, 모델 품질 실행, 원래 학습 작업을 나란히 비교할 수 있으며, 어떤 모니터링 실행이 어떤 학습 실행과 연결되는지도 확인할 수 있다. 글은 연속된 데이터 드리프트 실행에서 드리프트가 발생한 열 수나 학습 시점 대비 정확도 하락 정도를 볼 수 있다고 설명한다. 더 나아가 MLflow에 기록된 지표를 시간에 따라 플로팅하면 모델 실험, 학습, 배포, 모니터링을 하나의 수명주기 관점에서 추적할 수 있다.

🧾 핵심 주장 / 시사점

  • 이 글의 핵심은 단순히 모델을 배포하는 것이 아니라, 학습 당시의 기준 데이터와 지표를 운영 단계까지 연결해 비교 가능한 형태로 남기는 데 있다.
  • Evidently는 드리프트와 품질 리포트를 계산하고 MLflow는 실행 이력과 지표 비교를 담당하므로, 두 도구의 조합은 모니터링 결과를 장기 추세와 운영 의사결정으로 연결하는 데 유용하다.
  • 모델 드리프트는 Evidently가 자동으로 완결해 주는 항목이 아니므로, 학습 지표와 운영 지표의 차이를 어떤 기준으로 판단할지에 대한 사용자 정의 로직이 실제 운영 품질을 좌우한다.

✅ 액션 아이템

  • 배치 추론 파이프라인에서 학습 데이터와 기준선 지표를 저장하고, 배치 변환 시 Evidently로 데이터 드리프트·품질 지표를 산출해 MLflow에 기록한다.
  • 실시간 엔드포인트에서는 입력·출력 데이터 캡처를 활성화해 S3에 적재하고, Lambda 또는 처리 작업으로 정기·이벤트 모니터링을 수행한다.
  • 분류·회귀 판별형 모델에 대해 데이터 드리프트와 모델 드리프트를 분리해 대시보드·알림과 재학습 연계 규칙을 정의한다.

❓ 열린 질문

  • 배치 기반과 실시간 기반 모니터링에서 어떤 기준선 범위를 공유하고, 어떤 구간을 따로 보정할 것인가?
  • 데이터 드리프트와 모델 드리프트가 동시에 발생할 때 어떤 지표 우선순위로 성능 저하 대응을 판단할 것인가?
  • MLflow 실험·학습·배포·모니터링 이력 중 어느 지표 변화가 재학습 트리거 기준으로 가장 적합한가?

관련 문서

공통 태그와 주제 흐름을 기준으로 같이 보면 좋은 문서를 이어서 제안합니다.