본문 바로가기

MLOps

MLOps = ML + DevOps

저번 글에서는 MLOps가 등장하게 된 배경에 대해서 알아보았고, 이번 글에서는 DevOps의 어떤 점을 ML에 접목시켰는지 알아보겠습니다.

 

그 전에 DevOps으로 인해서 기존 Software 개발 분야에 어떤 영향을 주었는지 가볍게 살펴보겠습니다.


기존 Software 개발 방식

기존의 ML Project의 진행 방식에서 발생하는 다양한 문제에 대한 비슷한 고민을 해왔던 분야가 있습니다. 바로 소프트웨어 개발 분야입니다.

전통적인 소프트웨어 개발 방식은 아래와 같았습니다.

단 방향 방식의 개발 방식
프로젝트 계획 => 설계 => 구현 => 테스트 => 배포

DevOps의 탄생

하지만 시간이 지나면서 점차 개발 단계에서도 단순히 코드 구현만 하는 것이 아닌 Planning, Build 자동화, Test 자동화 등의 과정을 필요로 하게 되었고, 배포로 끝나는 것이 아니라 Monitoring, 버그가 발생하면 버그를 수정하고 다시 Test 코드로 수정하는 등의 여러 가지 과정들이 하나의 Cycle처럼 이루어져야 한다는 의견이 많아지면서 DevOps라는 하나의 방법론이 정의되게 된것입니다.

 

DevOps가 탄생하면서 소프트웨어 개발 분야에서 기술적, 문화적으로 많은 발전이 이루어졌습니다.

그렇다면 DevOps를 ML Project에 어떻게 적용할 수 있을까요?

ML Project와 SW Project의 유사성 및 차이점

출처 :https://papers.nips.cc/paper/2015/file/86df7dcfd896fcaf2674f757a2463eba-Paper.pdf

위 이미지는 ML Project를 서비스화 하기 위한 작업들을 보여주는 이미지 입니다. DevOps 이미지와 비교해서 비슷한 점이 보이시나요?

이미지 상으로는 Monitoring이라는 단어만 비슷하게 보여서 두 분야의 유사점을 아래 표로 정리해두었습니다.

버전 관리 테스트 자동화 모니터링
데이터 버전 관리 모델 학습 자동화 서빙 모델 모니터링
모델 버전 관리 모델 성능 평가 자동화 데이터 변화 모니터링

버전 관리, 테스트 자동화, 모니터링 등 부분에서 ML Project와 SW Project는 유사점을 가지고 있지만 DevOps의 구성요소들 중에서 필요한 것들만 가져와서 바로 ML Project에 적용할 수 없습니다.

 

그 이유는 바로 "DATA의 유무"이기 때문입니다. 여기서 한 가지 의문점이 생길 수도 있습니다.

 

'SW Project에서도 데이터를 관리하는데 ML Project하고는 어떤 점이 다르길래 Data 때문에 DevOps를 적용할 수 없는거지?'

 

두 분야에서 말하는 Data의 차이는 필자가 생각해봤을 때 ML Model에 학습을 시키는 데이터이냐 아니냐의 차이 같습니다. 왜냐하면 Model에 학습시켜야 하는 데이터는 Model 성능에 영향을 주는만큼 더 많이, 더 깔끔하게 관리해주어야 한다고 생각합니다.

 

Andrew Ng 교수님께서도 이제는 Model 자체의 성능 향상보다는 Model에 학습 시키는 데이터를 더 중요하게 생각하고 계시는 만큼 DevOps 방법론을 그대로 차용하게 되면 이 부분을 놓칠 수도 있기 때문입니다.

 

그래서 DevOps와는 사뭇 다른 MLOps라는 방법론이 탄생하게 된 것입니다.

정리

MLOps가 DevOps의 방법론을 차용하게된 계기는 여러 기업들에서 수 많은 ML Project를 진행하면서 많은 실패들을 겪었는데 원인을 분석해보니까 모델 개발외에 버전 관리, 테스트 자동화, 모니터링 등 다양한 업무의 자동화에 대한 필요성을 느끼게 되었고, 이런 의견들이 모아지고 DevOps의 이런저런 구성요소들을 결합해서 ML 모델에 적용하면서 하나씩 정의해가고 있다.라고 생각하면 될 것 같습니다.

MLOps는 ML을 효율적으로 개발하고 성공적으로 서비스화하고 운영할 때 필요한 모든 것을 다루는 분야.라고 정의할 수 있을 것 같습니다.

MLOps가 ML Project의 모든 부분을 다루는 만큼 필자가 생각하는 MLOps는 하나의 MLOps Pipeline을 개인이 커스터마이징 할 수 있다는 점이 상당히 재미있는 분야라고 생각합니다.
아직 MLOps 공부하고 있는 한 사람이기 때문에 해당 포스팅에 정확하지 않은 정보가 있을 수도 있습니다. 제가 잘 못 작성한 부분이 있다면 댓글로 알려주시면 감사하겠습니다.

'MLOps' 카테고리의 다른 글

MLOps의 구성 요소는?  (0) 2023.07.13
MLOps는 왜 등장했을까??  (0) 2022.04.08