본문 바로가기
취업

MLOps 란 무엇인가?

by vulter3653 2022. 6. 1.

출처 : 위키피디아

 

DevOps란?

MLOps를 말하기 위해서는 먼저 DevOps의 이해가 필요합니다. 

DevOps 는 '개발'을 뜻하는 'Development' 와 '운영'을 뜻하는 'Operations'가 합쳐진 단어입니다. 

즉, 소프트웨어 개발자와 정보기술 전문가 간의 소통, 협업 및 통합이 이루어지는 개발환경이나 문화를 의미합니다.

현재는 소프트웨어 개발자와 정보기술 전문가와 함께 보안팀도 함께 속합니다.

DevOps의 등장 이전

DevOps가 등장하기 이전에는 운영자와 개발자의 소통에 어려움이 많았습니다.

 

기존의 개발 운영 체제는

개발자는 시스템을 만들고 테스트를 거쳐서 운영팀에 넘기면 그 역할이 끝이였고,

운영자는 이렇게 개발자에게 넘겨받은 시스템을 운영자는 시스템을 배포 및 관리하는 것이 그 역할이였습니다.

이러한 시스템의 경우, 아무런 이상이 없을 경우에는 각자의 역할만을 담당하면 되기에 효율적인 분업이 되지만,

만약 시스템에 문제가 발생했을 경우, 각자 자기의 분야의 문제가 아니라고 하면 갈등이 초래되며,

이러한 갈등은 '시스템의 문제의 원인 파악' 이라는 공통의 문제를 해결하는데 어려움이 발생합니다.

 

또한 이러한 갈등이 발생했을 경우, 운영자가 사용자의 의견을 통해 개발자에게 것에도 어려움이 발생하며, 

점차 빠른 비지니스 환경의 변화로 기업의 새로운 요구사항의 발생으로 급히 업데이트를 거치게 되는 경우가 늘어나게되는데, 이러한 상황은 짧은 기간 내에 많은 변화가 생기기에 오류가 발생하는 경우가 많습니다. 이러한 오류에 대한 불만은 운영자가 듣게 되고 이러한 문제가 있어 급히 수정하여 재배포하는 역시 운영자가 담당합니다.

 

이러한 상황은 운영자와 개발자의 갈등을 점차 악화시키는 게 됩니다.

이러한 변화는 어떤 결과를 만들어 낼까요?

이러한 환경에서 등장하게 된 것이 DevOps 입니다. 

즉, 각각의 부서라는 서로의 벽을 허물고 소통을 통해 협업을 하는 개발환경을 의미합니다.

갈등의 시작의 원인 중 하나는 '시스템의 문제가 발생했을 상황'이였습니다.

기존의 경우에는 서로의 업무가 단절되어 있기에 서로의 업무를 이해하지 못했고, 이러한 상황은 갈등을 만들었습니다.

 

하지만 DevOps의 경우에는 서로의 소통이 가능합니다.

이러한 소통은 단순히 개발은 개발과 테스트, 운영은 운영과 배포를 넘어 개발과 테스트, 운영과 배포에 걸친 하나의 애플리케이션의 수명 주기의 전체적인 상황을 파악할 수 있게 만들었습니다. 즉, 문제가 발생시 기존보다 빠른 대응이 가능하고  이러한 방법은 보다 빠르게 고객의 니즈를 반영할 수 있으며 빠른 업데이트가 가능하게 되었으며 이러한 업데이트로 인해 문제가 발생하더라도 대응이 가능해지게 만들었습니다. 즉 신속한 문제 대응, 모니터링을 통한 지속적 통합과 지속적 제공이 가능해진 것입니다. 또한 이를 통해 시스템을 보다 편리하게 자동화 하는 것을 목표로 합니다.

MLOps 란?

출처 : 위키피디아

지금까지 DevOps에 대해서 설명했습니다. 가장 먼저 말했듯 이러한 설명을 한 것은 MLOps를 말하기 위해서 입니다. MLOps는 앞서 설명한 DevOps 에서 Data Engineering과 Machine Learning 까지 포함된 것입니다. 기존의 개발운영 체제에서 DevOps가 등장으로 신속한 문제 대응, 모니터링을 통한 지속적 통합과 지속적 제공이 가능해졌으며, 이를 통해  시스템을 보다 편리하게 자동화 하는 것을 목표로 하는 것을 살펴봤습니다. 

MLOps = Machine Learning + Data Engineering + DevOps

MLOps는 개발에 머신러닝이 들어간 것으로 생각하시면 보다 쉽게 알 수 있습니다. 즉 DevOps의 개발의 경우에는 코드를 통해 애플리캐이션을 개발하여 이를 배포하고 운영하였다면, MLOps의 개발의 경우에는 코드를 통해 머신러닝을 개발하여 이를 배포하고 운영하는 것입니다. 머신러닝을 개발하는 것이다 보니 머신러닝 모델에 들어갈 데이터가 필요하게 되는 것이며, 그러한 데이터를 이용하기에 데이터 전처리를 하는 과정 역시 필요하기에 Data Engineering이 필요하게 되는 것입니다. 

 DevOps 비교했을 때의 MLOps의 장점은?

그럼 기존의 DevOps와 비교했을 때, MLOps 의 장점은 무엇이 있을지 예상가는 분들도 계실 것입니다.

MLOps의 장점은 기존의 DevOps에서의 개발자의 입장과 운영자의 입장, 데이터 분석가의 입장에 따라 달라집니다.

 

먼저 개발자의 입장입니다. 기존의 DevOps 의 개발자의 입장에서는 기존의 개발의 영역에서 머신러닝의 영역까지 영역을 확장할 수 있다는 장점이 있습니다. 즉 개발에 활용가능한 방법과 범위가 보다 늘어난다는 것입니다.

 

다음 운영자의 입장입니다. 운영자의 입장에서는 기존의 DevOps 에서 배포 및 관리하는 측면에서 보다 머신러닝을 사용하기에 더 자동화된 환경에서 업무가 가능해집니다. 이러한 자동화는 기존보다 관리에 컨트롤이 쉬워진다는 장점이 있습니다.

 

데이터 분석가의 입장입니다. 머신러닝을 담당하는 데이터 분석가의 입장에서는 자신의 머신러닝이 실제로 어떠한 성능을 보이는지 배포부터 운영까지 모두를 모니터링이 가능해집니다. 이러한 모니터링을 통해 문제가 있다면 빠른 수정 및 보완이 가능해지고 만약 데이터가 오류가 있다면 새롭게 하이퍼파라미터 최적화를 통해 보다 수정을 거쳐 보다 높은 정확도의 머신러닝의 개발이 가능해진다는 장점이 있습니다.

 

이렇게 MLOps가 무엇인지 알아봤습니다. 현재 많이 부족한 연습생이 적은 글이니 수정할 점이 있으면 남겨주시면 감사하겠습니다. 감사합니다.

 

 

'취업' 카테고리의 다른 글

MLOps 엔지니어 채용공고 정리  (0) 2022.06.03