책: MLFlow를 활용한 MLOps

sshinohs·2022년 11월 29일
0

Chapter 3. MLOps는 무엇인가?

절차

  • Raw data 수집 및 처리
  • 데이터 분석
  • 학습을 위한 데이터 처리
  • 모델 구축, 학습 및 테스트
  • 모델 검증 및 조정
  • 모델 배포 및 모니터링

계획 -> 빌드 -> 테스트 -> 배포 -> 모니터링 -> 피드백 (루프 돌면서 작업함)

먼저 수동 구현 해본다.

  • 데이터 저장소
  • 원시 데이터 처리
  • 데이터 분석
  • 모델 구축 단계
  • 모델 배포
  • 모델 서비스
  • 데이터 수집
  • 데이터 저장소로 전달된 데이터

지속적인 모델 전달 과정 추가

  • 피처 저장소: 데이터를 저장하는 저장소 추가함
  • 데이터 분석: 분석 결과를 통해 새 모델을 구축할지 현재 모델을 업데이트 할지 결정
  • 모델 구축 및 분석 자동화: 데이터를 자동으로 처리하고 모델을 구축, 학습, 평가 및 검증함, 자동화로 최적의 모델을 만들어야 한다.
  • 모듈화된 코드: 파이프라인과 그 구성 요소가 모듈화되도록 설정해야 함.
  • 파이프라인 배포: 파이프라인을 배포
  • 자동화된 학습 파이프라인: 파이프라인에는 서비스를 제공하는 모델이 포함되어 있고, 트리거 활성화 시 새 피처를 자동으로 가져오도록 설정되어 있음.
  • 모델 레지스트리: 모델 클래스 및 가중치를 보관하는 저장 장소. 전체 실험 단계를 거치지 않고도 모델을 자주 업데이트하고 배포할 수 있음.
  • 모델 서비스: 성능이 제일 좋은 모델을 모델 레지스트리에서 가져와서 서비스 활용
  • 성능 및 사용자 데이터 수집: 새 데이터 수집, 수집한 데이터는 피처 저장소에 넣음
  • 학습용 파이프라인 트리거: 활성화 하면 배포된 모델에 대한 자동 학습 파이프라인 시작하고, 피처 저장소에서 파이프라인으로 피처를 검색할 수 있게 한다.
    • 수동 트리거: 수동으로 학습 시작함
    • 예정된 학습: 특정 시간마다 학습
    • 성능 이슈: 성능 이슈 있을 때 학습
    • 데이터 패턴의 변화: 데이터 패턴이 변하면 학습

Chapter 4. MLflow 소개

4장의 내용

  • 실험 생성: MLflow 실험을 통해 모델 및 관련 지표를 그룹화할 수 있음
    • tensorflow vs pytorch 비교
    • 이상 징후 감지
    • etc.
  • 모델 및 지표 로깅: 모델을 모듈화된 형태로 저장하고 모델 실행과 관련된 모든 지표를 기록할 수 있음
    • confusion matrix
    • ROC curve
    • etc.
  • 모델 지표 비교: 여러 모델과 해당 지표를 한 번에 비교할 수 있음.
  • 모델 레지스트리: MLflow는 모델 레지스트리를 구현할 수 있는 기능도 추가해서, 특정 모델이 어떤 단계에 있는지 정의할 수 있음, Databricks와 잘 통합될 수 있다.
  • 로컬 배포: 로컬 서버에 배포하여 모델 inference를 테스트할 수도 있다. MLflow는 Amazon SageMaker, Microsoft Azure, Google Cloud 및 Databricks와 같은 인기 있는 Cloud 서비스에 모델을 배포할 수 있도록 지원함.

Scikit-learn을 사용한 MLflow

개발환경

  • Python
  • Numpy
  • Scikit-learn
  • Pandas
  • Matplotlib
  • Seaborn
  • MLflow

예제에 사용되는 데이터

예제 코드를 따라하면 할 수 있는 것

  • 로컬에서 mlruns 폴더 내에 로그가 기록됨
  • 저장된 로그는 mlflow ui -p 1234 로 실행하여 localhost:1234에서 확인 가능
  • 저장된 모델은 다시 불러올 수 있음
  • MLflow 검색은 SQL WHERE 절을 기반으로 검색 수행 가능
    • metrics."auc_score" >= 0.90
    • metrics."auc_score" >= 0.90 AND parameters.anomaly_weight = "5"
    • metrics."auc_score" >= 0.90 AND parameters.anomaly_weight = "10"
    • metrics."auc_score" >= 0.90 AND parameters.anomaly_weight = "15"

PyTorch를 사용한 MLflow

개발 환경

  • Torch
  • Torchvision
  • CUDA
  • CuDNN
  • Sklearn
  • MLflow
  • numpy
profile
sshinohs

0개의 댓글