본문 바로가기

데이터 엔지니어, DevOps를 넘어 MLOps로 향해 보자!

데이터 분석을 하시는 분들에게 DevOps, MLOps란 말은 말은 다소 생소하게 보일 수 있다.

하지만 기조에 개발을 하시던 개발자 분들은 DevOps란 말이 익숙할 것이다. 하지만 데이터 분석가, 데이터 사이언티스트, 데이터 엔지니어에게는 DevOps 보다는  ML(머신러닝)이라는 말이 익숙할 것이다. 얼마 전부터 이 두 단어를 결합한 MLOps란 말이 만들어지기 시작했다. 머신러닝을 DevOps 관점에서 해보자란 의미에서 결합한 말이 것이다. 그렇다면 왜 MLOps라는DevOps관점에서 ML관점에서  유사점과 차이점에 대해서 알아보도록 하자! 

 

MLOps

 

1. DevOps란 무엇인가? 

1) 정의 

소프트웨어의 개발(Development)과 운영(Operations)의 합성어로서, 소프트웨어 개발자와 정보기술 전문가 간의 소통, 협업 및 통합을 강조하는 개발 환경이나 문화를 말한다. 데브옵스는 소프트웨어 개발조직과 운영조직 간의 상호 의존적 대응이며 조직이 소프트웨어 제품과 서비스를 빠른 시간에 개발 및 배포하는 것을 목적으로 한다. < 출처: 위키백과> 

2) 용어의 등장 

용어는 2008년 애자일 컨퍼런스에서 앤드루 클레이 쉐이퍼(Andrew Clay Shafer)와 패트릭 드부와(Patrick Debois)가 "애자일 인프라스트럭처"에 대해 논의하며 처음으로 사용되었다. 이 용어는 그 후 2009년 벨기에에서 열리기 시작한 "데브옵스 데이(DevOps Day)"를 통해 대중화되었다.  <출처: 두산백과 두피디아>

 

 

3) 목적 

운영과 개발의 통합함으로써 빠른 배포와 실행을 목적으로 애자일 방법론을 적용하기 위함 

계획 - 코드 - 빌드 - 테스트 - 패키지 - 릴리스 - 구성 - 모니터링 등의 과정이 유기적으로 일어남 

4) 장점 

- 제품 출시까지 걸리는 시간을 단축 할 수 있음 

- 새로운 환경에서 더 낮은 실패율을 보이며, 실패를 했을 때 다시 재 도전하기 좋음 

- 유동적이고 간결한 프로그래밍이 가능 하다. 

- 복구 시 더 빠르게 복구를 할 수 있음 

 

 

2. MLOps란 무엇인가? 

1) 정의

제품의 생산과정에서 기계 학습 모델을 안정적이고 효율적으로 배포하고 유지 관리하는 것을 목표로 하는 일련의 사례입니다. MLOps는 "머신 러닝"과 소프트웨어 분야에서 DevOps의 지속적인 개발 관행의 합성어입니다. 기계 학습 모델은 독립된 실험 시스템에서 테스트 및 개발됩니다. 알고리즘을 시작할 준비가 되면 데이터 과학자, DevOps 및 기계 학습 엔지니어 간에 MLOps를 실행하여 알고리즘을 생산 시스템으로 전환합니다. < 출처: 위키백과>

2) 용어의 등장 

2015년 논문에서 애플리케이션에서 머신 러닝을 지속적으로 사용하는 문제가 강조되었다. 

3) 목적

DataOps 와 유사 MLOps는 비즈니스 및 규제 요구 사항에 초점을 맞추는 동시에 자동화를 높이고 생산 모델의 품질을 개선하고자 합니다. MLOps는 일련의 모범 사례로 시작되었지만 ML 수명 주기 관리에 대한 독립적인 접근 방식으로 서서히 진화하고 있습니다. MLOps는 모델 생성( 소프트웨어 개발 수명 주기, 지속적인 통합 / 지속적인 제공 ), 오케스트레이션 및 배포와의 통합에서 상태, 진단, 거버넌스 및 비즈니스 메트릭에 이르기까지 전체 수명 주기에 적용됩니다. Gartner에 따르면 MLOps는 ModelOps의 하위 집합입니다. MLOps는 ML 모델의 운영화에 중점을 두는 반면 ModelOps는 모든 유형의 AI 모델의 운영화를 다룹니다. < 출처: 위키백과> 

 

 

4) MLOps vs DevOps 의 차이점 

MLOps는 머신 러닝 프로젝트에만 국한된 일련의 엔지니어링 실무로, 소프트웨어 엔지니어링 분야에서 광범위하게 도입된 DevOps 원칙을 빌려온 것입니다. DevOps는 애플리케이션 전달에 지속해서 반복적이면서 속도도 빠른 접근 방식을 도입했지만, MLOps의 경우 머신 러닝 모델의 프로덕션 돌입까지의 과정에 같은 원칙을 적용합니다. 두 경우 모두 소프트웨어 품질 개선, 패치 적용과 릴리스 속도 가속, 높은 고객 만족도 달성과 같은 결과를 낸다는 점은 같습니다. <출처: 데이터 브릭스> 

5) MLOps 과정

EDA(Exploratory Data Analysis) - 데이터 준비와 피처 엔지니어링 - 모델 훈련 및 조정 - 모델 검토 및 거버넌스 - 모델 배포와 모니터링 - 자동 모델 재훈련

6) MLOps 장점 

- 제품 출시까지 걸리는 시간을 단축 할 수 있음 

- 엄청난 확장성과 관리를 지원하므로 수천 개의 모델을 감독, 제어, 관리, 모니터링하여 지속해서 통합, 제공하고 지속해서 배포할 수 있음 

- 여러 데이터 팀에서 좀 더 긴밀하게 결합된 협업을 추진할 수 있음 

-  머신러닝 모델에는 철처한 규제 검토와 드리프트 검사가 필요할 때가 있은데, MLOps를 사용하면 투명성을 강화할 수 있고 그러한 요청에 더욱 빨리 대응할 수 있으며 주어진 기업이나 업계의 규정을 더욱 엄격히 준수하는 데 도움