Serving
- Production(Real World) 환경에 모델을 사용할 수 있도록 배포한다.
- 머신러닝 모델을 개발하고, 현실 세계(앱, 웹)에서 사용할 수 있게 만드는 행위
- 서비스화라고 표현할 수도 있다.
- 머신러닝 모델을 회사 서비스의 기능 중 하나로 활용한다.
- 예 : 추천 시스템의 추천 알고리즘 - Input이 제공되면 모델이 예측 값(Output)을 반환
Serving 방식
- Online Serving
- Batch Serving
- IoT, Mobile 등 클라이언트에서 Edge Serving
Online Serving을 구현하는 방식
1. 직접 API 웹 서버 개발 : Flask, FastAPI 등
2. 클라우드 서비스 활용 : AWS의 SageMaker, GCP의 Vertex AI 등
3. Serving 라이브러리 활용 : Tensorflow Serving, Torch Serve, MLFlow, BentoML 등
해결방법
- 데이터 전처리 서버 분리
- 모델 경량화
- 병렬처리
- 예측 결과 캐싱
Batch Serving은 주기적으로 학습을 하거나 예측을 하는 경우이다.
단점
실시간으로 활용할 수 없다. 오늘 새로 생긴 컨텐츠는 추천할 수 없다.
Online vs Batch를 선택하는 기준
1. Input 관점
- 데이터를 하나씩 요청하는 경우에는 Online
- 여러 가지 데이터가 한번에 처리되는 경우에는 Batch
- Output 관점
- Inference Output을 어떻게 활용하는지에 따라 다르다.
- API 형태로 바로 결과를 반환해야 하는 경우에는 Online
- 서버와 통신이 필요한 경우에는 Online
- 1시간에 1번씩 예측해되 되는경우에는 Batch