MLOPS 정의
개발과 운영을 따로 나누지 않고 개발의 생산성과 운영의 안정성을 최적화하기 위한 문화이자 방법론인 DevOps를 ML 시스템에 적용한 것이며, ML의 전체 Lifecycle을 관리함
ML의 대상
시스템의 요소
ML 시스템의 요소(Hidden Technical Debt in Machine Learning Systems)
- Testing
일반적인 단위, 통합 테스트 외에 데이터 검증, 학습된 모델 품질 평가, 모델 검증이 추가로 필요하다.
- Deployment
오프라인에서 학습된 ML모델을 배포하는 수준에 그치는 것이 아니라, 새 모델을 재학습하고, 검증하는 과정을 자동화해야 한다.
- Production
일반적으로 알고리즘과 로직의 최적화를 통해 최적의 성능을 낼 수 있는 소프트웨어 시스템과 달리, ML 모델은 이에 더해서 지속적으로 진화하는 data profile 자체만으로도 성능이 저하될 수 있다.
즉, 기존 소프트웨어 시스템보다 더 다양한 이유로 성능이 손상될 수 있으므로, 데이터의 summary statistics를 꾸준히 추적하고, 모델의 온라인 성능을 모니터링하여 값이 기대치를 벗어나면 알림을 전송하거나 롤백을 할 수 있어야 한다.
- CI (Continuous Integration)
CI는 code와 components뿐만 아니라 data, data schema, model에 대해 모두 테스트되고 검증되어야 한다.
- CD (Continuous Delivery)
단일 소프트웨어 패키지가 아니라 ML 학습 파이프라인 전체를 배포해야한다.
- CT (Continuous Training)
ML 시스템만의 속성으로, 모델을 자동으로 학습시키고 평가하는 단계이다.
ML Project Process
- Data Extraction(데이터 추출)
데이터 소스에서 관련 데이터 추출
- Data Analysis(데이터 분석)
데이터의 이해를 위한 탐사적 데이터 분석(EDA) 수행
모델에 필요한 데이터 스키마 및 특성 이해
- Data Preparation(데이터 준비)
데이터의 학습, 검증, 테스트 세트 분할
Model Training(모델 학습)
다양한 알고리즘 구현, 하이퍼 파라미터 조정 및 적용
output은 학습fsf된 모델.
- Model Evaluation(모델 평가)
holdout test set에서 모델을 평가
output은 모델의 성과 평가 metric.
- Model Validation(모델 검증)
기준치 이상의 모델 성능이 검증되고, 배포에 적합한 수준인지 검증
- Model Serving(모델 서빙)
온라인 예측을 제공하기 위해 REST API가 포함된 마이크로 서비스
배치 예측 시스템
모바일 서비스의 embedded 모델
-Model Monitoring(모델 모니터링)
모델의 예측 성능을 모니터링
ML Manual Process 에서 ML Pipeline Automation 으로 개선
ML Manual Porcess
ML Pipeline Automation
ML Component 오픈소스를 활용한 ML Pipeline