[MLOPS] Kubeflow란?

안녕하세요 오늘은 BESPIN GLOBAL innovate AI실 장준영님이 작성해주신 ‘Kubeflow란 무엇인가’에 대해 소개해드리도록 하겠습니다.

Kubeflow란 

– Kubeflow = Kubernetes + ML flow
– 쿠버네티스 위에서 머신러닝 관련한 오픈 소스를 관리하는 플랫폼입니다.
– Google, Arrikto, Cisco, MS 등이 오픈 소스 개발에 참여합니다.
– ML 오픈소스 생태계에 영역별 최적 오픈소스 조합입니다.
– kubernetes 기반 운영 안정성, 유연성을 제공합니다.
– 즉, ML 관련 오픈소스들을 모아놓은 플랫폼이라고 할 수 있습니다. 

Kubeflow components

 Kubernetes 기반으로 모델 개발, 학습, 튜닝, 서빙, 등 ML Workflow 단계별 유용한 툴과 파이프 라인 기능을 제공합니다.

Kubeflow components
Kubeflow UI

Kubeflow UI를 분석하면서 기능을 파악해보겠습니다.

Kubeflow UI
Notebooks

– JupyterLab, RStudio, Visual Studio Code를 기본적으로 제공합니다.
– 관리자는 사전 설치된 필수 패키지와 표준 커스텀 이미지 제공이 가능합니다.
– 엑세스 제어를 RBAC에서 관리하므로 조직 전체에서 더 쉽게 노트북을 공유할 수 있습니다.

Notebooks
Notebooks API

– KubeFlow는 Notebooks 관련 API를 제공하고 있습니다.
– 관리자는 API를 통해 Notebook 상태를 모니터링할 수 있습니다.
– Kubeflow -> Prometheus -> Grafana -> Teams로 노트북 이상 발견 시 즉각 대응이 가능합니다.
– EX) Notebook Status, Notebook Spec, Notebook Condition
– https://www.kubeflow.org/docs/components/notebooks/api-reference/notebook-v1/

Notebooks API
Tensorboards

– 텐서보드는 머신러닝 실험에 필요한 시각화 및 도구를 제공합니다.
– 텐서보드 서버는, 일반적인 원격 텐서보드 서버의 사용법과 같이 사용할 수도 있습니다.
– Kubeflow 파이프라인 Run에서 바로 텐서보드 서버에 데이터를 저장하는 용도로 활용합니다.

Tensorboards
Models (KServe)
Models (KServe)

– Kserve는 Kubeflow의 기본 모델 서버 및 추론 엔진입니다.
– 배포된 Kserve 모델을 관리합니다. (2019.09 KFServing ->Kserve로 분리)
– TensorFlow, PYTORCH, SKLearn, XGBoost, ONNX 등 다양한 모델 프레임워크를 지원합니다.

Models Example
Kubeflow UI (Experiments (AutoML))
Kubeflow UI (Experiments (AutoML))

– Kubeflow의 하이퍼파라미터 최적화는 Katib이 서비스하고 있습니다.
– Katib 는 Hyper Parameter Tuning, Neural Architecture Search(NAS) 기능이 있습니다.
– NAS는 모델의 구조, 노드 가중치 등 뉴럴 네트워크 아키텍처를 최적화하는 작업입니다.

Katib Example
Pipelines (Argo Workflows)
Pipelines

– Machine learning workflow를 생성할 수 있는 Kubeflow compents입니다.
– Argo Workflows 엔진 기반으로 동작합니다.
– Notebooks에서 Pipeline file 생성 후 file upload 형태로 동작합니다.

여기까지 ‘Kubeflow란?’에 대해 소개해드렸습니다. 유익한 정보가 되셨길 바랍니다. 감사합니다. 

Written by 장 준영 / innovate AI실

BESPIN GLOBAL