[정보] 지속가능한 AI 서비스를 위한 MLOps!

2022.03.06 22:57 2,273 Views

안녕하세요!

오늘은 MLOps가 무엇인지, 왜 각광받고 있는 지에 대해 알아보겠습니다.


0. MLOps란?

경진대회를 참가할 때는 모델을 구축하고 주어진 데이터를 통해 예측 파일을 만드는 것에서 그치지만, 실제 현업에서는 예측 모델을 서비스에 적용하게 됩니다.

하지만, 모델을 서비스에 직접 적용하면 속도도 느릴 뿐더러 실시간으로 발생하는 오류를 잡아내기도 어려운 경우가 많습니다.


이처럼 모델을 실제 서비스에 적용한다면 어떻게 배포하고 관리할 것인가?에 대한 의문을 해결해주는 것이 MLOps입니다.


Untitled.png (1536×639)

출처 : https://www.phdata.io/blog/mlops-vs-devops-whats-the-difference/


MLOps = ML + DEV + OPS의 합성어이자, Machine Learning Operations의 약어입니다.

기존의 DevOps가 서비스에서 발생하는 오류를 관리한다면, MLOps는 ML 과정에서 발생하는 오류나 데이터를 관리하여 자동화해준다고 볼 수 있습니다.


즉, MLOps는 ML 모델의 지속적인 배포와 자동화를 위한 파이프라인으로, 모델을 유지 관리하고 모니터링하는 데 주안점을 두고 있습니다.


1.MLOps의 필요성

Untitled.png (714×607)

출처 : https://ichi.pro/ko/deiteo-gwahag-gigye-hagseub-peulojegteuui-jeonche-sumyeongjugi-21850675206379


ML의 라이프 사이클은 데이터 수집 및 준비, 모델 훈련, 모델 조정 및 배포, 모니터링과 같이 복잡한 구성 요소가 많이 모인 형태로 구성되어 있습니다.

따라서, 해당 프로세스를 동기화하고 협업이 이루어지는 상태를 유지하기 위해서는 엄격한 운영 원칙을 적용해야합니다.


MLOps는 이러한 ML의 라이프 사이클 실험 및 반복, 그리고 지속적인 업데이트를 총망라합니다.


2.MLOps의 조건

  • 지속적 통합 (CI) : 패키지와 구성요소(데이터 스키마, 모델) 빌드 및 테스트
  • 지속적 배포(CD) : 모델 예측 서비스(파이프라인, 모델) 배포 자동화
  • 지속적 학습 (CT) : 모델 학습 및 제공 자동화


3.MLOps의 장점

  • 효율성 : MLOps를 통해 모델의 배포 속도가 빨라지고, 고성능의 모델을 제공하여 프로덕션 속도가 향상됩니다.
  • 확장성 : 확장성과 관리에 주력된 MLOps는 수많은 모델을 감독, 제어, 관리, 모니터링하여 지속적으로 모델을 통합 및 배포할 수 있습니다.
  • 리스크 완화 : MLOps를 통해 투명성을 강화할 수 있고, 기업과 업계의 규정을 엄격히 준수하는 데 도움이 됩니다.


4.MLOps 사례 : Uber의 배달 소요 시간 예측

Untitled.png (1024×688)

출처 : https://medium.com/daria-blog/mlops-란-무엇일까-7ba8d9aae221


배달 소요 시간을 예측하는 건 상당히 어렵습니다.


각 가게 별로 방대한 데이터가 존재할 뿐만 아니라, 모델 학습하기 위해서 날씨부터 시간, 지역, 과거에 음식이 준비되는 데 걸린 시간 등 복잡한 학습 데이터가 필요하기 때문입니다.

이러한 어려움을 해결하기 위해 Uber미켈란젤로라는 내부 MLOps 시스템을 구축하여, 배달 소요 시간을 예측하였습니다.


이 시스템의 주요 기능은 아래와 같습니다.


1.데이터 관리

Uber에서 데이터는 스트리밍 데이터Data Lake의 형태로 데이터가 존재합니다.

Data Lake의 방대한 양을 처리하기 위해 Spark와 같은 분산처리시스템을 사용하며, 스트리밍 데이터를 정제하기 위해 Kafka, Samza와 같은 스트리밍 엔진을 사용합니다.


2.모델 학습 및 평가

정제 과정을 거친 데이터는 Feature Store에 저장이 되고, 이 데이터들은 주기적으로 학습됩니다.

학습된 모델은 평가 후 Model Repository에 저장됩니다.


3.모델 배포 및 서비스 적용

기존의 모델이 아니라 앞의 학습 과정에서 생성된 모델을 사용하도록 운영환경에 모델이 전달됩니다.

이 모델은 사용자에게 예측 시간을 실시간으로 알려주는 서비스와 주기적으로 식당의 배달 소요 시간을 계산하는 데 사용됩니다.


4.예측결과 모니터링

요청 데이터와 예측 값은 방대한 양이기 때문에 샘플링하여 저장합니다. 또한, 해당 데이터를 사용해 모델의 성능을 모니터링합니다.


Untitled.png (1024×577)

Uber의 미켈란젤로 시스템 파이프라인


Reference

[1] https://medium.com/daria-blog/mlops-란-무엇일까-7ba8d9aae221

[2] https://databricks.com/kr/glossary/mlops

[3] https://www.phdata.io/blog/mlops-vs-devops-whats-the-difference/


- 아직 배우는 입장으로 부족한 점이 많습니다. 수정해야하거나, 추가해야할 점이 있다면 댓글로 조언 부탁드립니다.

- 본 게시글은 데이콘 서포터즈 ‘데이크루’ 1기 활동의 일환입니다.

로그인이 필요합니다
0 / 1000
므인
2022.03.06 23:24

yoonj님의 게시물을 통해 MLOps에 대해 처음 접해보는데요!
필요성과 장점, 그리고 적용 사례까지 자세히 정리해주셔서 처음 접하는 저도 쉽게 이해할 수 있었어요.
앞으로 MLOps을 활용한 시스템들을 자주 찾아볼 수 있을것 같네요. 좋은 글 감사합니다 :)

yoonj
2022.03.06 23:30

저도 MLOps에 대해 들어만 봤지, 이번 게시글을 준비하면서 좀 더 자세히 알게된 것 같습니다.
이해하는 데 도움이 되었다니 다행입니다!