10개 기업에 AI 프로젝트를 시작하면 그 중 9개는 PoC만 하다가 끝난다.
- 딥러닝과 머신러닝은 지금까지 가능성만 보여주고 사라져왔다.
- 머신러닝과 딥러닝 코드만으로는 실제 서비스를 운영할 수 없기 때문이다.
DevOps
- MLOps는 DevOps라는 개발 방법론에서 파생된 단어다.
- DevOps = Development + Operations(운영)
- 소프트웨어 개발 조직과 운영 조직간의 상호 의존적 대응으로 S/W제품과 서비스를 빠른 시간에 개발 및 배포하는 것을 목적으로 한다.
Silo Effect
- 서비스의 규모가 커질수록 개발팀과 운영팀은 분리되고 소통의 물리적 한계가 오게 된다.
- 소통의 부재는 개발팀에서 개발한 기능이 배포 시 장애를 일으키는 등 여러 문제가 생기게 된다.
- 위와 같은 상황이 반복되면 조직 이기주의라고 불리는 Silo 현상에 생길 수 있다.
- 이 사진이 사일로라고 한다. 곡식이나 사료를 젖아하는 창고인데, 독립적으로 존재하고, 저장되는 물품이 섞이지 않도록 철저히 관리할 수 있도록 도와준다.
- 사일로 현상은 서비스 품질 저하로 이어지게된다. 이 Silo Effect를 해결하기 위해 나온 것이 DevOps다.
CI/CD
- Continuos Intergration (CI) & Continuos Delivery (CD) : 개발 팀과 운영팀의 장벽을 해제하기위한 방법
MLOps
- Meachine Learning + Operations
- 머신러닝 팀과 운영팀의 문제를 해결하기 위한 방법.
- 개발팀은 이를 통해 운영팀의 환경을 이해하고, 개발팀에서 개발 중인 기능이 정상적으로 배포까지 이어질 수 있는지 확인한다.
- 검증된 기능 & 개선 제품을 더 자주 배포해 User는 제품 경험을 상승시킬 수 있다.
1. Rule Based
2. Machine Learning
- 서비스 규모가 커지고 log 데이터가 많이 싸이면 머신러닝 모델 생성
- 정해진 주기에 따라 모델 재학습 후 재배포
3. Deep Learning
- 더 좋은 성능을 내는 모델이 필요해질 경우 딥러닝 모델 개발
- 머신러닝과 마찬가지로 정해진 주기에 따라 모델을 재학습 후 재배포
- x-axis : 모델 복잡도
- y-axis : 모델 성능
- 머신러닝에서 딥러닝으로 넘어갈 때 머신러닝 팀이 새로 생기게 되는 것이다.
- 개발해야할 모델이 많아질 경우 DevOps와 같이 Silor 현상이 나타나게 된다.
- MLOps의 목표는 개발한 모델이 정상적으로 배포될 수 있는지 테스트하는 것이다.
- 개발팀에서 개발한 기능이 정상적으로 배포될 수 있는지 확인하는 것이 DevOps라면, MLOps는 머신러닝 팀에서 개발한 모델이 정상적으로 배포될 수 있는지 확인하는 것이다.
- 어떤 경우 머신러닝 팀에서 만든 모델을 이용해 직접 운영할 수 있도록 도와주려고도 하고 있다.
- 요약하자면 ML과 Ops의 생산성 향상, 머신러닝 팀에서 직접 운영할 수 있도록 도와주는 것이 역할이다.