1. DevOps vs MLOps
1-1. DevOps란?
DevOps (Development Operations)란, 개발(development)와 운영(operation)의 조합(a combination of software development(dev) and operations(ops))으로, 개발 및 운영 프로세스를 자동화하고 가속화한다.
1-2. DevOps의 수명 주기 (Life Cycle)
DevOps의 수명주기는 위와 같이 continuous development, continuous integration, continuous testing, continuous monitoring, continuous feedback으로 이루어져 있다.
- Continuous Development (지속적 개발)
소프트웨어를 planning, coding하는 단계이다. code 유지 및 관리를 위한, git / git lab / JIRA / Mercurial / SVN와 같은 다양한 version control tool를 사용된다. 또한, Ant / Maven / Gradle와 같은 code를 실행가능(executable)하게 만드는 build tool도 사용된다. - Continuous Integration (CI, 지속적 통합)
자동화된 빌드 및 테스트 프로세스가 수행된 후, 발생하는 code 변경을 기존 code와 지속적으로 통합하는 단계이다. 주로 Release 프로세스 중 build 또는 integration 단계를 뜻한다. CI (Continuous Integration)는 개발자의 생산성이 향상되고, bug를 더 빠르게 발견 및 해결할 수 있으며 update를 더 빈번하게 할 수 있는 장점이 있다. Jenkins는 CI를 위한 tool로 많이 사용된다. - Continuous testing (CT)
code를 dilvery 받는 즉시 지속적으로 수행되는 자동화된 테스트 프로세스이다. Selenium / TestNG와 같은 자동화 도구를 사용해 여러 code를 동시에 테스트할 수 있다. 또한, 테스트 환경 시뮬레이션을 위해 Docker 컨테이너를 사용하기도 한다. (Docker 컨테이너는 애플리케이션을 작동시키기 위해 필요한 라이브러리나 런타임 코드 등 모든 것을 포함한 경량의 독립 실행형 패키지이다.) - Continuous deployment (CD, 지속적 배포)
고객이 사용가능한 production 환경까지 자동으로 release하는 단계이다. - Continuous monitoring
개발한 소프트웨어의 성능을 monitoring하여 소프트웨어 프로그램의 효율성 향상이 목표인 단계이다. '서버에 연결할 수 없습니다 (server not reachable)', '메모리 부족 (low memory)'와 같은 시스템 오류는 해당 단계에서 해결된다. 네트워크 문제, 기타 문제는 monitoring하면서 자동으로 해결된다. Nagios / Splunk / Sensu / ELK Stack와 같은 tool이 사용된다. - Continuous feedback
client 측으로부터 수집한 정보를 바탕으로, 현재 소프트웨어를 분석해 개선에 도움을 준다.
+) DevOps vs Agile
https://www.guru99.com/agile-vs-devops.html
https://well-made-codestory.tistory.com/23
1-3. MLOps란?
MLOps란 DevOps를 ML에 적용한 것으로 (ML + Dev + Ops)이다. 최근에 AI를 많이 활용하면서, 데이터 수집 및 관리, ML 모델 개발, 운영 등 효율적으로 서비스를 제공하기 위해 MLOps가 생겨났다. 쉽게 생각하면, MLOps는 DevOPs에 데이터가 추가되었다는 것 (Model training)이다. MLOps는 크게 1) 모델을 만드는 과정 (데이터에서 모델을 만들기), 2) 모델을 배포하는 과정 (만들어진 모델을 packaging하여 서비스로 배포하기)로 나눌 수 있다. 위의 그림에서 ① Data는 모델을 개발하기 위해 필요한 데이터이며, ② Data는 실제 production에서 들어오는 데이터이다. Data Scientist, Data Engineer가 메인으로 MLOps를 수행한다. Data Scientist에게는 Data Silo (데이터 사일로)때문에 MLOps 프로세스가 정말 효과적이다. Data Silo(데이터 사일로)란, 한 조직 내 데이터의 집합이지만, 각 부서, 사업 단위나 브랜치별로 데이터가 일치하지 않는 것이다. 즉, 데이터 간의 단절이라고 생각하면 쉬울 것 같다.
2. MLOps의 수명 주기 (Life Cycle)
- Data Collection (데이터 수집)
- Data Ingestion (데이터 흡수)
- Data Analysis & Curation (데이터 분석 & 큐레이션)
(EDA; Exploratory Data Analysis, 탐색적 데이터 분석) - Data Labeling (데이터 라벨링)
- Data Validation (데이터 검증)
- Data Preparation (데이터 준비)
- Model Training (모델 훈련)
- Model Evaluation (모델 평가)
- ML System Validation (모델 검증)
- ML System Deployment (모델 배포)
Reference
https://learning.oreilly.com/library/view/introducing-mlops/9781492083283/
https://towardsdatascience.com/applying-the-mlops-lifecycle-3b60033b7cbf
https://pebpung.github.io/mlops/2021/01/14/MLOps1.html
https://databricks.com/kr/glossary/mlops
https://medium.com/daria-blog/mlops-%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%BC%EA%B9%8C-7ba8d9aae221
https://www.spiceworks.com/tech/devops/articles/what-is-devops-lifecycle/
개발자들 주목하는 MLOps, 지속가능한 AI 서비스 만든다 < 테크 < 기사본문 - AI타임스 (aitimes.com)
MLflow를 이용한 머신러닝 프로젝트 관리. 박선준- PyCon Korea 2021 - YouTube
'AI > ML&DL' 카테고리의 다른 글
[Book] Do it! 딥러닝입문 7장 : Multi Classification (0) | 2022.08.12 |
---|---|
[Book] Do it! 딥러닝입문 6장 : Multi-Layer Neural Networks (0) | 2022.08.01 |
[Book] Do it! 딥러닝입문 5장 : Training Tips (0) | 2022.07.26 |
[Book] Do it! 딥러닝입문 1-4장 (2) | 2022.07.24 |
댓글