1. MLOps란 무엇인가?
1.1 MLOps
ML을 효율적으로 개발한 후,
성공적으로 서비스화하고 운영할 때 필요한 모든 것을 다루는 분야
- Machine Learning + Operations
- 머신러닝을 실제로 운영할 때 생기는 일을 다룬 분야
- 연구가 아닌 서비스(앱, 웹 등)에 적용하는 과정에서 필요한 분야
→ 만들어진 지 오래되지 않은 분야라 공식적인 정의는 아직 없다 !
1.2 조금 더 세분화된 MLOps
- ModelOps + DataOps + DevOps
- ModelOps: 모델을 개발하면서 생기는 운영 (모델 관리)
- DataOps: 데이터와 관련된 운영 (데이터 엔지니어링, 데이터 관리)
- DevOps: 소프트웨어 개발과 관련된 운영 (배포, 클라우드)
2.MLOps의 필요성
- 머신러닝 모델을 개발(Research)한 후 서비스화(Production)하려는 과정에서 발생한 이슈
- 이 모델을 어떻게 서비스화 할 수 있지?
- 모델의 버전 관리는 어떻게 해야하지?
- 학습에 사용된 데이터셋의 버전 관리는 어떻게 해야하지?
- 학습에 사용된 데이터와 실제 서비스(production)에서 받는 데이터가 다른데 어떻게 해야하지?
- 머신러닝 서버를 올릴 인프라는 어떻게 관리하지? 내가 만들어야 하나?
- 언제 다시 학습해야 하지? 학습 안하고 사용해도 되나?
- 위 이슈들을 해결하기 위해 Research → Production 과정에서 필요한 것
- API 서버 만들기
- 모델 관리
- 데이터셋 관리
- ML 인프라 관리
→ 이러한 일련의 것들을 MLOps로 통칭한다
3. MLOps vs DevOps
- DevOps
- Dev하면서 생기는 Ops 이슈
- CI/CD, 인프라, 네트워크 등
- MLOps
- ML하면서 주기적으로 생기는 Ops 이슈
- 학습, 모델 Serving, 데이터 처리, 모델 관리 등
- CI/CD/CT
⇒ DevOps와 MLOps는 어느 정도 교집합이 있으나, MLOps를 필요로 하는 AI 서비스는 일반 SW와 달리 'Data'를 중요한 구성 요소로 한다는 점에서 차이점을 가진다.
cf. CI/CD/CT in MLOps
MLOps에서 말하는 CI/CD, 그리고 CT는 다음과 같다.
CI: Continuous Integration (지속적 통합)
DevOps에서의 Integration은 소스코드와 컴포넌트 등의 테스트를 의미한다면, MLOps에서의 Intergration은 ML 모델을 서빙하는 과정에서 요구하는 새로운 데이터와 데이터 스키마, 그리고 모델을 테스트하고 통합하는 과정까지 포함한다.
CD: Continuous Delivery/Deployment (지속적 제공/배포)
MLOps에서의 Deployment(배포)는 Production 단계에서 모델을 서빙하는 것을 의미한다. 모델을 더 빠른 주기로 서빙하면서도 신뢰도 및 정확도를 유지하는 것을 목표로 한다는 점에서 DevOps와 유사하다.
CT: Continuous Training (지속적 학습)
MLOps는 모델이 Production 단계에서 새로운 데이터로 학습하여 만들어낸 새로운 모델을 배포하는 과정을 반복한다. 이러한 지속적인 학습 과정에서는 과거의 모델보다 정확도가 떨어지는 경우 등 문제 발생 상황에 대해 롤백하고 대처할 수 있는 ML 서빙 파이프라인을 구축하는 것이 중요하다.
Reference: Ep 6. MLOps란? MLOps 로드맵 및 MLOps 취업에 대한 생각 | MLOps 강의 추천 있음
'Engineering > MLOps' 카테고리의 다른 글
[MLOps] 05 Model Serving (0) | 2023.01.21 |
---|---|
[MLOps] 04 Model Management & MLflow (0) | 2023.01.20 |
[MLOps] 03 Data Management & DVC (0) | 2023.01.20 |
[MLOps] 02 Kubernetes Basic (0) | 2023.01.17 |
[MLOps] 01 Docker Basic (0) | 2023.01.16 |
댓글