Boostcamp AI Tech

[Boostcamp Day-86] Model Serving

ju_young 2021. 12. 7. 21:18
728x90

웹 서버

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

머신러닝 모델 서버

어떤 데이터(Input)를 제공하며 예측해달라고 요청(Request)하면 모델을 사용해 예측 값을 반환(Response)하는 서버

API(Application Programming Interface)

운영체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스

Online Serving

  • 요청(Request)이 올 때마다 실시간으로 예측
  • 클라이언트(application)에서 ML 모델 서버에 HTTP 요청(Request)하고 머신러닝 모델 서버에서 예측한 후 예측 값을 반환(Response)

단일 데이터를 받아 실시간으로 예측하는 예제

  • 기계 고장 예측 모델 : 센서의 실시간 데이터가 제공되면 특정 기계 부품이 앞으로 N분 안에 고장날지 아닐지를 예측
  • 음식 배달 소요 시간 예측 : 해당 지경의 과거 평균 배달 시간, 실시간 교통 정보, 음식 데이터 등을 기반으로 음식 배달 소요 시간 예측

Online Serving을 구현하는 방식

  • 직업 API 웹 서버 개발 : Flask, FastAPI 등을 사용해 서버 구축
  • 클라우드 서비스 활용 : AWS의 SageMaker, GCP의 Vertex AI 등 -> 비용 문제가 발생할 수 있음
  • Serving 라이브러리 활용 : Tensorflow Serving, Torch Serve, MLFLow, BentoML 등

Batch Serving

  • 주기적으로 학습을 하거나 예측을 하는 경우 사용
  • 특정 시간에 반복해서 실행
  • Batch는 데이터 엔지니어링에서 자주 활용되는 용어
728x90