Kubeflow란
- Kubeflow = Kubernetes + ML flow
- 쿠버네티스 위에서 머신러닝 관련한 오픈 소스를 관리하는 플랫폼
- Google, Arrikto, Cisco, MS 등이 오픈 소스 개발에 참여
- ML 오픈소스 생태계에 영역별 최적 오픈소스 조합
- kubernetes 기반 운영 안정성, 유연성 제공
- 즉, ML 관련 오픈소스들을 모아놓은 플랫폼이라고 할 수 있다.
Kubeflow components
- Kubernetes 기반으로 모델 개발, 학습, 튜닝, 서빙, 등 ML Workflow 단계별 유용한 툴과 파이프 라인 기능 제공
Kubeflow UI
- Kubeflow UI를 분석하면서 기능을 파악해보자
Notebooks
- JupyterLab, RStudio, Visual Studio Code를 기본적으로 제공
- 관리자는 사전 설치된 필수 패키지와 표준 커스텀 이미지를 제공 가능함
- 엑세스 제어를 RBAC에서 관리하므로 조직 전체에서 더 쉽게 노트북을 공유할 수 있음
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/
Tensorboards
- 텐서보드는 머신러닝 실험에 필요한 시각화 및 도구를 제공
- 텐서보드 서버는, 일반적인 원격 텐서보드 서버의 사용법과 같이 사용할 수도 있음
- Kubeflow 파이프라인 Run에서 바로 텐서보드 서버에 데이터를 저장하는 용도로 활용
Models (KServe)
- Kserve는 Kubeflow의 기본 모델 서버 및 추론 엔진
- 배포된 Kserve 모델을 관리 (2019.09 KFServing ->Kserve로 분리)
- TensorFlow, PYTORCH, SKLearn, XGBoost, ONNX 등 다양한 모델 프레임워크를 지원
Kubeflow UI (Experiments (AutoML))
- Kubeflow의 하이퍼파라미터 최적화는 Katib이 서비스하고 있음
- Katib 는 Hyper Parameter Tuning, Neural Architecture Search(NAS) 기능이 있음
- NAS는 모델의 구조, 노드 가중치 등 뉴럴 네트워크 아키텍처를 최적화하는 작업
Pipelines (Argo Workflows)
- Machine learning workflow를 생성할 수 있는 Kubeflow compents
- Argo Workflows 엔진 기반으로 동작함
- Notebooks에서 Pipeline file 생성 후 file upload 형태로 동작
'MLOps > kubeflow' 카테고리의 다른 글
[Kubeflow] Kubeflow install with Cloud9 (kubeflow 설치) (0) | 2024.05.28 |
---|