안녕하세요. SQLER의 코난 김대우입니다.
이 문서에서는 2021년의 ML 트렌드와 기업의 요구, ML개발 패턴의 변화 움직임 등에 대해서 논의 합니다.
머신러닝을 시작하는 개발자를 위한 - (4) 2021년의 ML Trend - MLaaS와 MLOps(Machine Learning + DevOps)
2021년의 ML Trend - MLaaS와 MLOps(Machine Learning + DevOps)
2021년 ML의 화두는 벌써 바뀌고 있다.
Gartner의 2021년 top techlogy trend에서도 이미 AI engineering을 화두로 예측하고 있음.
Gartner Top Strategic Technology Trends for 2021
AI engineering offers a pathway, making AI a part of the mainstream DevOps process rather than a set of specialized and isolated projects. It brings together various disciplines to tame the AI hype while providing a clearer path to value when operationalizing the combination of multiple AI techniques.
- Gartner Top Strategic Technology Trends for 2021
머신러닝 프로젝트를 해보면 참 흔한게, Data Scientist(이하 DS)든 개발자이건, 대부분의 작업을 하나의 Jupyter notebook으로 ML model을 개발, eval작업 하고 deploy까지 하나의 노트북으로 하는 경우가 흔해. 특히 DS조직은, Git과 같은 SCM을 쓰는 경우도 흔치 않음.
예를 들어, DS가 사내의 GPU 머신에서 ML 모델을 빌드하는 노트북(또는 코드)를 가지고 모델을 만들면, 개발자는 노트북을 받아서 노트북에서 build된 model 위치에서 model을 복사해 REST API 어플리케이션에 넣어서 배포를 시작.
개발자가 배포를 하는데 배포에서 또 헬게이트가 열리지.
그냥 글로만 봐도 이러한 전통적인 ML 모델 빌드부터 배포까지의 과정이 전혀 효율적으로 보이지 않음.
클라우드 벤더들의 MLaaS 서비스가 여기, 배포에서부터 필요성이 올라오기 시작하는거지.
하지만, 클라우드 벤더의 MLaaS 서비스와 MLOps가 이 머신러닝 개발 프로세스를 완전히 바꾸고 있다.
우리들, 개발자나 Data scientist가 ML code를 repository에 push하면 자동으로 Deep Learning ML model이 수십 수백대의 GPU 머신에서 분산처리(또는 Hyper parameter들이 자동 튜닝)되어, 가장 좋은 성능의 model의 build되고, ML model build가 성공하면 자동으로 model을 안전한 model storage에 저장한 후, 이어서 model evaluation 과정을 자동으로 수행하 과거에 model storage에 등록된 model들과 성능을 비교해 배포 여부를 결정하게 되지.
과거보다 높은 성능의 ML model이라면 서비스 배포 환경으로 넘어가게 되고, 어플리케이션과 함께 또는 연결만 되어어 일반 DevOps처럼 stage 환경 또는 production 환경으로 배포 가능.
이 모든 과정의 트리거는 Timer trigger로 일정 주기로 하거나, 개발자나 DS의 code push 또는 DataSet의 업로드를 트리거로도 가능해. 트리거만 되면? 모든 과정이 자동화되어 최종 어플리케이션 stage환경에 최신 ML Model이 함께 올라오는거지.
이게 끝이 아니야. 머신러닝 개발 워크플로우에 DataSet / Model / Deployment의 Versioning도 필수
사용한 dataset, model, application deployment는 모두 versioning되어서 원한다면 언제든지 과거의 특정 버전을 다시 자활용 가능. 아무리 새로 model을 build해도 과거 version의 dataset 보다 좋은 결과가 안나온다면? 이전 버전을 이용해 다시 ML model을 build하거나 이전 버전의 model을 다시 어플리케이션에 배포하는 과정이 가능해진다.
과거 Jupyter notebook 하나로 했던 과정과 비교하면, 이제 MLaaS와 MLOps(ML+DevOps)는 "효율"과 기업환경에 필요한 수준으로 그 단계가 넘어가는 중.
2021년부터 SQLER와 함께 데이터베이스 + 클라우드 + 머신러닝 같이 공부하시죠.
SQLER에서도 이 MLOps에 대해서 많은 이야기가 진행될 예정이니 계속 관심 부탁 드립니다.
머신러닝을 시작하는 개발자를 위한 - (1) 머신러닝 용어정리, 분류부터 MLOps까지
머신러닝을 시작하는 개발자를 위한 - (2) 머신러닝 서비스/프레임워크/툴킷 분류 및 전체 개발 흐름
머신러닝을 시작하는 개발자를 위한 - (3) 우리 개발자가 머신러닝을 해야 하는 이유는?
머신러닝을 시작하는 개발자를 위한 - (4) 2021년의 ML Trend - MLaaS와 MLOps(Machine Learning + DevOps)