티스토리 뷰

Data Science&AI

[MLOps] MLOps란 무엇인가?

calmmimi 2022. 8. 6. 15:21

분석 업무를 하는 사람이면 누구나 MLOps에 관심을 가질 것입니다.

현재 다양한 MLOps 오픈소스들이 나오면서 크게 발전하고 있기 때문에

이를 실제 업무에 활용하기 위해 A-Z까지 정리해보고자 합니다.

 

MLOps 정의


 

MLOps는 DevOps에서 파생된 개념으로 ML시스템에서도 머신러닝 시스템 개발뿐만 아니라 서비스 운영을 안정적으로 제공해야 하기 때문에 MLOps라는 개념이 탄생하게 됩니다. 

 

Google과 Nvidia는 MLOps를 다음과 같이 정의합니다.

 

Google  : MLOpsML 시스템 개발(Dev)과 ML 시스템 운영(Ops)을 통합하는 것을 목표로 하는 ML 엔지니어링 문화 및 방식입니다. MLOps을 수행하면 통합, 테스트, 출시, 배포, 인프라 관리를 비롯하여 ML 시스템 구성의 모든 단계에서 자동화 및 모니터링을 지원할 수 있습니다.

https://cloud.google.com/architecture/mlops-continuous-delivery-and-automation-pipelines-in-machine-learning

 

MLOps: 머신러닝의 지속적 배포 및 자동화 파이프라인  |  클라우드 아키텍처 센터  |  Google Cloud

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

cloud.google.com

 

Nvidia : Machine Learning Operation의 줄임말 MLOps는 기업들이 소프트웨어 제품 및 클라우드 서비스의 확장된 지원을 통해 AI를 성공적으로 실행하기 위한 베스트 사례입니다.

https://blogs.nvidia.com/blog/2020/09/03/what-is-mlops/

 

What is MLOps?

Machine learning operations are best practices for businesses to run AI successfully.

blogs.nvidia.com

 

NVidia의 MLOps

 

정리해보면, MLOps는 Machine Learning Operatin의 줄임말로,모델 개발과 운영을 통합하여 ML시스템을 최적으로 운영하기 위한 ML엔지니어링 문화라고 할 수 있습니다. 

 

 

DevOps와 MLOps 비교


(아래 글은 https://cloud.google.com/architecture/mlops-continuous-delivery-and-automation-pipelines-in-machine-learning 번역/정리 하였습니다.)

 

DevOps는 대규모 소프트웨어 시스템을 개발하고 운영하는데 널리 사용되고 있습니다. 

DevOps는 지속적 통합(CI) / 지속적 배포(CD)을 통해 개발 주기 단축, 배포 속도 증가, 안정적인 출시 등 개발의 생산성과 운영의 안정성을 확보하게 됩니다.

 

ML 시스템은 소프트웨어 시스템이므로, 시스템을 안정적으로 빌드하고 운영할 수 있도록 DevOps와 유사한 방식(지속적 통합/단위테스트/통합테스트/소프트웨어 모듈 또는 패키지의 지속적 배포)을 적용하지만,

다음과 같은 면에서 다른 소프트웨어 시스템과 다릅니다.

 

  • Team Skills: 데이터 과학자 ML연구원으로 팀이 구성되어, 프로덕션 수준의 서비스를 빌드 할 수 있는 소프트웨어 엔지니어가 추가 필요합니다.
  • Development : Feature, 알고리즘, 모델링 기법, 파생변수 구성을 다양하게 실험해야 합니다. 그러므로 적합한 것과 적합하지 않은 것을 추적하고 코드 재사용성을 극대화하면서 재현성을 유지해야 합니다.
  • Testing : 일반적인 단위/통합 테스트 외에도 데이터 검증, 학습된 모델 품질 평가, 모델 검증 필요합니다.
  • Deployment : 모델을 자동으로 재학습시키고 배포하기 위해 multi-step의 파이프라인을 배포해야 할 수 있습니다. (복잡성 추가)
  • Production : ML 모델은 최적화되지 않은 코딩 뿐만 아니라, 시간의 흐름에 따라 데이터가 변경되어 성능이 저하될 수 있습니다.따라서 데이터의 요약 통계를 추적하고 모델의 온라인 성능을 모니터링하여 값이 기대치를 벗어나면 알림을 전송하거나 롤백해야 합니다.

위 내용을 다시 정리해보면 다음과 같습니다.

  • CI는 더 이상 코드 및 컴포넌트만 테스트하고 검증하는 것이 아니라 데이터, 데이터 스키마, 모델도 테스트하고 검증하는 것입니다.
  • CD는 더 이상 단일 소프트웨어 패키지 또는 서비스만이 아니라 다른 서비스(모델 예측 서비스)를 자동으로 배포해야 하는 시스템(ML 학습 파이프라인)입니다.
  • CT는 ML 시스템에 고유한 새 속성으로, 모델을 자동으로 재학습시키고 제공하는 데 사용됩니다.