✏️학습 정리
1-3. Model Serving
-
Model Serving Basic
- Production(Real World) 환경에 모델을 사용할 수 있도록 배포
- 머신러닝 모델을 개발하고, 현실 세계에서 사용할 수 있게 만드는 행위
- input이 제공되면 모델이 output을 반환
- 방법
- Batch Serving
- Online Serving
- Edge Serving (모바일 기기, IoT 기기에서 사용)
-
Online Serving
- 웹 서버
- 요청(Request)을 받으면 요청한 내용을 보내주는 Response 프로그램
- 예시 (Youtube 접속 과정)
- 크롬에서 Youtube에 접근
- 페이지 요청 (Request)
- 유튜브 서버는 유튜브 메인 페이지 반환 (Response)

- 머신러닝 모델 서버
- 데이터를 제공하며 예측해달라고 요청(Request)하면, 모델을 사용해 예측 값을 반환(Response)하는 서버

- API (Application Programming Interface)
- 운영체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스
- 특정 기능을 사용할 수 있도록 외부에 노출: 지도 API, 기상청 API 등..
- Online Serving Basic
- 요청(Request)이 들어올 때마다 실시간으로 예측
- 구현 방식
- 직접 API 웹 서버 개발
- Flask, FastAPI 등을 사용해 서버 구축
- 클라우드 서비스 활용
- AWS의 SageMaker, GCP의 Vertex AI 등…
- MLOps의 다양한 부분이 제공 (API 서버 등..)
- 직접 만드는 것보다 많은 비용이 나갈 수 있음
- Serving 라이브러리 활용
- Tensorflow Serving, Torch Serve, MLFlow, BentoML 등..
- 추상화된 패턴을 잘 제공하는 오픈소스를 활용하는 방식
- 고려할 부분
- Python 버전, 패키지 버전 등 Dependency가 굉장히 중요 → Virtualenv, Poetry, Docker
- 재현 가능 하지 않은 코드는 Risk를 가지는 코드
- 실시간 예측을 하기에 예측할 때 지연 시간(Latency)를 최소화해야 함
-
Batch Serving
- 특정 기간 단위로 예측
- 주기적으로 학습을 하거나 예측을 하는 경우 사용
- Airflow, Cron Job 등으로 스케쥴링 작업 (Workflow Scheduler)
- 장점
- Online Serving 보다 구현 수월, 간단
- 한번에 많은 데이터를 처리하므로 Latency가 문제되지 않음
- 단점
- 실시간 활용 불가
- Cold Start 문제 (오늘 새로 생긴 컨텐츠 추천 X)
1-4. 머신러닝 프로젝트 라이프 사이클
https://velog.io/@kangmin/부스트캠프-AI-Tech-5주차-Day-1