[level3 DAY 85~90] Product Serving(1)

먼지감자·2021년 12월 6일
0

AI Boostcamp 2기

목록 보기
47/48

강의 내용 복습

Part1. Product Serving 이론

1.2 MLOps 개론

  • MLOps 란?
    ML + Operations
    머신러닝 모델을 운영하면서 반복적으로 필요한 업무를 자동화시키는 과정
    머신러닝 엔지니어링 + 데이터 엔지니어링 + 클라우드 + 인프라
    머신러닝 모델 개발(ML Dev)과 머신러닝 모델 운영(Ops)에서 사용되는 문제, 반복을 최소화하고
    비즈니스 가치를 창출하는 것이 목표

  • Research ML 과 Production ML 은 데이터, 도전과제, 목적 등에 차이가 있음

  • MLOps Component : 논문
    Infra(서버, GPU), Serving, Experiment, Model Management,(MLflow), Feature Store(Feast), Data Visulization(TFDV-Tensorflow Data Validation), Continuous Training, Monitoring, AutoML

Special Mission

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

1.3 Model Serving

  • Online Serving(실시간), Batch Serving(일정 주기별로), Edge Serving (IoT, mobile 등에서 사용)

  • Web Server
    HTTP를 통해 웹 브라우저에서 요청하는 HTML 문서나 오브젝트를 전송해주는 서비스 프로그램
    요청(Request)을 받으면 요청한 내용을 보내주는(Response) 프로그램

  • API
    운영체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스
    특정 서비스에서 기능을 사용할 수 있도록 외부에 노출 : 기상청 API 등

  • Online Serving
    요청이 올때마다 실시간으로 예측
    기계고장 예측 모델 , 음식 배달 소요시간 예측

    • 구현 방법
    1. 직접 API 웹 서버 개발(Fast API, Flask)
    2. 클라우드 서비스 활용(AWS, GCP)
    3. Serving 라이브러리 사용(BentoML, MLFLow, Torch Flow)
    • 고려할 부분
      Dependency : Virtualenv, Poetry, Docker
      Latency : 데이터 전처리 서버 분리, Feature 미리 가공하여 Feature Store에 저장, 모델 경량화, 병렬처리(Ray), 예측 결과 캐싱
  • Batch Serving
    Workflow Scheduler 에서 주기적으로 학습,예측
    관련 라이브러리는 따로 존재 x
    Airflow, Cron job 으로 스케쥴링 작업
    추천 시스템, 재고 및 입고 최적화

    • 장단점
      Jupyter Notebook에 작성한 코드를 함수화한 후, 주기적으로 실행하는 간단한 구조!
      Online Serving보다 구현이 수월하며, 간단함
      한번에 많은 데이터를 처리하므로 Latency가 문제되지 않음
      실시간으로 활용할 수 없음
      Cold Start 문제 : 오늘 새로 생긴 컨텐츠는 추천할 수 없음

    • Workflow Scheduler
      Airflow, Cron job, awesome-workflow-engines github

Special Mission

  • Rules of ML 읽고 정리
  • 회사 UseCase 찾아보기

1.4 머신러닝 프로젝트 라이프 사이클

  • 문제정의

  • 현상파악

  • 구체적인 목적/문제 정의
    문제를 쪼개서 차악하기, 간단한 방법(Rule Base)부터 생각해보기, 데이터로 해결할 수 있는 방법 고민

  • 프로젝트 설계
    문제 정의 - 최적화할 Metric 설계 - 데이터 수집/레이블 확인 - 모델 개발 - 모델 예측 결과를 토대로 Error Anaysis, 잘못된 예측이 왜 생기는지 확인
    다시 모델 학습 - 더 많은 데이터 수집 - 다시 모델 학습 - 2달 전 데이터에는 성능이 좋지만 최근 데이터에는 성능이 안좋음 - 다시 학습 - 배포 - Metric 잘 동작 안함 - 다시 처음부터 시작
    의 경우가 있으니 문제정의와 프로젝트 설계를 구체적으로 하기

    • 해결하려고 하는 문제 구체화
    • 머신러닝 문제 타당성 확인 : 제품, 회사의 비즈니스에서 어떤 가치를 줄 수 있는지 고려, 머신러닝 솔루션이 최적의 솔루션이 아님을 기억
    • 목표, 지표 설정
    • 제약 조건
    • 베이스라인, 프로토타입
      Voila, Streamlit, Gradio
    • 평가(Evaluation) 방법 설계
  • 지표 결정

  • Action(모델 개발 후 배포 & 모니터링)

  • 추가 원인 분석

  • 비즈니스 모델
    회사는 비즈니스 모델을 만들고, 비즈니스 모델을 통해 매출이 발생함
    해당 비즈니스 모델에서 어떤 데이터가 존재하고 그 데이터를 기반으로 어떤 것을 만들 수 있을지 생각

    • 1) 회사의 비즈니스 파악하기
    • 2) 데이터를 활용할 수 있는 부분은 어디인가? (Input)
    • 3) 모델을 활용한다고 하면 예측의 결과가 어떻게 활용되는가? (Output)

Special Mission
부스트캠프 AI Tech 혹은 개인 프로젝트를 앞선 방식으로 정리해보기
실제로 회사에서 한 일이 아니더라도, 특정 회사에서 활용했다고 가정하거나 아예 크게
문제 정의해서 구체화해보기
이 모델이 회사에서 활용되었다면 어떤 임팩트를 낼 수 있었을까? 고민해서 정리해보기!
직접 일상의 문제라도 하나씩 정의하기


과제 수행 과정 및 결과

.


피어 세션

최종 프로젝트 관련 논의


학습 회고

면접준비, 강의 수강, 최종 프로젝트 설계

profile
ML/AI Engineer

0개의 댓글