크게 2가지 방식이 존재한다.
Online Serving
Batch Serving
그 외에 클라이언트(모바일 기기, IoT Device 등)에서 Edge Serving도 존재
Serving과 inference의 차이
Serving : 모델을 웹/앱 서비스에 배포하는 과정, 모델을 활용하는 방식, 모델을 서비스화하는 관점
Inference : 모델에 데이터가 제공되어 예측하는 경우, 사용하는 관점
Serving - Inference 용어가 혼재되어 사용되는 경우도 존재
웹 서버(Wikipedia)
머신러닝 모델 서버
API(Application Programming Interface)
Online serving basic
요청(Request)이 올 때마다 실시간으로 예측
클라이언트(애플리케이션)에서 ML 모델 서버에 HTTP 요청(Request)하고, 머신러닝 모델 서버에서 예측한 후, 예측 값(응답)을 반환(Response)
ML 모델 서버에 요청할 때, 필요시 ML 모델 서버에서 데이터 전처리를 해야할 수 있다 (혹은 분리를 위해 전처리 서버 / ML 모델 서버로 나눌 수도 있음)
서비스의 서버에 ML 서버를 포함하는 경우도 있고, ML 서버를 별도로 운영하는 경우도 존재한다.
회사에서 개발 조직과 데이터 조직의 협업하는 방식에 따라 다르게 개발할 수 있다
Online Serving을 구현하는 방식
Online Serving을 구현하는 방식
cloud 사용
AWS의 SageMaker, GCP의 Vertex AI 등
회사의 상황에 따라 클라우드 서비스를 활용하는 것이 좋은 시기도 존재하고, 소수의 인원만 존재하며, 소수의 인원이 많은 업무를 해야하는 경우 클라우드의 내부 실행 구조를 잘 알아야 문제 상황이 발견되었을 때 잘 해결할 수 있다.
클라우드 서비스에선 어떤 방식으로 AI 제품을 만들었는지 확인할 수도 있어서 사용해보는 것도 좋다.
Online Serving에서 고려할 부분
함수 단위를 “주기적"으로 실행한다. Airflow, Cron Job 등으로 스케쥴링 작업(Workflow Scheduler)을 수행한다.
추천 시스템 : 1일 전에 생성된 컨텐츠에 대한 추천 리스트 예측
1시간 뒤 수요 예측
재고 및 입고 최적화를 위해 매일 매장별 제품 수요 예측
실시간이 필요 없는 대부분의 방식에서 활용 가능
장점
단점
Workflow Scheduler