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 과 같은 다양한 커널 지원
  • 클라우드 저장소 연동해서 결과 저장 가능

Reference