Kubernetes 이야기

KServe, Seldon Core, BentoML 비교 본문

Kubernetes/MLOps

KServe, Seldon Core, BentoML 비교

kmaster 2023. 4. 3. 20:15
반응형

기계 학습은 이제 수 많은 기업에서 사용된다. 기계 학습을 통해 나오는 모델은 모델만으로는 큰 가치가 없다. 기계 학습 모델이 개발되는 실험 단계에서 비즈니스에 가치를 제공하기 위해 모델을 제공할 수 있는 생산 단계로 빠르고 안정적으로 이동할 수 있는 것이 매우 중요하다. 이것을 Model Serving이라고 한다. Model Serving 프레임워크를 사용하면 다음을 수행 할 수 있다.

 

  • API를 통해 모델과 상호 작용한다. 이 때문에 모델과 대화하는 모든 것은 훈련에 사용된 도구나 작성된 언어와 같은 내부 세부 정보를 알지 않고도 사용이 가능하다.
  • 사용자 요구에 맞게 모델을 쉽게 확장한다.

 

이러한 Model Serving 을 위한 많은 도구들이 있다. 이 중 다음 요소를 고려하는 것이 좋다.

 

  • 기계 학습 라이브러리 지원. 모든 모델은 TensorFlow, PyTorch 또는 SKLearn과 같은 ML 라이브러리를 사용하여 학습된다. 일부 제공 도구는 여러 ML 라이브러리를 지원하는 반면 다른 제공 도구는 예를 들어 TensorFlow만 지원할 수 있다.
  • 모델이 패키지되는 방식. 일반적인 모델은 원시 모델 자산과 많은 코드 종속성으로 구성된다. 이 가이드의 제공 도구는 모두 모델 + 종속성을 Docker 컨테이너로 패키징하여 작동한다. Docker는 최신 인프라에 소프트웨어를 패키징, 배포 및 배포하는 업계 표준 방식이다.
  • 모델이 실행되는 위치 일부 제공 프레임워크는 Docker를 지원하는 모든 곳에서 실행할 수 있는 컨테이너를 제공한다. 다른 것들은 컨테이너 배포, 확장 및 관리를 자동화하기 위한 가장 인기 있는 오픈 소스 솔루션인 Kubernetes를 기반으로 구축된다.

이러한 옵션들을 제공하는 오픈소스 중에서는 KServe와 Seldon Core, BentoML이 대표적인 Serving 도구이다. 

 

KServe

 

Kubeflow의 기존 사용자는 모델 제공을 위해 내장되어 있는 KServe 를 사용하는 것이 편리할 수 있다.

Kubernetes에서 모든 모델을 실행할 수 있습니다. 그러나 Seldon에 비해 KServe는 훨씬 더 가벼워 설정 및 실행이 더 쉽고 기능은 더 적다.

 

장점

 

  • 많은 ML 라이브러리를 지원합니다. PyTorch, TensorFlow, SKLearn 포함한다.
  • Kubeflow를 전체적으로 사용하는 경우 동일한 시스템에서 모델을 모두 교육하고 배포할 수 있다.

 

단점

 

  • MLOP 도구는 지난 몇 년 동안 많이 발전했으며 여러 면에서 KServe와 Kubeflow는 뒤처지고 있다.
  • 고급 모니터링이 누락되었다 . Seldon Core와 비교할 때 Kubeflow가 특히 부족한 영역이다.

 

Seldon Core

Seldon Core는 확장 가능하고 신뢰할 수 있는 모델 제공을 위해 구축된 성숙한 도구이며 고급 메트릭, 로깅, 설명 가능성 및 A/B 테스트를 포함하여 기본 제공되는 다양한 기능 세트로 이를 뒷받침하고 있다.

Seldon Core의 특히 중요한 기능 중 하나는 메트릭 및 모니터링이다. 각 모델 서버는 소프트웨어 모니터링 스택에 통합할 수 있는 메트릭을 노출하고 Seldon의 또 다른 오픈 소스 제품인 Alibi-Detect와 결합하여 드리프트 및 편향과 같은 모델별 모니터링을 수행할 수 있다.

 

장점

 

  • 쿠버네티스 기반. 컨테이너 오케스트레이션의 사실상의 표준이며 Seldon은 모델 서비스를 위한 모든 기능을 활용하여 관리 오버헤드가 낮은 확장 가능하고 안정적인 인프라를 제공.
  • 많은 ML 라이브러리를 지원. PyTorch, TensorFlow, SKLearn 포함.
  • 추가 코드가 필요하지 않다. 기본적으로 코드를 작성할 필요 없이 모델을 배포할 수 있다. 모델 자산을 찾을 위치를 Seldon에 알리기만 하면 나머지는 셀던이 알아서 처리.
  • 모델 모니터링. 모델을 모니터링할 수 있는 기능이 포함되어 있다.

 

단점

 

  • Kubernetes가 항상 최선의 선택은 아니다. Seldon을 사용하면 Kubernetes를 사용할 수밖에 없다. 그러나 예를 들어 하나 또는 두 개의 모델만 배포하는 경우 Kubernetes를 실행하는 데 비용이 너무 많이 들 수 있다.

 

BentoML

Seldon Core는 Kubernetes의 모델 배포를 전문으로 하는 반면 BentoML은 모델이 배포되는 위치에 대해 까다롭지 않다.

Bento를 사용하는 가장 간단한 방법은 Docker 컨테이너를 이용하는 것이지만 자체 인프라에서 BentoML 서버의 자체 인스턴스를 실행할 수 있으므로 이 조차도 필수 사항은 아니다.

 

장점

 

  • 많은 ML 라이브러리를 지원한다. PyTorch, TensorFlow, SKLearn 포함.
  • 어디에서나 모델을 배포할 수 있다. Docker, Kubernetes 또는 AWS, GCP 및 Azure와 같은 클라우드 플랫폼을 지원한다.

 

단점

 

  • 내장된 오케스트레이션이 없다 . 오케스트레이션은 컨테이너의 배포, 관리, 확장 및 네트워킹 자동화에 관한 것이다. BentoML은 사용자에게 맡긴다. 배포 위치에 따라 오케스트레이션 지원이 달라진다. 대조적으로 Seldon Core는 Kubernetes를 통해 이를 무료로 얻는다.

 

 

참고

https://getindata.com/blog/machine-learning-model-serving-tools-comaprison-kserve-seldon-core-bentoml/

https://www.fuzzylabs.ai/guides/a-guide-to-open-source-model-serving

 

반응형

'Kubernetes > MLOps' 카테고리의 다른 글

mlflow  (0) 2023.09.09
dvc  (0) 2023.09.08
Kubeflow - Pipeline  (0) 2023.03.26
MLFlow vs Kubeflow  (1) 2023.03.06
MLOps  (0) 2023.03.06
Comments