MLOps (Machine Learning Operations)란?
본문 바로가기
AI/ML&DL

MLOps (Machine Learning Operations)란?

2022. 7. 30.

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 Life Cycle

  DevOps의 수명주기는 위와 같이 continuous development, continuous integration, continuous testing, continuous monitoring, continuous feedback으로 이루어져 있다.

  1. Continuous Development (지속적 개발)
      소프트웨어를 planning, coding하는 단계이다. code 유지 및 관리를 위한, git / git lab / JIRA / Mercurial / SVN와 같은 다양한 version control tool를 사용된다. 또한, Ant / Maven / Gradle와 같은 code를 실행가능(executable)하게 만드는 build tool도 사용된다. 
  2. Continuous Integration (CI, 지속적 통합)
      자동화된 빌드 및 테스트 프로세스가 수행된 후, 발생하는 code 변경을 기존 code와 지속적으로 통합하는 단계이다. 주로 Release 프로세스 중 build 또는 integration 단계를 뜻한다. CI (Continuous Integration)는 개발자의 생산성이 향상되고, bug를 더 빠르게 발견 및 해결할 수 있으며 update를 더 빈번하게 할 수 있는 장점이 있다. Jenkins는 CI를 위한 tool로 많이 사용된다.
  3. Continuous testing (CT)
      code를 dilvery 받는 즉시 지속적으로 수행되는 자동화된 테스트 프로세스이다.  Selenium / TestNG와 같은 자동화 도구를 사용해 여러 code를 동시에 테스트할 수 있다. 또한, 테스트 환경 시뮬레이션을 위해 Docker 컨테이너를 사용하기도 한다. (Docker 컨테이너는 애플리케이션을 작동시키기 위해 필요한 라이브러리나 런타임 코드 등 모든 것을 포함한 경량의 독립 실행형 패키지이다.)
  4. Continuous deployment (CD, 지속적 배포)
      고객이 사용가능한 production 환경까지 자동으로 release하는 단계이다.
  5. Continuous monitoring
      개발한 소프트웨어의 성능을 monitoring하여 소프트웨어 프로그램의 효율성 향상이 목표인 단계이다. '서버에 연결할 수 없습니다 (server not reachable)', '메모리 부족 (low memory)'와 같은 시스템 오류는 해당 단계에서 해결된다. 네트워크 문제, 기타 문제는 monitoring하면서 자동으로 해결된다. Nagios / Splunk / Sensu / ELK Stack와 같은 tool이 사용된다. 
  6. Continuous feedback
      client 측으로부터 수집한 정보를 바탕으로, 현재 소프트웨어를 분석해 개선에 도움을 준다.

+) DevOps vs Agile

https://www.guru99.com/agile-vs-devops.html

 

Agile Vs. DevOps: What’s the difference?

What is DevOps? DevOps is a software development method which focuses on communication, integration, and collaboration among IT professionals to enables rapid deployment of products. DevOps is a cultu

www.guru99.com

https://well-made-codestory.tistory.com/23

 

[DevOps] 데브옵스란?

데브옵스(DevOps)란? 개요 데브옵스(DevOps)가 무엇인지 알아보고, 개발환경에 어떠한 영향을 끼치는지 알아본다. 목차 데브옵스(DevOps) 데브옵스(DevOps) vs 애자일(Aegile) 소개  1. 데브옵스(DevOps) 데브

well-made-codestory.tistory.com

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)

ghgh
MLOps Simplified & Advanced Lifecycle

 

  • 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/

 

Introducing MLOps

More than half of the analytics and machine learning (ML) models created by organizations today never make it into production. Some of the challenges and barriers to operationalization are technical, … - Selection from Introducing MLOps [Book]

www.oreilly.com

https://towardsdatascience.com/applying-the-mlops-lifecycle-3b60033b7cbf

 

Applying the MLOps Lifecycle

Understand MLOps needs and how they arise through the MLOps Lifecycle. Apply this to better scope and tackle MLOps projects.

towardsdatascience.com

https://pebpung.github.io/mlops/2021/01/14/MLOps1.html

 

1. MLOps란? · ML감자

Introducing MLOps

pebpung.github.io

https://databricks.com/kr/glossary/mlops

 

MLOps란 무엇입니까? - Databricks

MLOps는 ML 모델을 프로덕션으로 전환하는 프로세스를 간소화하고, 뒤이어 이를 유지관리하고 모니터링하는 데 주안점을 둔 머신 러닝 엔지니어링의 핵심 기능입니다.

databricks.com

https://medium.com/daria-blog/mlops-%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%BC%EA%B9%8C-7ba8d9aae221

 

MLOps 란 무엇일까?

MLOps 의 등장 배경

medium.com

https://www.spiceworks.com/tech/devops/articles/what-is-devops-lifecycle/

 

What Is DevOps Lifecycle? Definition, Key Components, and Management Best Practices | Spiceworks

DevOps lifecycle constitutes different phases of continuous software development, integration, testing, deployment, and monitoring. Read this article to understand the lifecycle of DevOps.

www.spiceworks.com

https://youtu.be/q2N6NZKxipg

개발자들 주목하는 MLOps, 지속가능한 AI 서비스 만든다 < 테크 < 기사본문 - AI타임스 (aitimes.com)

 

개발자들 주목하는 MLOps, 지속가능한 AI 서비스 만든다 - AI타임스

요즘 인공지능(AI) 개발자들이 가장 관심을 가지는 주제 중 하나로 단연 MLOps를 꼽을 수 있다. 기존 소프트웨어(SW) 개발자들에게 익숙한 용어로 ‘DevOps’가 있었던 만큼 완전히 생소하진 않다.두

www.aitimes.com

MLflow를 이용한 머신러닝 프로젝트 관리. 박선준- PyCon Korea 2021 - YouTube

 

댓글