클라우드 전문정보

제목 [2부] 클라우드를 타깃으로 한 MLOps 서비스 구축
등록일 2022-11-07 조회수 481

마크베이스 / 박상은 본부장

 

대표적인 클라우드 사업자인 아마존, 구글, 마이크로소프트는 위의 요구사항을 충족시키기 위해서 다양한 MLOps 제품을 출시했다. 그 중 대표적인 것은 다음과 같다.

 

가. 아마존 - SageMaker

아마존 SageMaker는 완전 관리형 머신러닝 서비스로 머신러닝 모형을 빠르게 구축, 훈련, 최적화, 배포할 수 있도록 도와준다. 제공되는 콘솔 또는 스튜디오 도구에서 간략화된 방식으로 모형을 제작하는 것도 가능하며 저작 노트북을 인스턴스 형태로 제공하여 별도의 개발 서버를 관리하지 않고도 직접 머신러닝 코드를 작성하는 것도 가능하다.

만들어진 모형을 아마존 클라우드의 호스트 서버에 배포하는 기능을 제공하며, 이를 위한 모형 레지스트리, 모형 구축 파이프라인 및 프로젝트 제품군을 포함하고 있다.

 


[그림1. 기계학습을 위한 IDE인 SageMaker Studio (출처: https://aws.amazon.com/)]

 

나. 구글 - Vertex AI

서버리스 방식으로 동작하며 구글이 제공하는 다양한 사전 학습된 모형을 사용하거나, 직접 필요한 모형을 만들 수 있다. 최신 모형 학습에 사용되는 거의 모든 머신러닝 도구를 사용할 수 있다. 그리고 강력한 AutoML 기능으로 학습 및 모형 최적화 과정을 자동화할 수 있다.

Vertex AI에서 제공하는 MLOps 도구를 사용하면 하나의 UI 또는 API를 통해서 학습에서 배포까지 전체 과정을 자동화할 수 있다. 데이터 통합 기능도 제공해 구글이 정의한 BigQuery ML뿐 아니라 표준 SQL, Spark 등 데이터 처리를 위해 사용되는 도구를 폭넓게 사용할 수 있다.

 

[그림2. ML 전수명 주기에 걸친 Vertex AI 배치 구성도 (출처: https://cloud.google.com/vertex-ai?hl=ko)]

 

다. 마이크로소프트 - Azure Pipeline

Azure Pipeline은 윈도우즈, 리눅스 및 맥OS 모두에서 사용할 수 있는 클라우드 기반 파이프라인을 제공한다. 이를 통해서 애플리케이션이나 데이터 파이프라인을 구축하고 배포하는 과정을 자동화할 수 있게 해 준다. 배포 대상은 클라우드 또는 온프레미스 환경 어느 쪽이나 가능하며, 특히 마이크로소프트 Azure 이외의 다른 클라우드 서비스를 대상으로 배포하는 것도 가능하다.

머신러닝 기능만을 타겟으로 하는 제품은 아니며, 여기에 Azure에서 제공되는 머신러닝 기능인 Azure Machine Learning을 통합하여 Python과 머신러닝 라이브러리를 사용한 모형을 생성하고 이를 제품 환경으로 배포하는 것이 가능하다.

 


[그림3. Azure Machine Learning과 Azure Pipeline을 결합한 MLOps 아키텍쳐 예제 (출처: https://learn.microsoft.com/)]

 

위의 세 제품 모두 앞에서 언급한 클라우드 서비스의 MLOps 요구사항을 대체로 충실히 지원한다. 지원하는 수준에는 약간의 차이는 있는데, 머신러닝 자체의 기능은 구글이 다소 앞서며, 파이프라인과 엔드포인트 지원은 마이크로소프트가 조금 낫다. 아마존의 경우는 다양한 사례를 예제와 템플릿으로 구성해 머신러닝 기능을 쉽게 제품화할 수 있도록 도와주는 것이 특징이다.

 



 

4. 직접 구축 vs 클라우드 서비스 활용

 

클라우드 서비스를 활용해 MLOps를 구성하는 것은 시간과 비용의 절약 측면에서 분명한 장점이 있다. 하지만 표준 서비스 절차가 마련되어 있지 않아 특정 클라우드 사업자의 솔루션을 선택하면 향후 다른 클라우드 사업자나 온프레미스 클러스터로 이전하는게 쉽지 않다는 단점도 존재한다.

만약 유연하게 모든 환경을 적용하고 싶다면 쿠버네티스 서비스를 활용한 MLOps 환경을 직접 구축하거나, 쿠브플로우를 활용해 간소화된 방식으로 쿠버네티스 MLOps 환경을 구축할 수 있다. 대부분의 클라우드 서비스가 관리형 쿠버네티스 환경을 지원하므로 개발 및 테스트 환경을 그대로 제품 환경으로 옮겨갈 수 있다는 장점도 있다. 굳이 관리형 쿠버네티스 환경을 사용하지 않더라도 클라우드에서 호스팅된 서버 클러스터에 쿠버네티스 클러스터를 설치하고, 이 환경으로 배포하는 것도 가능하다.

 

아래 그림은 쿠브플로우에서 시작하는 머신러닝 제품의 클라우드 배포 환경의 예시이다. 쿠브플로우의 배포 대상을 단일 서버 기반의 쿠버네티스 테스트 환경인 미니쿠브(minikube)로 배포하여 제품 배포 전 테스트를 수행한다. 테스트를 성공적으로 통과하면, 클라우드에서 호스팅한 서버 클러스터로 쿠버네티스 클러스터를 최종 배포하거나, 각 클라우드 서비스 공급자들이 제공하는 관리형 쿠버네티스 서비스에 배포할 수 있다.

 


[그림4. 로컬 환경의 MLOps를 클러스터로 배포하는 절차의 예제]

 



 

5. 마치며

 

이 글에서는 쿠버네티스로 직접 구성하거나 클라우드 서비스에서 제공되는 기능을 활용한 MLOps 서비스에 대해서 소개하였다. 어떤 환경을 선택할 지에 대한 정답은 없다. 규모, 고객, 데이터의 특성 등 비즈니스의 성격에 맞는 환경을 구성하면 된다. 중요한 점은 머신러닝 모형을 규모와 목적에 맞게 잘 만들고, 이를 배포하는 과정을 자동화해서 비용을 절감하기 위한 베스트 프랙티스를 만들어 나가야 한다는 것이다.

다만 간과해서는 안되는 지점은 서비스를 구성하고 배포하는 엔지니어의 숙련도이다. 엔지니어의 숙련도에 따라서 유연한 쿠버네티스 클러스터를 선택할 수도 있고, 반대로 특정 클라우드 서비스의 이점을 최대한 활용할 수 있는 다른 선택도 가능하다. 이 경우 제품이 특정 클라우드 서비스에 락인(lock-in)되는 단점도 있지만, 인건비 투자와 작업 시간을 생각하면 큰 문제가 되지 않을 수 있다.

마지막 제안으로, 환경을 선택하고 이에 따른 비용을 산정할 때 애자일 방식으로 접근할 필요가 있다. 언젠가 구성하게 될 최종 구성도를 처음부터 적용하는 것은 불필요한 클라우드 요금으로 이어지고, 결국 과대투자로 이어질 수 있다. 현재 수준의 서비스에 적합한 현재의 목표 환경을 설정하고 이에 대한 투자부터 차례로 진행하는것이 합리적인 MLOps 투자 방식이 될 것이다.

 



저작권 정책

K-ICT 클라우드혁신센터의 저작물인 『클라우드를 타깃으로 한 MLOps 서비스 구축』은 K-ICT 클라우드혁신센터에서 마크베이스 박상은 본부장에게 집필 자문을 받아 발행한 전문정보 브리프로, K-ICT 클라우드혁신센터의 저작권정책에 따라 이용할 수 있습니다.
다만 사진, 이미지, 인용자료 등 제3자에게 저작권이 있는 경우 원저작권자가 정한 바에 따릅니다.