머신러닝 프로젝트를 지속적으로 통합(CI), 지속적 배포(CD), 지속적 학습(CT)를 구현하고 자동화하는 기술을 설명한다.

 

 - DevOps와 MLOps의 비교

DevOps란 대규모 소프트웨어 시스템을 개발하고 운영하는데 사용된다. 효율적인 DevOps는 개발 주기 단축, 배포 속도 증가, 안정적인 출시 등의 이점을 제공한다. 이러한 이유는 지속적 통합(CI : Continuous Integration)와 지속적 배포(CD : Continuous Deployment) 의 효과이다

 

MLOps는 DevOps와 비슷하지만 다른점은 이와같다

1. 머신러닝은 주로 수학자와 데이터 사이언티스트, 연구원으로 구성되어 있기 때문에 프로덕션 수준의 서비스 빌드가 가능한 인력이 없을 수 있다.

2. ML은 기본적으로 실험에 기반한 기술이다. 많은 사람들이 하이퍼파라미터의 변경에 어떤 수학적 함수를 따르는지 모른다. 그렇기에 실험을 통해 좋은 하이퍼파라미터를 찾게되는데 이런 과정에서 모델의 성능이 좋았던 것과 안좋았던것 을 잘 정리하고 모델 코드를 잘 분류하여 코드 재사용성을 극대화하고 재현성을 유지해야한다

3. 머신러닝은 다른 소프트웨어보다 더 복잡하다. 단위테스트, 데이터 검증(Data Validation), 학습 모델 평가, 모델 검증(Model Validation)이 필요하다

4. 머신러닝 모델은 지속적으로 업데이트가 되어야한다. 계속하여 서비스되고있는 모델의 성능을 검증하고 평가하고 평가점수가 낮아졌다면 모델의 학습을 다시 진행시켜야 완벽한 서비스가 진행된다. 이를 위해 지속적인 배포를 위한 자동화가 필요하다

5. 사용자의 데이터는 계속하여 진화된다. 이로인해 모델이 학습하지 못한 데이터가 입력으로 들어올 가능성이 크다. 이러한 문제는 모델의 성능 저하로 이어지기 때문에 데이터의 통계를 관찰하고 모델의 성능을 지속적으로 모니터링 하여 trigger를 발생시켜 문제를 인식하여야 한다.

 

  DevOps MLOps
CI(Continuous Integration) 코드와 구성요소 테스트 및 검증 DevOps + 데이터, 데이터 스키마, 모델
테스트 및 검증
CD(Continuous Deployment) 단일 소프트웨어 서비스 배포 DevOps + 모델 서비스 자동 배포
CT(Continuous Training) X 모델 자동 재학습

 

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

 

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

이 문서에서는 머신러닝(ML) 시스템을 위한 지속적 통합(CI), 지속적 배포(CD), 지속적 학습(CT)을 구현하고 자동화하는 기술을 설명합니다. 데이터 과학 및 ML은 복잡한 실제 문제를 해결하고, 업계

cloud.google.com

 

+ Recent posts