
이번 포스트에서는 제목처럼 MLOps에 대해서 알아보자.
MLOps는 ML(Machine Learning), 운영(Operation)이 결합된 용어로 프로덕션 환경에서 ML 모델이 지속적이고 안정적으로 배포되도록 유지, 관리, 모니터링 하는 것.
- 지속적 통합(Continuous Integration, CI)
코드의 변경 사항을 정기적으로 빌드 및 테스트하고, 공유 레포지토리에 통합.
- 지속적 배포/제공(Continuous Deployment/Delivery, CD)
Pipeline, 모델 등의 모델 예측 서비스를 자동으로 배포.
- 지속적 학습(Continuous Training, CT)
데이터가 업데이트되거나 새로 들어올 때마다 모델이 자동으로 학습 및 업데이트됩니다. 새로운 데이터를 통해 학습하므로 'Data & Model Validation'이 필수적.
AI 산업에서의 시스템은 단순하게 찍어내는 상품처럼 개발 후 배포가 끝이 아님.
지속적인 서비스 운영을 통해 안정적인 서비스 제공을 위해 노력해야한다.
이 과정에서 개발과 운영이 따로 진행된다면 데이터 사일로 등 비효율적이 문제가 발생. 배포 후의 AI모델을 유지보수하고 고도화 하는 것은 많은 리소스를 필요로 하기에, 효율적인 유지보수와 처리를 위해 MLOps가 등장.

DevOps는 개발(Development)과 운영(Operation) 결한된 용어이다. 개발과 운영의 경계를 허물고 각 팀이 협업하며 아이디어를 개발하고, 배포하는 개발 환경이나 도구를 의미.
단순하게 봤을 때, 개발과 머신러닝을 비교한다면, 머신러닝은 개발이라는 큰 틀안에 한 부분이라고 할 수 있을 것이다. 즉, MLOps는 DevOps 방법론이 ML시스템에 적용된 것이다. 어찌보면 MLOps는 DevOps라는 큰 틀 안에 있는 system operation의 한 종류라고 볼 수 있다.