KubeFlow
- 쿠버네티스 기반 ML 워크플로우를 구축, 실행, 관리하기 위한 오픈소스 플랫폼
- 모델 개발과 배포를 위한 E2E 솔루션 제공
- 확장성과 유연성을 가지고, 다양한 머신러닝 프레임워크 통합 가능
기능적 특징
- Distributed Training
- Pipeline
- Model Serving
- Model Management
- Jupyter Notebook Integration
- Metadata Store
활용 예시
- 분산모델 트레이닝
- 대규모 데이터셋을 다루는 복잡한 머신러닝 모델을 분산환경에서 트레이닝
- 모델 서빙 및 배포
- 학습된 모델을 쿠버네티스 클러스터에 배포
- 효율적 리소스 관리
- 스케일링 통해 모델 서빙 최적화
1. Kubeflow Pipeline
- ML 워크플로우를 파이프라인으로 구축
- 반복적이고 일관된 ML 실험을 가능케 함
주요 기능
- 파이프라인 구축
- 여러 ML 작업을 연결하여 복잡한 워크플로우 생성
- 재사용 가능한 컴포넌트
- 공통적인 ML 작업을 위한 컴포넌트 재사용
- 실험 추적 및 관리
- 실험 결과와 메트릭 추적
- 버전 관리를 통해 실험을 체계적으로 관리
- 자동화 및 스케줄링
- 모델 훈련과 평가를 자동화
- 정해진 스케줄에 따라 파이프라인 실행
세부사항
- 독립적 컨테이너를 기반으로 실행해서 환경의 일관성과 격리를 보장
- 쿠버네티스 기반. 큰 규모의 데이터셋과 복잡한 모델에 대해서 확장성을 보장
- 파이프라인 구성과 실행을 시각적으로 모니터링할 수 있는 웹 기반 인터페이스 제공
2. Kubeflow Serving
- 훈련된 머신러닝을 배포할 수 있는 서비스
- 프로덕션 환경에서 사용
- 실시간 추론을 위한 환경을 제공
- 스케일링 가능
주요 기능
- 텐서플로, 파이토치, XGBoost, Scikit Learn 등 다양한 ML 프레임워크 지원
- 대규모 트래픽과 데이터에 대응할 수 있는 확장성 있는 모델 서빙 아키텍처 제공
- 버전 관리 및 A/B 테스팅
- 트래픽의 변화에 따라 자동으로 스케일링하여 리소스를 효율적으로 관리
- 쿠버네티스 기반으로 REST 및 gRPC 지원
3. Katib
“하이퍼 파라미터 튜닝”
- 자동화된 머신러닝 하이퍼파라미터튜닝과 신경망 아키텍처 최적화를 제공
- 다양한 알고리즘으로 ML 모델의 성능을 최적화 하는데 필요한 파라미터를 찾는데 중점을 둠
주요 기능
- 튜닝 알고리즘 지원
- 실험 관리
- 자동화된 모델 최적화
- 사용자가 통제할 수 있음
- 대규모 데이터셋과 복잡한 모델에 대해서도 효과적으로 튜닝 수행
4. Metadata Store
- 머신러닝 워크플로우의 다양한 측면을 추적하고 저장하는 구성요소
- 실험, 모델, 데이터셋 등의 메타데이터를 중앙화된 방식으로 관리함
주요 기능
- 메타데이터 저장
- 추적 및 관리
- 버전 관리
- 데이터셋 추적
- 유연한 저장구조
- 시각화 도구와 통합되어 있음
5. Jupyter Notebook Integration
- 주피터 노트북 환경에서 개발하고 실험할 수 있게 하는 기능
- 손쉽게 코드 작성, 실행, 결과 시각화 가능
- Kubeflow 환경 내에서 주피터 노트북 쉽게 생성 및 관리
- 코드 개발 및 실험
- 리소스 확장성
- R 과 같은 다양한 커널 지원
- 클라우드 저장소 연동해서 결과 저장 가능