데이터와 모델 버전 관리

프로덕션을 위한 Machine Learning 모델 개발

Sinan Ozdemir

Data Scientist, Entrepreneur, and Author

메이저 & 마이너 버전

버전은 두 가지: 메이저와 마이너

  • 메이저 버전은 데이터나 모델의 큰 변화를 의미합니다

  • 마이너 버전은 작은 변화를 의미합니다

메이저/마이너 버전으로 변경 내용과 범위를 파악할 수 있습니다

프로덕션을 위한 Machine Learning 모델 개발

학습 데이터 버전 관리

  • 고유한 메이저/마이너 라벨 또는 타임스탬프
  • 실험 재현성과 추적성 보장
  • 이전 데이터 버전으로 쉽게 복귀
  • 시간에 따른 데이터 변화 확인

예시:

  1. Data V 1.0: 초기 데이터셋
  2. Data V 1.1: 추가 특성 변환 포함
  3. Data V 1.2: 특성 선택 기법 추가
  4. Data V 2.0: 새로운 데이터 소스 포함
프로덕션을 위한 Machine Learning 모델 개발

피처 스토어

  • 다양한 특성 버전을 저장·관리하는 중앙 저장소
  • 특성 버전 손쉬운 추적
  • 다양한 실험에 특성 사용
  • 협업과 실험 무결성 향상
  • 중복 작업 감소
프로덕션을 위한 Machine Learning 모델 개발

ML 모델 버전 관리

  • 다양한 ML 모델 버전 추적
  • 실험 재현성과 추적성 보장
  • 이전 모델 버전으로 쉽게 롤백
  • 보통 학습 데이터 버전과 일치하나 항상은 아님

예시:

  1. Model V 1.0: 초기 모델 (Random Forest)
  2. Model V 1.1: 동일 모델을 Data V 1.1에 파인튜닝
  3. Model V 2.0: XGBoost 모델로 변경, Data V 1.2에 파인튜닝
  4. Model V 2.1: XGBoost 모델을 Data V 2.0에 파인튜닝
프로덕션을 위한 Machine Learning 모델 개발

모델 스토어

  • 다양한 모델 버전을 저장·관리하는 중앙 저장소
  • 모델 버전 손쉬운 추적
  • 이전 버전으로 롤백
프로덕션을 위한 Machine Learning 모델 개발

MLflow로 모델 버전 관리 예시

import mlflow

# Start a new mlflow run
with mlflow.start_run() as run:
    # Log model version as a parameter
    mlflow.log_param("model_version", "1.0")

    # Train and save the model
    model = train_model()
    mlflow.sklearn.log_model(model, "model")
프로덕션을 위한 Machine Learning 모델 개발

연습해 봅시다!

프로덕션을 위한 Machine Learning 모델 개발

Preparing Video For Download...