- 다양한 MLOps 프레임워크 하나 하나 깊게 살펴보는 발표가 아닙니다. (추후에 하나씩 정리해보도록 할게요) - MLOps의 큰 맥락에 대해 설명하는 발표입니다! - 발표 자료가 조금 많은데(100쪽), 자료를 추후에 공유드릴 예정이니 너무 걱정하지 않으셔도 됩니다. 살짝 말이 빠를 수 있는데, 양해 부탁드립니다
생성 ] [ EDA ] [ 모델 학습 ] 또는 꼭 API 형태로 만들지 않고 DB에 있는 데이터를 Batch(=많은 데이터) 단위로 처리하자! 1시간에 1번씩 예측해서 결과를 DB에 저장하자! Task Management 도구인 Airflow를 사용하자! (사실 제 과거 이야기)
배포한 후, 생기는 일 (사실 제 과거 이야기) 1) (운영팀 제보) 모델의 결과값이 이상한 것 같아요..! 1-1) Input 데이터는 0 ~ 23까지의 데이터가 들어가야 하는데 77이란 데이터가 들어갔네..? 1-2) Float 타입으로 들어가야 하는데 Int로 들어왔네..?
배포한 후, 생기는 일 (사실 제 과거 이야기) 2) 모델 성능 어떤가요? 새롭게 배포한 모델은 어떤가요? 특정 카테고리에서 잘 맞추나요? 다행히 모델 모니터링 대시보드 미리 만들어서 확인 Research 환경에서 더 좋았던 새로운 모델. Production 환경에선 저번 모델이 더 좋다..?
ML + Ops 머신러닝 모델 개발(ML)과 머신러닝 모델 운영(Ops)에서 사용되는 문제, 반복을 최소화하고 비즈니스 가치를 창출하는 것이 목표 모델링에 집중할 수 있도록 관련된 인프라를 만들고, 자동으로 운영되도록 만드는 일 예 : API 형태로 서버 만들기, 실험 파라미터와 결과 저장하기, 모델 결과 자동화하기, 데이터 Validation 등
변함(Dynamic - Shifting) 중요 요소 모델 성능(Accuracy, RMSE 등) 모델 성능, 빠른 Inference 속도, 해석 가능함 도전 과제 더 좋은 성능을 내는 모델, 새로운 구조의 모델 안정적인 운영, 전체 시스템 구조 학습 데이터가 고정이라 모델구조, 파라미터 기반 재학습 시간의 흐름에 따라 데이터가 변경되어 재학습 목적 논문 출판 서비스에서 문제 해결 표현 Offline Online
API Lv 2. Lv 1 + Docker Lv 3. Lv 2 + Kubernetes Lv 4. Serving 프레임워크 사용 처음엔 Lv 1으로 시작하다 점점 더 편하고 빠르게 모델을 Serving하기 위해 Lv 4를 향함 (모델이 많은 경우 이런 식으로 효율성 증대를 목표로 하고, 모델이 하나라면 심플하게 가는 것도 좋음) Kubeflow, BentoML, Seldon Core, Cortex, KFServing, Tensorflow Serving, Torch Serve 등
아님. 현재 상황에 따라 선택! 서버와 실시간 통신을 꼭 해야하는 것이 아니라면, 최초엔 Batch Serving을 구축하는 것도 좋음. Batch Serving의 결과를 DB에 저장하고, 서버는 그 데이터를 주기적으로 가져가는 방식으로 통신 우선 머신러닝 모델을 운영하면서 점점 API 형태로 변환
매번 기록함 Artifact : 학습하는 과정에 생기는 이미지, 모델 파일 등 단순히 기록하는 것은 쉽고, 기록을 편하게 볼 수 있도록 모니터링 대시보드가 필요함 모든 실험을 기록하고, 그 중에 특정 메트릭이 제일 좋은 것을 선택하는 기능도 필요함 Weight & Bias, Neptune 등 SaaS가 꽤 많고, 오픈소스는 MLflow가 제일 강세
Production 관점의 Model management 필요 Serving하는 쪽과 연결해서 학습한 모델을 쉽게 배포할 수 있어야 함 여러 모델 중 선택하는 로직의 예시 (A Machine Learning Model Management System at Uber 논문)
단위) 쿼리를 실행해서 DB Table에 저장하고, 그 Table을 Feature Store로 사용하는 방법도 있음 그 이후엔 실시간 데이터를 가지고 Feature Store 구성 Research에서 사용하는 Feature와 Production Feature를 동일하게 사용할 수 있게 구성하는 것이 핵심! 오픈소스는 Feast, Hopsworks가 대표적이며 클라우드 서비스가 점점 생기는 중 SageMaker feature store(Amazon) Vertex AI(Google)
좋아하지 않습니다. 신선한 재료로 다시 만듭시다(Retrain) ] Research Production Retrain 다시 요리하는 경우 1) 신선한 재료가 도착한 경우(=새로운 데이터) 2) 일정 기간(매일, 매시간) 3) 갑자기 매출이 줄어들 경우(Metric 기반) 4) 요청시
인프라를 구축해야 하는 경우 - 2) MLOps에 대해 공부하고 싶은 경우(학생 포함) 모두 “머신러닝”의 기초는 알고 있어야 함 머신러닝에 대해 모르는 상황에서 MLOps를 구축하려면 괴리감이 생김(혹은 팀으로 구성) 기본적으로 “CI/CD”, “클라우드”, “쿠버네티스”를 잘 알고 있으면 좋음 두 경우 모두 MLOps 기본 강의를 먼저 수강하는 것을 추천!
Learning Engineering for Porudction(MLOps) 특화 과정 - 4개 강의로 구성. 4개 중 아직 2개 강의만 열림(21년 6월 초 기준) - 기초적인 내용을 잘 다룸. 기본서 느낌, TFX 기반 강의 - 2) Full Stack Deep Learning - 13주차로 구성 - 엄청 실용적인 관점에서 문제 정의, 베이스라인 정하기, MLOps 각종 도구, 트러블 슈팅, AI Ethics, Test, Deploy에 대해 다룸 - 현존하는 MLOps 관련 강의 중 제일 추천
Learning Engineering for Porudction(MLOps) 특화 과정 - 4개 강의로 구성. 4개 중 아직 2개 강의만 열림(21년 6월 초 기준) - 기초적인 내용을 잘 다룸. 기본서 느낌, TFX 기반 강의 - 2) Full Stack Deep Learning - 13주차로 구성 - 엄청 실용적인 관점에서 문제 정의, 베이스라인 정하기, MLOps 각종 도구, 트러블 슈팅, AI Ethics, Test, Deploy에 대해 다룸 - 현존하는 MLOps 관련 강의 중 제일 추천 - 3) [애저듣보잡] MLOps 101 - 한국어 강의 - 분량은 1시간 이내로, 핵심적인 부분을 잘 알려줌 + Azure 기반 MLOps
Learning Engineering for Porudction(MLOps) 특화 과정 - 4개 강의로 구성. 4개 중 아직 2개 강의만 열림(21년 6월 초 기준) - 기초적인 내용을 잘 다룸. 기본서 느낌, TFX 기반 강의 - 2) Full Stack Deep Learning - 13주차로 구성 - 엄청 실용적인 관점에서 문제 정의, 베이스라인 정하기, MLOps 각종 도구, 트러블 슈팅, AI Ethics, Test, Deploy에 대해 다룸 - 현존하는 MLOps 관련 강의 중 제일 추천 - 3) [애저듣보잡] MLOps 101 - 한국어 강의 - 분량은 1시간 이내로, 핵심적인 부분을 잘 알려줌 + Azure 기반 MLOps - 4) 송호연님의 머신러닝 엔지니어 실무(인프런) - 한국어 강의 - 여러 오픈소스를 사용하는 방법
큰 그림을 이해한 후 각자의 문제 상황에 맞는 시스템 구축해보기 https://github.com/EthicalML/awesome-production-machine-learning https://github.com/visenger/awesome-mlops 여기 나오는 각종 Component의 라이브러리를 사용해보고, 비교해보기 클라우드의 MLOps 서비스도 체험해보고, 사용성 확인 추천 (직접 시스템 구축보다 클라우드 서비스 사용이 쉬우니 이런 방식으로 사용되는구나! 파악해보기) Azure MLOps 쪽이 굉장히 좋았음