매일 업데이트
2023-06-07 13:54 10 min

기계 학습 모델을 구축하고 배포하기 위한 9가지 최고의 MLOps 플랫폼

기계 학습 모델 하나를 만드는 것은 비교적 간단하지만, 수많은 모델을 생성하고 기존 모델을 반복적으로 개선하는 과정은 상당히 복잡합니다.

이 과정에서 혼란에 빠지기 쉽고, 팀으로 협업할 때는 이러한 혼란이 더욱 심화될 수 있습니다. 각 팀원이 어떤 작업을 수행하는지 추적해야 하기 때문입니다. 이러한 혼란을 방지하고 체계적인 프로세스를 확립하기 위해서는 팀 전체가 일관된 절차를 따르고 각자의 활동을 명확하게 문서화해야 합니다. 이것이 바로 MLOps의 핵심입니다.

MLOps란 무엇인가?

출처: ml-ops.org

MLOps.org에 따르면, 기계 학습 운영화(Machine Learning Operationalization)는 재현 가능하고 테스트 가능하며 지속적으로 발전 가능한 ML 기반 소프트웨어를 설계, 구축 및 관리하기 위한 포괄적인 기계 학습 개발 프로세스를 구축하는 것을 목표로 합니다. 쉽게 말해, MLOps는 기계 학습에 적용되는 DevOps 원칙이라고 할 수 있습니다.

DevOps와 마찬가지로, MLOps의 핵심은 수동 단계를 최소화하고 효율성을 극대화하는 자동화입니다. 또한, DevOps처럼 지속적 통합(CI)과 지속적 배포(CD)를 포함하며, 여기에 지속적 학습(CT)이라는 개념이 추가됩니다. CT는 새로운 데이터로 모델을 재학습시키고 이를 다시 배포하는 과정을 포함합니다.

따라서 MLOps는 기계 학습 모델 개발 및 방법론의 다양한 단계를 자동화하기 위한 체계적인 엔지니어링 문화라고 할 수 있습니다. 이 프로세스는 주로 데이터 추출, 분석, 준비, 모델 학습, 평가, 모델 배포 및 모니터링으로 구성됩니다.

MLOps의 이점

일반적으로 MLOps 원칙을 적용함으로써 얻을 수 있는 이점은 표준 운영 절차를 따르는 것과 유사합니다. 주요 이점은 다음과 같습니다.

  • 명확하게 정의된 프로세스는 모델 개발의 중요한 단계를 안내하는 로드맵 역할을 합니다. 이를 통해 중요한 단계를 놓치지 않을 수 있습니다.
  • 자동화 가능한 프로세스 단계를 식별하여 자동화할 수 있습니다. 이는 반복적인 작업을 줄이고 개발 속도를 향상시키는 동시에 인적 오류를 제거합니다.
  • 모델이 파이프라인의 어느 단계에 있는지 명확히 파악할 수 있어 모델 개발 진행 상황을 쉽게 평가할 수 있습니다.
  • 개발 과정에서 수행해야 할 단계에 대한 공통된 용어를 사용함으로써 팀 간의 커뮤니케이션이 원활해집니다.
  • MLOps 프로세스는 많은 모델을 반복적으로 개발하는 데 적용할 수 있으며, 복잡한 개발 과정을 효율적으로 관리하는 방법을 제공합니다.

결론적으로, MLOps는 기계 학습 모델 개발을 체계적으로 접근하고, 최대한 자동화하여 효율성을 높이는 데 중요한 역할을 합니다.

파이프라인 구축을 위한 플랫폼

MLOps 파이프라인 구축을 지원하기 위해 다양한 플랫폼이 존재하며, 각각 고유한 기능을 제공합니다. 이러한 플랫폼들은 다음과 같은 주요 기능을 제공합니다.

  • 모델의 구성, 코드, 정확도, 실험 등 관련 메타데이터와 함께 모든 모델을 저장하고 버전 관리를 제공합니다.
  • 모델 학습에 사용된 데이터 세트의 메타데이터를 관리합니다.
  • 실제 환경에서 모델을 모니터링하여 모델 드리프트와 같은 문제를 파악합니다.
  • 모델을 프로덕션 환경에 배포합니다.
  • 코드 작성량을 줄이거나 코드를 전혀 사용하지 않고 모델을 구축할 수 있는 환경을 제공합니다.

이제 주요 MLOps 플랫폼을 살펴보겠습니다.

MLflow

MLflow는 가장 인기 있는 기계 학습 수명 주기 관리 플랫폼 중 하나이며, 무료 오픈 소스입니다. 주요 기능은 다음과 같습니다.

  • 기계 학습 실험, 코드, 데이터, 구성 및 최종 결과를 기록하는 추적 기능
  • 코드 재현성을 높이기 위한 프로젝트 패키징 기능
  • 모델 배포 기능
  • 중앙 저장소에 모든 모델을 저장하는 레지스트리 기능

MLflow는 TensorFlow 및 PyTorch와 같은 널리 사용되는 기계 학습 라이브러리와 연동되며, Apache Spark, H20.asi, Google Cloud, Amazon Sage Maker, Azure Machine Learning 및 Databricks와 같은 플랫폼과도 통합됩니다. 또한 AWS, Google Cloud, Microsoft Azure 등 다양한 클라우드 공급자와의 호환성을 제공합니다.

Azure Machine Learning

Azure Machine Learning(AML)은 엔드 투 엔드 기계 학습 플랫폼으로서, 데이터 준비, 모델 구축 및 학습, 모델 검증 및 배포, 배포 관리 및 모니터링 등 기계 학습 수명 주기의 다양한 활동을 관리합니다.

AML을 사용하면 선호하는 IDE와 PyTorch 또는 TensorFlow 프레임워크를 사용하여 모델을 구축할 수 있습니다.

또한 ONNX Runtime 및 Deepspeed와의 통합을 통해 학습 및 추론을 최적화하여 성능을 향상시킵니다. Microsoft Azure의 AI 인프라(NVIDIA GPU 및 Mellanox 네트워크)를 활용하여 기계 학습 클러스터를 구축할 수 있습니다. AML을 사용하면 중앙 레지스트리를 통해 모델과 데이터 세트를 저장하고 공유할 수 있습니다.

AML은 Git 및 GitHub Actions와 통합되어 워크플로를 구축하며, 하이브리드 또는 멀티 클라우드 설정을 지원합니다. 또한 Synapse Analytics, Data Lake, Databricks 및 Security Center와 같은 다른 Azure 서비스와도 연동됩니다.

Google Vertex AI

Google Vertex AI는 통합 데이터 및 AI 플랫폼으로서, 사용자 지정 모델과 사전 학습된 모델을 구축하는 데 필요한 도구를 제공합니다. MLOps 구현을 위한 엔드 투 엔드 솔루션으로도 활용될 수 있습니다. BigQuery, Dataproc, Spark와의 통합을 통해 학습 중에 원활한 데이터 접근성을 보장합니다.

API 외에도, Vertex AI는 비즈니스 및 데이터 분석가, 엔지니어와 같은 비개발자가 사용할 수 있도록 로우 코드 및 노 코드 도구 환경을 제공합니다. API를 통해 개발자는 기존 시스템과 API를 통합할 수 있습니다.

Vertex AI를 사용하면 Generative AI Studio를 통해 생성형 AI 앱을 구축할 수도 있습니다. 인프라를 쉽고 빠르게 배포하고 관리할 수 있으며, 데이터 준비, 기능 엔지니어링, 학습 및 초매개변수 조정, 모델 배포, 모델 조정 및 이해, 모델 모니터링, 모델 관리 보장 등 다양한 사용 사례를 지원합니다.

Databricks

Databricks는 데이터를 준비하고 처리할 수 있는 데이터 레이크하우스 플랫폼입니다. 실험부터 프로덕션 환경까지 전체 기계 학습 수명 주기를 관리하는 데 사용될 수 있습니다.

Databricks는 ML 모델의 데이터 로깅, 버전 관리, 실험 추적, 모델 제공, 모델 레지스트리, 메트릭 추적 등 기능을 제공하는 관리형 MLflow를 기본적으로 제공합니다. 모델 레지스트리를 통해 재현성을 높이기 위해 모델을 저장하고, 각 모델의 수명 주기 단계에서 버전을 추적할 수 있습니다.

Databricks를 사용하여 모델을 배포하는 것은 클릭 한 번으로 가능하며, 예측을 생성하는 데 사용할 수 있는 REST API 엔드포인트가 제공됩니다. 또한 Hugging Face Transformers 라이브러리의 모델과 같이 사전에 학습된 기존 생성형 모델과 대규모 언어 모델을 포함한 다양한 모델과의 통합을 지원합니다.

Databricks는 Python, R, SQL 및 Scala를 지원하는 협업 Databricks 노트북을 제공하며, 기계 학습 작업에 최적화된 사전 구성된 클러스터를 통해 인프라 관리를 간소화합니다.

AWS SageMaker

AWS SageMaker는 기계 학습 모델을 개발, 학습 및 배포하는 데 필요한 도구를 제공하는 AWS 클라우드 서비스입니다. SageMaker의 주요 목적은 기계 학습 모델 구축과 관련된 반복적인 수동 작업을 자동화하는 것입니다.

SageMaker는 Amazon EC2 인스턴스 및 Amazon S3 스토리지와 같은 다양한 AWS 서비스를 사용하여 기계 학습 모델을 위한 프로덕션 파이프라인을 구축할 수 있는 도구를 제공합니다.

SageMaker는 기계 학습 모델 코딩에 필요한 모든 패키지 및 라이브러리가 포함된 EC2 인스턴스에 설치된 Jupyter 노트북과 함께 작동하며, Amazon Simple Storage Service에서 데이터를 가져올 수 있습니다.

기본적으로 선형 회귀 및 이미지 분류와 같은 일반적인 기계 학습 알고리즘을 구현하며, 모델에 최적의 성능을 제공하는 매개변수 세트를 찾기 위해 자동 튜닝 기능을 지속적으로 제공합니다. 또한 CloudWatch를 통해 모니터링할 수 있는 안전한 HTTP 엔드포인트로 모델을 AWS에 쉽게 배포할 수 있어 배포 과정을 간소화합니다.

DataRobot

DataRobot은 데이터 준비, ML 실험, 유효성 검사 및 모델 관리와 같은 기계 학습 수명 주기의 여러 단계를 관리할 수 있는 MLOps 플랫폼입니다.

다양한 데이터 소스를 사용하여 실험을 자동화하고, 수천 개의 모델을 테스트하고, 프로덕션에 배포할 최상의 모델을 평가할 수 있는 도구를 제공합니다. 시계열, 자연어 처리, 컴퓨터 비전 등 다양한 유형의 AI 모델 구축을 지원합니다.

DataRobot을 사용하면 즉시 사용할 수 있는 모델을 이용하여 코드를 작성하지 않고도 모델을 구축할 수 있습니다. 또한, 코드 우선 접근 방식을 선택하여 사용자 정의 코드를 사용하여 모델을 구현할 수도 있습니다.

DataRobot은 코드를 작성하고 편집할 수 있는 노트북을 제공하며, API를 사용하여 선호하는 IDE에서 모델을 개발할 수도 있습니다. GUI를 통해 모델 실험을 추적할 수 있습니다.

Run:AI

Run:AI는 AI 인프라, 특히 GPU 활용도가 낮은 문제를 해결하기 위해 노력합니다. 모든 인프라의 가시성을 높이고 학습 중에 최대한 활용하도록 함으로써 이 문제를 해결합니다.

Run:AI는 MLOps 소프트웨어와 회사의 하드웨어 사이에 위치하여, 학습 작업이 Run:AI를 통해 실행되도록 합니다. 플랫폼은 각 작업의 실행 시간을 예약합니다.

하드웨어가 클라우드 기반(AWS, Google Cloud 등), 온프레미스, 또는 하이브리드 솔루션인지 여부에 관계없이 사용 가능합니다. GPU 가상화 플랫폼으로 작동하여 기계 학습 팀에 추상화 계층을 제공합니다. Jupyter Notebook, bash 터미널, 또는 원격 PyCharm에서 작업을 실행할 수 있습니다.

H2O.ai

H2O는 오픈 소스 분산 기계 학습 플랫폼입니다. 팀 협업을 지원하며, 데이터 과학자들이 다양한 모델을 실험하고 비교할 수 있는 모델 중앙 저장소를 생성할 수 있도록 돕습니다.

MLOps 플랫폼으로서 H2O는 여러 핵심 기능을 제공합니다. 서버에 모델을 REST 엔드포인트로 배포하는 과정을 단순화하며, A/B 테스트, 챔피언-챌린저 모델, 단순 단일 모델 배포 등 다양한 배포 시나리오를 지원합니다.

학습 중 데이터, 아티팩트, 실험, 모델 및 배포를 저장 및 관리하여 모델 재현성을 높입니다. 그룹 및 사용자 수준의 권한 관리를 통해 모델과 데이터를 안전하게 관리할 수 있으며, 모델 실행 중 실시간 모니터링을 통해 모델 드리프트와 같은 운영 지표를 파악할 수 있도록 지원합니다.

Paperspace Gradient

Gradient는 기계 학습 개발 주기 전반에 걸쳐 개발자를 지원하는 플랫폼입니다. 강력한 GPU를 사용하여 클라우드에서 모델 개발 및 학습을 위한 오픈 소스 Jupyter 기반 노트북을 제공하며, 모델을 빠르게 탐색하고 프로토타입을 만들 수 있도록 돕습니다.

YAML 형식으로 정의된 워크플로를 통해 배포 파이프라인을 자동화할 수 있으며, 모델 배포 및 제공을 용이하게 하고 확장성을 높입니다.

Gradient는 기계 학습 모델 개발 파이프라인의 여러 단계를 관리하는 데 필요한 컨테이너, 머신, 데이터, 모델, 메트릭, 로그 및 비밀을 제공합니다. 파이프라인은 Paperspace Cloud, AWS, GCP, Azure 또는 기타 서버에 있는 Gradient 클러스터에서 실행됩니다. 프로그래밍 방식으로 CLI 또는 SDK를 사용하여 Gradient와 상호 작용할 수 있습니다.

마지막 말

MLOps는 기계 학습 모델을 대규모로 구축, 배포 및 관리하기 위한 강력하고 유연한 접근 방식입니다. 사용하기 쉽고 확장 가능하며 안전하다는 장점으로 인해 모든 규모의 조직에 적합합니다.

이 글에서는 MLOps, MLOps 구현의 중요성, 관련 주요 항목, 널리 사용되는 다양한 MLOps 플랫폼에 대해 살펴보았습니다.

다음으로는 Databricks와 Snowflake의 비교 분석을 읽어보시는 것을 추천합니다.

저자
Korea

기술 트렌드와 실용적인 팁을 전하는 लेखक입니다.