API Deployment
- 학습된 모델을 사용해 추론할 때는 빠르고 쉽게 추론 결과를 받아 보고 싶다.
- 직접 스크립트를 통해 모델 로드 후 추론할 수 있지만 이는 모델이 클수록 많은 시간을 소요하여 비효율적이다. 또한, 많은 사람이 이용할 수 없고, 해당 모델이 있는 환경으로 제한된다.
- 그래서 실제 머신 러닝 사용 시 API를 통해 학습된 모델을 사용한다.
- API Server 구동 시, 모델이 한번만 로드되며 DNS를 통해 외부에서도 쉽게 추론 결과를 받고, 연동할 수 있다.
- 모델을 API로 만드는 데는 부수적인 작업들이 필요하지만, 머신러닝 프레임워크에서는 Inference engine을 개발하였다. 이를 이용하면 해당 프레임워크로 개발되고 학습된 모델을 불러와 추론이 가능한 API를 생성할 수 있다. (REST or gRPC)
- 이 처럼 모델의 추론 결과를 API 형태로 받아 볼 수 있도록 배포하는 것을 API Deployment라고 한다.
Serving Framework
- 위에서 소개한 추론 엔진들을 사용해 API Deployment를 한다면 배포하기위한 Deployment, 요청을 보낼 Endpoint를 생성하려는 Service, 외부에서 추론 요청 시 추론 엔진으로 보내기 위한 Ingress 등 많은 쿠버네티스 Resource를 배포해주어야한다.
- 이 뿐만 아니라 많은 추론요청이 들어올경우 scale-out, 모니터링, 버전 업데이트 등 추론 엔진 운영시 요구사항은 한 두가지가 아니다.
- 위와 같은 문제를 해결하기 위해 쿠버네티스 환경 위에서 한 번 더 추상화한 Serving Framework들이 개발되었다.