Home [MLOps Specialization / Step1] The ML Project Lifecycle
Post
Cancel

[MLOps Specialization / Step1] The ML Project Lifecycle

The Machine Learning Project Lifecycle

이 포스트는 Coursera의 MLOps Specialization 강의 내용을 기반으로 작성되었습니다.


Step of an ML Project

  • ML project는 크게 4단계의 구성으로 이루어져 있음
  • Scoping
    • Define project : project의 목적성을 정의
  • Data
    • Define data and establish baseline : 데이터를 정의하고 기준점 설정
    • Label and organize data : 데이터의 상태에 따라 라벨링 및 구조화
  • Modeling
    • Select and train model : 여러 모델 후보군을 설정하고 적절한 모델 선택
    • Perform error analysis : 모델의 에러 분석
  • Deployment
    • Deploy in production : 실제 서비스 배포
    • Monitor & maintain system : 배포한 서비스를 지속적 모니터링
  • 4가지의 과정은 단순히 한방향으로만 흐르는 것이 아닌 상황에 따라 이전 단계로 돌아갈 수 있음
  • 많은 개발자들이 배포(Deplyment)단계에서 서비스를 배포하는 것이 끝인 줄 알지만 Andrew Ng은 배포 후 모니터링까지가 완전한 배포단계라고 함

Andrew Ng은 전반적인 서비스 배포 단계에서 배포를 제외한 다른 부분은 동일하게 흘러가지만 배포단계에서 단순히 배포만 하는 것을 끝이라고 생각하는 것을 문제점으로 제시했습니다. Andrew Ng은 이것은 배포 단계 중 절반정도이며 나머지 절반은 배포 후 모니터링과 유지보수까지가 완전한 배포단계라고 했습니다.
좀 더 이해를 하고자 음성 인식 서비스를 배포하는 과정을 예로 들었습니다.


Case study : speech recognition

Scoping Stage

  • Scoping 단계에서는 프로젝트의 목적을 학실히하는 것이 중요
  • 음성인식 서비스의 목적은 voice search에 필요한 음성인식
  • 음성인식 성능을 측정하기 위한 핵심 측정 지표를 설정해야함
    • 이는 매우 문제 의존적
    • 정확도, 지연율, 처리속도 등…
  • 프로젝트에 사용될 resource와 전반적인 일정 설계도 요구됨

Data Stage

  • 데이터를 정의하는 단계
  • ML 연구와 서비스 배포에 필요한 데이터의 정의는 다름
    • ML 연구 : 머신러닝 성능 향상을 위한 고정된 데이터셋
    • 서비스 배포 : 필요한 경우 train/test 데이터셋을 수정할 수도 있음
  • 데이터 라벨이 일관적인가?
    • 같은 데이터에따라 다양한 라벨링이 붙을 수 있음
    • 예시에는 “Um, today’s weather”, “Um… today’s weather”, “Todya’s weather”처럼 하나의 음성을 다른 라벨링이 붙을 수도 있음
    • 이 경우 모델이 처리하는 과정에서 문제가 발생
  • 음성인식 케이스는 주변 소음 처리도 중요할것임
  • 어떤 데이터는 음성이 과도하게 크거나 작을 수도 있으므로 볼륨의 정규화도 필요

데이터를 설정하는 과정에서는 다양한 관점으로 데이터의 특징을 살려야합니다. Andrew Ng은 최근에 들어 데이터의 중요성을 많이 강조하고 있습니다. production이든 research든 모델을 구축하는 과정에선 더 많은 데이터 수집보다, 분석을 통해 정확한 수집 data를 파악하는 것이 모델구축에 더 효율적이라고 합니다.

Modeling Stage

  • 모델 선정과정에서 Reseach와 Production 관점에 따라 주요하게 바라보는 것이 다름
  • Research/Academia
    • Code (algorithm/model)
    • Hyperparameters
  • Product Team
    • Hyperparameter
    • Data
  • 에러분석 과정에서는 어떻게 systematically 하게 data를 향상할지를 고민
  • Hyperparamter를 수정하는 것은 코드나 데이터를 수정하는 것보다 미비한 효과가 나타남

연구와 서비스관점에서 모델링은 차이가 나타납니다. 연구관점은 데이터를 고정하고 나머지를 변경하는 것이 주 목적이지만 서비스 배포관점에서는 코드를 고정하고 나머지를 변경하는 것이 더 효율적일 수 있습니다.
모델링 과정에서 원하는 정도의 퍼포먼스가 나오지 않는다면 데이터 관점으로 돌아가는 것도 좋은 방법이라고 합니다.

Deployment Stage

  • 배포 과정에서는 서비스를 배포하는 것보다 이후 모니터링 과정도 중요
  • 모니터링 과정에서 음성인식의 분포가 변화할 수 있음
    • 예를 들면 주 데이터 분포가 어린 나이 목소리였으나 이후 시간이 지나 목소리 연령층이 올라가며 분포가 변하는 경우가 존재
  • 데이터 분포나 라벨 매핑 등이 변화하는 Concept/Data Drift가 발생하는 것을 모니터링 해야함

MLOps란?

  • 위의 전체 과정을 사람이 직접하기엔 너무 느림
  • ML lifecycle을 지원해주는 sw tool이 MLOps의 핵심 아이디어
This post is licensed under CC BY 4.0 by the author.

[BoostCamp AI Tech] Day19

[MLOps Specialization / Step1] Deployment

Comments powered by Disqus.