본문 바로가기

부스트캠프 AI Tech 3기/프로젝트 : P-stage

[Day80] Product Serving 1-2 MLOps 개론

MLOps 개론

모델 개발 프로세스(Research)

  1. 문제정의
  2. EDA
    데이터 특성 확인
  3. Feature Engineering
  4. Train
  5. Predict

보통 주피터 노트북으로 GPU instance 안에서 고정된 데이터를 사용해 학습했을 것이다.

학습된 모델을 웹 등의 서비스에서 사용할 수 있도록 하는 과정을 real world환경 / production 환경에 모델을 배포한다고 한다.

모델 개발 프로세스(Production)

  1. 문제정의
  2. EDA
  3. Feature Engineering
  4. Train
  5. Predict
  6. Deploy
    웹이나 앱에서 활용할 수 있게 만드는 과정
    모델에 input을 제공하고 output을 요청

모델이 배포되었다고 가정하면

  • 모델의 결과값이 이상할 수 있다.
    그럴 때는 원인을 알아보고, input값을 확인해보아야한다.
    outlier 제거를 위해서 별도의 처리가 필요하다
  • 모델의 성능이 계속 변경될 수 있다.
    정형 데이터에서는 예측값과 실제 레이블을 정확히 알 수 있지만 비정형 데이터에서는 알기 힘들 수 있다. 모델의 성능을 어떻게 확인할 지도 중요하다. 간혹 research환경에서 성능이 좋았던 모델이 production환경에서는 안 좋을 수 있다. 이 과정을 쉽게할 수 있는 준비가 필요하다

MLOps 란?

머신러닝 모델링 코드는 머신러닝 시스템 중 굉장히 일부다

데이터, 수집, infra등 주위의 것들이 많은 부분을 차지한다.

MLOps=ML(Machine Learning) + Ops(Operations)
         =ML engineering + data engineering + cloud + infra

: ML 모델을 운영하면서 반복적인 업무를 자동화

 

Research ML과 Production ML의 차이

  Research ML Production ML
데이터 고정 계속 변함
초점, 중요 요소 성능 빠른 inference, 해석 가능
도전 과제 SOTA 모델 안정적인 운영
학습 모델 구조, 파라미터 시간에 따라 변경된 데이터를 재학습
목적 논문 서비스의 문제 해결
표현 Offline Online

다양한 라이브러리들이 있다.

ML Ops Component

  • Infra(Server, GPU)
    • 트래픽
    • 서버의 CPU, Memory
    • scale up, scale out
    • 자체 서버 구축, 클라우드(AWS, GCP, Azure, NCP), 온 프레미스
    • 로컬 GPU, 클라우드 GPU
  • Serving
    • Batch Serving, Online Serving
    • clipper, BentoML 등의 라이브러리가 있다
  • Experiment, Model Management
    • 모델 생성일, 모델 성능, 메타정보, 하이퍼파라미터 등을 기록
    • mlflow 같은 라이브러리가 있다
  • Feature Store
    • feature를 집계한 feature store을 통해서 전처리하는 시간을 줄일 수 있다
    • 아직은 정형데이터에서 많이 사용한다
    • 라이브러리 : Feast, hopsworks
    • 라이브러리를 사용하지 않고 직접 개발하는 편이다.
  • Data Validation
    • feature의 분포 확인
    • training과  serving의 분포 차이
    • data drift, model drift, concept drift
    • data quality 측정
    • 라이브러리 : TFDV, AWS deequ
  • Continuous Training
    • 새로운데이터가 들어왔을 때, 갑자기 metric결과값이 안 좋아질 때 다시 학습
  • Monitoring
    • 모델의 지표, 인프라의 성능을 모니터링하여 결과 분석
  • Auto ML
    • 자동으로 학습 
    • 라이브러리 : NNI