Day_85 01. MLOps 개론

작성일

3 분 소요

MLOps 개론

모델 개발 프로세스 - Research

위 프로세스는 보통 자신의 컴퓨터, 서버 인스턴스 등에서 실행

고정된 데이터 를 사용해 학습

학습된 모델을 앱, 웹 서비스에서 사용할 수 있도록 만드는 과정이 필요

이런 경우 Real World, Production 환경에 모델을 배포 한다고 표현

모델 개발 프로세스 - Production

웹, 앱 서비스에서 활용할 수 있게 만드는 과정

  • “모델에게 데이터(Input)를 제공하면서, (Output) 예측해주세요” 라고 요청

모델이 배포되었다고 가정

모델의 결과값이 이상한 경우가 존재

$\rightarrow$ 원인 파악 필요

$\rightarrow$ Input 데이터가 이상한 경우가 존재(x 값이 0~100 이내여야 하는데 Input 으로 200이 들어오는 경우)

$\rightarrow$ Research 할 땐 Outlier 로 제외할 수 있지만, 실제 서비스에선 제외가 힘든 상황(별도 처리 필요)

모델의 성능이 계속 변경

$\rightarrow$ 모델의 성능은 어떻게 확인할 수 있을까?

$\rightarrow$ 예측 값과 실제 레이블을 알아야 함

$\rightarrow$ 정형(Tabular) 데이터에서는 정확히 알 수 있지만, 비정형 데이터(이미지 등)는 잘 모를 수 있음

새로운 모델이 더 안 좋다면?

$\rightarrow$ 그 모델을 다시 사용해야 함

$\rightarrow$ Resaerch 환경에선 성능이 더 좋았던 모델이 Production 환경에선 더 좋지 않을 수 있음

$\rightarrow$ 이전 모델을 다시 사용하기 위한 작업이 필요

그 외엥도 다양한 이슈가 존재

MLOps 란?

머신러닝 모델링 코드는 머신러닝 시스템 중 일부에 불과함

MLOps = ML(Machine Learning) + Ops(Operations)

머신러닝 모델을 운영하면서 반복적으로 필요한 업무를 자동화시키는 과정

머신러닝 엔지니어링 + 데이터 엔지니어링 + 클라우드 + 인프라

머신런이 모델 개발(ML Dev)과 머신런이 모델 운영(Ops)에서 사용되는 문제, 반복을 최소화하고 비즈니스 가치를 창출하는 것이 목표

모델링에 집중할 수 있도록 관련된 인프라를 만들고, 자동으로 운영되도록 만드는 일

최근엔 비즈니스 문제에 머신러닝/딥러닝을 적용하는 Case 가 많아짐

Production 환경에 배포하는 과정엔 Research 의 모델이 재현 가능해야 함

+ 현실의 Risk 있는 환경에서 잘 버틸 수 있어야 함

MLOps 의 목표는 빠른 시간 내에 가장 적은 위험을 부담하며 아이디어 단계부터 Production 단계까지 ML 프로젝트를 진행할 수 있도록 기술적 마찰을 줄이는 것

Research 와 Production 의 차이

요즘 MLOps

춘추 전국 시대

  • 정말 다양한 라이브러리들이 있고
  • 이 라이브러리가 Best 다! 라는 내용이 거의 확립되지 않음
    • $\rightarrow$ 라이브러리, tool 에 집중하지 말고 방법에 대해 집중하기!
  • 클라우드에서도 MlOps 시장 점유를 목표로 함

MLOps 학습 방법

1) MLOps 에 대한 모든 것을 다 학습하는 방식 2) MLOps 의 각 Component 에서 해결하고 싶은 문제는 무엇 이고,
문제를 해결하기 위한 방법으로 어떤 방식을 활용 할 수 있는지를 학습하는 방식

1번은 생태계가 계속 발전하고 있는 상황에서 현실적으로 불가능한 상황

2번을 추천해요

MLOps Component - Infra

클라우드 : AWS, GCP, Azure, NCP 등

온 프레미스 : 회사나 대학원의 전산실에 서버를 직접 설치

회사에서 상황에따라 결정한다고 보면 됨

MLOps Component - Serving

다양한 라이브러리가 있고 최근들어 기울기가 높아지는 걸 볼 수 있음

MLOps Component - Experiment, Model Management

대표적인 라이브러리인 mlflow

MLOps Component - Feature Store

Feature Store 중 유일한 라이브러리

Stream Sources 는 실시간 online 이라고 보면되고 Batch Sources 는 저장되어 있는 offline 이라고 보면됨

라이브러리를 사용하는 것보다는 직접 만들어서 사용하는 경우가 많음

MLOps Component - Data Validation

[Data Drift, Model Drift, Concept Drift]

How to Detect MOdel Drift in MLOps Monitoring

Productionizing Machine Learning: From Deployment to Drift Detection

대표적인 라이브러리

tensorflow 를 쓰면 굉장히 좋음

데이터를 테스트해서 우리가 의미하는 데이터만 들어오는지 확인할 수 있음

MLOps Component - Continuous Training

라이브러리가 따로 있지는 않음

MLOps Component - AutoML

nni

MLOps Component - 정리

머신러닝 모델을 직접 운영하면서 신경써야 하는 부분

대표 Component

  • 인프라(서버, GPU)
  • Serving
  • Experiment, Model Management
  • Feature Store
  • Data Validation(Data Management)
  • Continuous Training
  • Monitoring
  • AutoML

이 강의에선 인프라와 Serving 에 대해서 집중적으로 다룰 예정

MLOps 는 회사의 비즈니스 상황과 모델 운영 상황에 따라 우선 순위가 달라짐

앞선 모든 요소가 항상 존재해야 하는 것은 아님을 꼭 인지하기!

MLOps 를 처음부터 진행하는 것이 오히려 비효율적일 수 있음

처음엔 작은 단위의 MVP(Minimal Value Product)로 시작해서 점점 운영 리소스가 많이 소요될 때 하나씩 구축하는 방식을 활용

더 발전하기 위한 과제

  1. MLOps 가 필요한 이유 이해하기
  2. MLOps 의 각 Component 에 대해 이해하기(왜 이런 Component 가 생겼는가?)
  3. MLOps 관련된 자료, 논문 읽어보며 강의 내용 외에 어떤 부분이 있는지 파악해보기
  4. MLOps Component 중 내가 매력적으로 생각하는 TOP3 을 정해보고 왜 그렇게 생각했는지 작성해보기

$\rightarrow$ 자신만의 언어로 노션, 블로그 등에 정리!

참고자료

https://github.com/EthicalML/awesome-production-machine-learning

https://github.com/visenger/awesome-mlops

여기 나오는 각종 Component 의 라이브러리를 사용해보고, 비교해보기

클라우드의 MLOps 서비스도 체험해보는 것도 좋은 경험

Uber MLOps 논문, 기술 블로그

구글 클라우드의 Practitioners Guide to MLOps

Superb AI 의 실리콘밸리의 ML옵스

댓글남기기