본문 바로가기

MLOps

MLOps는 왜 등장했을까??

DevOps나 Data Engineer, AI에 대해서 관심이 있으신 분들은 어쩌면 한 번쯤은 MLOps라는 단어를 들어봤을 수도 있을 것 같습니다. 아직은 MLOps가 DevOps나 다른 AI, Data 직군에 비해서 많이 알려지지는 않았지만 앞으로 AI가 여러 기업들에서 많이 사용된다면 중요하게 대두되지 않을까 하는 기대가 있습니다.

 

이 글에서는 우선 MLOps가 등장하게 된 배경에 대해서 간단하게 알아보겠습니다.

먼저, MLOps가 무엇인지 알아보기 전에 우리가 지금까지 진행했던 ML(머신러닝) 프로젝트 중에서 한 가지를 떠올려 보면서 아래의 질문에 답을 생각해 보세요.

※※ ML 프로젝트를 해봤던 경험이 있다면 이 글을 이해하는 데 많은 도움이 됩니다. (만약에 경험이 없다면 Kaggle의 Titanic Competition을 한 번 실습하고 오시면 좋습니다! / 해당 링크 : https://www.kaggle.com/c/titanic)

1. 가장 성능이 좋았던 Model의 정보를 기억하시나요? (정확도는 어느 정도였고, 데이터 전처리는 어떻게 수행했는지, Model의 Parameaters 등)
2. 혹시 성능이 3번째로 좋았던 Model의 정보는 기억하시나요??

 

왜 이런 질문들을 하는지 지금은 이해가 안 갈 수도 있습니다. 하지만 ML 프로젝트를 하다 보면 자주 접할 수 있는 문제가 있습니다.

바로 Vaildation(검증) Dataset에서의 성능이 좋더라도 Test Dataset의 성능이 떨어질 수도 있기 때문입니다.

 

실제로 ML Model을 서비스하는 상황에서도 똑같습니다. 갑자기 어떤 상황으로 인해서 Model의 성능이 떨어진 것을 확인했을 때 내가 학습시켰던 Model의 정보를 체계적으로 기록해두지 않았다면 처음부터 다시 데이터를 분석하고 전처리하고 Model을 만들어서 학습을 시켜야 하는 상황을 겪을 수도 있습니다.

학습환경과 배포환경은 같지 않습니다.

어떤 사람들은 "나는 기록도 잘하고 Model 버전마다 정보를 모두 기록해 두어서 괜찮아!"라고 말할 수도 있습니다.

 

만약에 혼자가 아니라 회사에서 여러 사람과 협업을 해야 하는 상황이라면? 5~10명 혹은 그 이상의 사람들과 협업을 해야 한다면 모든 정보를 체계적으로 관리할 수 있을까요? 게다가 누구는 Mac을 쓰고 누구는 Windows나 ubuntu를 쓰고, 또 누구는 Pytorch를 누구는 Tensorflow를 쓴다면 어떻게 하실 건가요?

 

위의 예시가 너무 극단적이라고 생각하시나요? 하지만 이미 여러 기업들은 이런 문제들을 겪고 있습니다. 실제로 85% 정도의 AI Project들은 서비스 단계까지 가지 못하고 폐기되는 경우가 많다고 합니다. (관련 링크)

 

Why 85% of AI projects fail

Learn from other people’s mistakes. Life is too short to make them all yourself.

towardsdatascience.com

 

현실 속의 ML 서비스화

우리가 지금까지 이 글에서 다뤘던 문제들은 모두 Model. 즉, Code에 관한 문제였다는 것입니다. 하지만 현실에서는 Model만 만들어서 할 수 있는 일이 많지 않습니다. 그렇다면 Model을 실제로 서비스하기 위해서는 어떤 과정들이 더 필요할까요?

 

아래의 이미지는 ML Model을 서비스화 하기 위해서 필요한 작업들을 나타낸 이미지입니다.

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

이미지에 보이는 것처럼 ML Code(Model)가 차지하는 부분이 굉장히 작다는 것을 알 수 있습니다. 다시 말해서 실제로 서비스를 하기 위해서는 더 다양한 문제들을 해결해야 한다는 것입니다.

이상 속의 ML 서비스화

데이터 준비 -> 모델 구현 -> 모델 배포

우리가 지금까지 했던 이런 식의 단 방향 흐름은 사실 Tutorial, 데이터 경진 대회(Kaggle, Dacon)와 같이 잘 정제되어 있는 데이터를 바탕으로 하는 아주 이상적인 환경에서나 기대할 수 있는 일이었던 것입니다.

위와 같은 이유로 인해서 MLOps가 등장하게 된 이유를 정리해보자면,

전통적인 ML Project의 한계점을 극복하기 위해서 DevOps라는 방법론, 문화를 차용하자는 아이디어에서  MLOps가 등장하게 되었습니다.

'MLOps' 카테고리의 다른 글

MLOps의 구성 요소는?  (0) 2023.07.13
MLOps = ML + DevOps  (2) 2022.04.30