Motivation for MLOps
ML 생애주기
우리가 Machine learning(ML)을 이용한 솔루션을 생각할 때 흔히 하는 착각이 있다. 그건 바로 무조건적으로 좋은 모델을 만들어서 사용하면 되는것 아닌가? 하는 생각이다.
하지만 실제 ML에는 모델을 만드는 일이 전부가 아니라 문제에 필요한 데이터를 정의, 수집, 준비(가공)하는 과정이 필요하다.
즉 하나의 ML 서비스가 만들어지기 위해서는 모델을 어떻게 만들 것인가? -> 모델을 어떻게 평가할 것인가? → ML 모델을 서비스로 만들 것인가? 와 같은 노력의 과정이 필요하다. 게다가 위 과정을 거쳐서 모델이 만들어져서 서비스로 올라간다고 끝나는게 아니다. ML의 생애 주기는 배포된 서비스를 지속적으로 모니터링하고, 위 과정을 다시 돌아서 모델을 재학습, 재배포하는 과정까지 모두 포함한다.
DevOps vs MLOps
소프트웨어 기반 서비스가 발전하며 서버는 지속성은 주요한 요소가 되었다. 업데이트가 되더라도 유저 입장에서는 지속적으로 서비스가 사용이 가능해야 한다.
이것을 CI/CD 라고 부른다. CI/CD는 지속적 통합(Continuous Integration), 지속적 배포(Continuous Deployment)이며 개발자(Developer)뿐만 아니라 운영자(Operator), QA(Quality Assuarance)와도 관련이 있다. 개발자는 코드 관련된 수정을 할 것이고, 운영자는 최신의 모델로 업데이트 해야하며, QA는 그것에 대해서 평가를 해야한다.
이러한 과정을 묶어 DevOps라고 하며 ML 서비스의 발전에 따라 ML 기반 서비스에서도 CI/CD의 적용은 필수적이며 CI/CD 뿐만 아니라 지속적 학습(CT), 분류 레이블 증가, 학습 시나리오 추가 등 기존 DevOps에서 제공되는 기능의 추가적인 기능이 포함된 MLOps의 개념이 생겼다.
차이점 1. 모델을 만들고 배포하는 과정 추가
차이점 2. 코드 뿐만 아니라 모델을 만들기 위한 데이터 공급이 필요 (실제 프로덕션에서 발생하는 데이터)
공통점 : 입력값이 주어졌을 때, 프로세스를 처리, 처리 과정에서 단위 테스트, 통합 테스트 포함, 배포 후 모니터링
MLOps의 이점
현업 관점
변화에 대한 관리가 가능 (툴 제공 + 일하는 방식)
IT/개발 부서
품질 관리를 ML 분야에서도 확장
ML 프로세스의 수준 향상 (소스코드, 통합 테스트, 컴파일 / 배포, 모니터링)
데이터 전문가
파이프라인 자동화
지속적인 모니터링
재학습/재배포 자동화