오늘 할 일: 끝내주게 숨쉬기
article thumbnail

머신러닝은 데이터의 숨어잇는 패턴을 감지하여 함수(모델)로 나타내고 미래 사건을 예측하는 알고리즘입니다. 그렇다면 머신러닝 프로젝트는 예측을 잘하는 모델을 만드는 것이 전부일까요? 그렇지 않습니다. 흩어져있는 데이터들을 어떻게 가져올 것이며, 그 중 어떤 데이터들을 가져올 것인지, 어떻게 가공할 것인지, 모델은 어떻게 만들고 평가는 어떤 방식으로 할지, 모델을 만든 뒤에는 서비스로 어떻게 연결할 것인지까지 모두 머신러닝 프로젝트에서 고민해야 되는 문제입니다.

MLOps는 머신러닝 모델 자동화 프로세스로, 우리가 만든 모델이 실제 서비스로 이어질 수 있도록 해주는 파이프라인입니다. 본 포스팅에서는 MLOps가 무엇인지, 역할과 중요성에 대해 알아보겠습니다.

 

 

MLOps(Machine Learning Operations)란?

머신러닝 모델의 지속적인 배포와 자동화를 위한 프로세스(파이프라인)입니다. 데이터를 관리하고 머신러닝을 개발한 후, 서비스 운영까지의 전 과정을 통합해 신속하고 유연한 개발을 추구할 수 있도록 하며, 안정적으로 서비스를 출시하게 돕습니다.

출처: 마이크로소프트 코리아 유튜브

위 ML 생애주기를 살펴보면, 크게 데이터 준비 -> 실험과 학습 -> 모델 검증 -> 배포와 서빙으로 이루어져 있는 것을 확인할 수 있는데요, 모델이 완성되어 운영에 올라간다고 끝나는 것이 아닙니다. 지속적으로 서비스를 모니터링하고 모델의 성능이 떨어지면 재학습을 하고, 재배포를 하는 과정까지 MLOps가 하는 일이 됩니다.

 

 

DevOps와의 비교

DevOps와 MLOps은 입력이 주어졌을 때 프로세스를 처리하고, 단위테스트와 통합테스트를 진행한 후, 배포와 모니터링을 통해 루프를 도는 과정을 동일하게 갖고 있습니다. 차이는 아래와 같습니다.

 

DevOps

  • 코드를 컴파일하고 테스트 하는 과정, 테스트 완료 후 서비스 형태로 패키징하여 배포하는 과정을 아우르며, 통합 서비스와 운영배포를 반복
  • 지속적 통합(CI, Continuous Integration)과 지속적 배포(CD, Continuous Delivery)를 기본 개념으로 가져갑니다.
    • 지속적 통합: 코드와 구성요소 테스트 및 검증
    • 지속적 배포: 단일 소프트웨어 패키지 또는 서비스 자동 배포 시스템

 

MLOps

  • 모델: MLOps는 모델을 만드는 과정과 모델을 배포하는 과정을 포함하고 있습니다.
  • 데이터: MLOps는 데이터를 필요로 합니다. 모델을 만들기 위해 필요한 학습 데이터를 공급하는 과정과 학습한 모델에 현실의 데이터를 받아 예측하는 과정이 포함되어 있죠.
  • ML 시스템 개발과 운영을 통합하기 때문에 CI, CD와 더불어 지속적 학습(CT, Continuous Training) 개념이 추가됩니다.
    • 지속적 통합: 코드와 구성요소 테스트 및 검증과 더불어 데이터와 데이터 스키마, 모델도 테스트하고 검증하는 과정
    • 지속적 배포: 단일 서비스만이 아니라 다른 서비스(모델 예측 서비스)를 자동으로 배포하는 시스템 
    • (New!) 지속적 학습: 모델을 자동으로 재학습하고 제공하는 과정

 

 

MLOps의 중요성

데이터와 개발, 운영이 분리되면 데이터 사일로가 발생하면서 빠른 대응이 어려워지고, 서비스 운영에도 비효율을 초래하게 됩니다.

  • 데이터 사일로(Data Silo): 각각의 조직단위 또는 목적별로 IT 인프라를 도입, 구축하여 사용해, 부서/사업/솔루션 별로 데이터가 고립되어 전사관점의 의사결정을 방해하고, 비효율성이 증가하는 현상(출처)

만약 머신러닝 프로젝트를 단순한 모델 설계로만 취급한다면 비즈니스 활용 등 나머지 과정이 제대로 이뤄지지 못하여 프로젝트가 실패할 수 있겠죠. 위 ML 생애주기에서 보다시피 머신러닝 프로젝트를 성공적으로 수행하기 위해서는 모델 설계뿐만 아니라 챙겨야할 과정들이 많은데요, MLOps는 그 요소들을 잘 챙겨주어 작업 흐름을 매끄럽게 도와주며 관여하는 부서들의 협업을 쉽게 하여 생산성을 개선시킬 수 있게 해줍니다.

 

 

지금까지 MLOps의 정의와 역할에 대해 알아보았습니다. 머신러닝 모델을 만드는 것만 배워온 탓에 생소한 개념들이 없지않았는데요ㅎ, MLOps에 대해 알아보면서 머신러닝 프로젝트에서 운영이 얼마나 중요한지 깨우칠 수 있었습니다. 다음 포스트에서는 MLOps를 이루는 ML의 생애주기과 구성요소에 대해 알아보겠습니다.

 

 

 

참고

마이크로소프트 코리아 유튜브 

https://youtube.com/playlist?list=PLGh_JNxzXsX_8t45YO2Ktv36nkp1sx-Dy 

 

애저 듣고 보는 잡학지식

매일매일 업데이트되는 Azure에 대한 여러 주제 & 에피소드와 함께 만나는 “애저 듣고 보는 잡학지식” 영상 목록입니다. 본 목록은 현재 더 이상 업데이트되지 않으며, 최신 업데이트되는 목록

www.youtube.com

MLOps: 머신러닝의 지속적 배포 및 자동화 파이프라인

https://cloud.google.com/architecture/mlops-continuous-delivery-and-automation-pipelines-in-machine-learning?hl=ko#mlops_level_0_manual_process

 

MLOps: 머신러닝의 지속적 배포 및 자동화 파이프라인  |  Google Cloud

MLOps: 머신러닝의 지속적 배포 및 자동화 파이프라인 이 문서에서는 머신러닝(ML) 시스템을 위한 지속적 통합(CI), 지속적 배포(CD), 지속적 학습(CT)을 구현하고 자동화하는 기술을 설명합니다. 데

cloud.google.com

한국산업기술진흥원 - AI 개발의 혁신견인차, ‘MLOps’란?

[KIAT 애자일 2021년 제7호] AI 개발의 혁신견인차, ‘MLOps’란.pdf
0.59MB