Server Programming/DevOps

MLOps 정의

Dev.BeryL 2022. 1. 27. 19:36
728x90

ML + Devops → ML 시스템에 Devops를 적용한 것이 MLOps라고 생각한다.

  • MLOps는 ML의 전체 생명주기를 관리함
  • ML 모델을 학습하고 배포하는 단계
  • 데이터를 수집하고 분석하는 단계
  • Data Collection, Ingestion, Analysis, Labeling, Validation, Preparation

DevOps vs MLOps

MLOps는 아래와 같은 점들에서 소프트웨어 시스템과 차이를 가진다.

  • Testing
    • 일반적인 단위, 통합 테스트 외에 데이터 검증, 학습된 모델 품질 평가, 모델 검증이 추가로 필요하다.
  • Deployment
    • 오프라인에서 학습된 ML모델을 배포하는 수준에 그치는 것이 아니라, 새 모델을 재 학습하고, 검증하는 과정을 자동화해야 한다.
  • Production
    • 일반적으로 알고리즘과 로직의 최적화를 통해 최적의 성능을 낼 수 있는 소프트웨어 시스템과 달리, ML 모델은 이에 더해서 지속적으로 진화하는 data profile 자체만으로도 성능이 저하될 수 있다.즉, 기존 소프트웨어 시스템보다 더 다양한 이유로 성능이 손상될 수 있으므로, 데이터의 summary statistics를 꾸준히 추적하고, 모델의 온라인 성능을 모니터링하여 값이 기대치를 벗어나면 알림을 전송하거나 롤백을 할 수 있어야 한다.
  • CI (Continuous Integration)
    • CI는 code와 components뿐만 아니라 data, data schema, model에 대해 모두 테스트되고 검증되어야 한다.
  • CD (Continuous Delivery)
    • 단일 소프트웨어 패키지가 아니라 ML 학습 파이프라인 전체를 배포해야한다.
  • CT (Continuous Training)
    • ML 시스템만의 속성으로, 모델을 자동으로 학습시키고 평가하는 단계이다.

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

반응형

'Server Programming > DevOps' 카테고리의 다른 글

docker timezone  (0) 2022.02.01
Docker 기본 사용법  (0) 2022.02.01
Azure Key-valut를 이용한 백업 프로세스 구축  (0) 2022.01.28
MSA 설계  (0) 2022.01.28
Docker 에 관한 기본 정리  (0) 2022.01.24