MLOps가 언제 필요할까?
Data scientist의 문제상황들
모델을 운영하고 프로덕션에 사용할때 직면하는 문제들이 몇몇 있다.
1. 많은 모델을 훈련하고 tracking하는데, 여러 버전, 여러 하이퍼파라미터, metric을 추적하고 재현하는데 어려움이 있다.
2. 새로운 데이터가 들어오면 모델을 재학습해야한다.
3. 모델을 운영(학습)하는데 생기는 issue에 대해 엔지니어가 필요하다.
시간과 모델의 품질의 관리 및 배포를 자동화 할 수 있으며, 이를 DevOps라고 한다.
DevOps를 machine learning에도 적용할 수 있다.
머신러닝의 lifecycle
머신러닝 모델을 개발하고 상용화하는 단계에서의 목표는 자원, 데이터, 코드, 시간, 품질을 효율적으로 관리하는 것과 비즈니스적 목표의 균형을 맞추는 것이다.
CI (continuous intergration): 각자 작업한 코드를 한곳으로 합칠때 main version과 차이는 없는지, 제대로 작동하는지 testing을 통해 main code에 merge하는데, 이를 CI라고 한다.
CD (continuous delivery): CI를 통해 전달 된 코드를 testing하고 release하는 과정을 CD라고 한다. 이때 main development code는 언제든지 release할 수 있도록 짧은주기로 test해야한다.
CT (continuous test): 새로운 데이터로 재학습되는 것을 모니터링하고, 유효한 데이터인지 데이터의 스키마를 관리하는 것
ml 시스템은 시간 리소스와 품질(기술 부채)사이에 trade off가 있다.
ml 시스템은 데이터 과학자들이 데이터 분석, 모델개발 및 실험을 지속적으로 진행하고 결과를 추적하며, 코드의 재사용성을 극대화하며 재현성을 유지하는 것이며, 이를 테스트 하는 것.
본 포스팅은 google quicklabs을 바탕으로 학습한 내용입니다.
댓글