부스트캠프 18주차 Product Serving 정리

kimkihoon·2022년 6월 19일
0

부스트캠프 AI

목록 보기
47/49

Model Serving

Serving Basic

Serving

  • Production(Real World) 환경에 모델을 사용할 수 있도록 배포한다.
  • 머신러닝 모델을 개발하고, 현실 세계(앱, 웹)에서 사용할 수 있게 만드는 행위
  • 서비스화라고 표현할 수도 있다.
  • 머신러닝 모델을 회사 서비스의 기능 중 하나로 활용한다.
  • 예 : 추천 시스템의 추천 알고리즘 - Input이 제공되면 모델이 예측 값(Output)을 반환

Serving 방식

  • Online Serving
  • Batch Serving
  • IoT, Mobile 등 클라이언트에서 Edge Serving

Online Serving Basic

Online Serving을 구현하는 방식
1. 직접 API 웹 서버 개발 : Flask, FastAPI 등
2. 클라우드 서비스 활용 : AWS의 SageMaker, GCP의 Vertex AI 등
3. Serving 라이브러리 활용 : Tensorflow Serving, Torch Serve, MLFlow, BentoML 등

Online Serving할 때 고려할 부분

  1. Input 데이터를 기반으로 DB에 있는 데이터를 추출해서 모델을 예측해야 하는 경우
  • 데이터는 다양한 공간에 저장되어 있을 수 있다.
  • 데이터를 추출하기 위해 query를 실행하고 결과를 받는 시간이 소요된다.
  1. 모델이 수행하는 연산
  • RNN, LSTM 등 회귀 분석보다 많은 연상르 요구하고 더 오래걸린다.
  • 이를 위해 모델을 경량화 하는 작업이 필요할 수 있으며 복잡한 모델보다 간단한 모델을 사용하는 경우도 존재한다.
  1. 결과 값에 대한 보정이 필요한 경우
  • 머신러닝 알고리즘에서 유효하지 않은 예측값이 반환될 수 있다.

해결방법

  • 데이터 전처리 서버 분리
  • 모델 경량화
  • 병렬처리
  • 예측 결과 캐싱

Batch Serving

Batch Serving Basic

Batch Serving은 주기적으로 학습을 하거나 예측을 하는 경우이다.

  • 30분에 1번씩 최근 데이터를 가지고 예측한다.
  • Batch 묶음을 한번에 예측한다.

단점
실시간으로 활용할 수 없다. 오늘 새로 생긴 컨텐츠는 추천할 수 없다.

Online Serving vs Batch Serving

Online vs Batch를 선택하는 기준
1. Input 관점

  • 데이터를 하나씩 요청하는 경우에는 Online
  • 여러 가지 데이터가 한번에 처리되는 경우에는 Batch
  1. Output 관점
  • Inference Output을 어떻게 활용하는지에 따라 다르다.
  • API 형태로 바로 결과를 반환해야 하는 경우에는 Online
  • 서버와 통신이 필요한 경우에는 Online
  • 1시간에 1번씩 예측해되 되는경우에는 Batch

0개의 댓글