MLOps가 필요한 이유 이해하기
일반적으로 우리가 리서치하는 부분은 주어진 고정된 데이터에 대해서 학습을 하고 특정 기능을 수행하는 것 입니다. 하지만 실제로 이것을 웹이나 앱서비스로 배포한다고 가정하면 리서치에서 더 나아가 고려할 것들이 생깁니다. 예를 들어 갑자기 모델의 결과값이 이상하거나, 더 좋은 모델을 찾아냈을 때, 혹은 더 좋은 모델로 바꾸었더니 실제 배포 후 성능이 더 떨어졌을 때 등 이 외에도 여러가지 이슈에 대해 유연하게 처리할 수 있어야 합니다. 혹은 model drift/data dirft 에 대해서도 유연한 처리가 필요합니다.
실제 머신러닝 서비스 과정에서 리서치 자체는 (중요하지만) 매우 작은 부분이며 배포방법, 데이터모으는 방법, 서빙하는 툴, 모니터링 등 여러가지 업무에 대해 처리할 수 있어야 합니다. 이와 같은 상황에서 MLOps의 개념이 등장합니다. MLOps란 머신러닝 서비스를 운영하면서 반복적으로 필요한 일들을 자동화 시키는 과정입니다. 자동화를 통해 발생하는 문제의 중복처리를 최소화하고 유연한 상황대처를 통해 비즈니스 가치를 창출하기도 하고 리서치 자체에만 집중할 수 있게 도와줍니다.
MLOps의 각 Component에 대해 이해하기
MLOps에는 전체 서비스를 위해 여러 구성요소가 있습니다. 타코 예제를 통해 구성요소의 역할을 알아봅시다.
ML Research를 집에서 만드는 타코, Production ML을 실제 가게를 열어서 판매하는 타코라고 가정해봅시다. Production Serving 과정에서는 여러가지 추가요소들이 필요합니다. 예를 들어, 음식(모델), 식재료(Data), 요리(Train), 식기류(GPU) 등이 필요합니다.
이러한 Component들 각각의 우선순위는 회사의 비즈니스 상황과 모델 운영 상황에 따라 우선순위가 다릅니다. 때때론, 이런 자동화된 Component들을 만드는 수고가 비효율적일 수 있습니다. 처음엔 최소한의 작은 단위(MVP Minimal Value Product)로 시작해서 점점 회사가 커질 때 하나씩 구축하는 것이 더 맞는 방식일 것 입니다. 일례로 동네 치킨집을 새로 시작하는데 프렌차이즈의 시스템을 모두 갖출 필요는 없듯이 말이죠.
MLOps 관련된 자료, 논문 읽어보며 강의 내용 외 어떤 부분이 있는지 파악해보기
Hidden Technical Debt in Machine Learning Systems 논문
Techincal Debt in ML System에 대해 고찰 일반적으로 소프트웨어 배포 및 유지하는데 있어서 technical debt 라는 개념의 유지보수 비용이 발생하게 된다. 하지만 data dependency한 ML의 특성상 ML system에서는 일반적인 소프트웨어의 경우 보다 더 많은 technical debt가 발생하게 된다. 게다가 ML system에서의 technical debt는 찾기가 힘들고 비용이 더 크다.
→ 유지보수의 역할이 더 중요하다 = MLOps의 필요성
How to Detect Model Drift in MLOps Monitoring
ML drift 종류 : Concept Drift-P(Y|X), Prediction Drift-P(Y hat | X), Label Drift-P(Y Ground Truth), Feature Drift-P(X)
Statistical calculation KL divergence, Jensen-Shannon, KS test 로 확률분포변화 비교
Model based calculation
Productionizing Machine Learning: From Deployment to Drift Detection
Types of drift : Concept Drift, Data Drift(seasonality), Upstream Data Changes(feature encoding) + Analyze the distribution of (Data/Labels/Schema/Predictions)
Delta Lake for Data Drift / Databricks Runtime for ML/MLflow for Concept/Model Drift
Awesome production machine learning
다양한 Task를 수행하는 Tool들 소개
MLOps의 전체적인 내용을 다루는 페이지(커뮤니티, 기본, 논문, 책, 툴, …)
구글 클라우드의 Practitioners Guide to MLOps
MLOps 교과서
시간날 때 다운로드 받아서 관심있는 분야 읽어보면 좋을 듯
MLOps Component 중 내가 매력적으로 생각하는 Top3를 정해보고 왜 그렇게 생각했는지 작성해보기
AutoML : 과거에는 학습 파라미터 조절 정도를 도와주는 정도이지만, 이제는 모델 자체도 저절로 처리되는 단계이기 때문에 굉장히 큰 발전의 기로에 있다고 생각해서
Monitoring : 결국은 다양한 component 들을 visualization 을 통해서 빠르게 파악할 수 있도록 해야하고 기계가 학습해서 하는 부분이 아니라 인간 스스로를 위한 component 이라서
Data Validation : data validation 이야 말로, MLOps의 가장 중요한 존재 이유라고 생각합니다.
이번 과제는 변성윤 마스터님의 MLOps 수업 내용을 토대로 작성되었습니다.