Week6

📝 이번 주 목표

  • [Section 4] 쿠베플로우 머신러닝 파이프라인
    • (1) 쿠베플로우 소개
    • 쿠베플로우 환경 구축

📚 강의 내용 정리

(1) 쿠베플로우 소개

쿠베플로우 개요

  • 쿠베플로우(Kubeflow) = Kube + flow
  • 핵심 기능
    • 조합가능성(Composability) : 각 Stage를 독립적으로 사용 또는 엔드 투 엔드 파이프라인 구성 가능
    • 이식성(Portability) : 특정 개발환경에 종속될 필요가 없다.
    • 확장성(Scalability) : 클러스터의 요구에 따라 동적으로 확장 가능

쿠베플로우 기본 개념

  • Central dashboard
    • 쿠베플로우 대시보드 (주요 인터페이스)
    • 파이프라인 등록 및 실행, 결과 확인 등
  • JupyterHub
    • 쿠베플로우 노트북
    • 프로토타이핑과 실험 단계 담당
  • Kubeflow pipelines Argo
    • 쿠베플로우 파이프라인 (Airflow와 비슷)
    • 여러 job 에 대한 dependency 정의, 실험과정 표준화
    • 사용법
      • @kfp.dsl.python_component decorator : 함수를 파이프라인 컴포넌트로 추상화
      • kfp.compiler.build_python_component : 추상화된 함수를 도커 이미지로 만들어줌
      • @kfp.dsl.pipeline : 여러 컴포넌트들의 상관관계를 정의하여 pipeline을 만든다.
      • kfp.compiler.Compiler.compile : 파이프라인을 YAML 형태로 패키징 -> 쿠베플로우 대시보드에 업로드 가능
  • Katlib
    • 모델 튜닝(AutoML)을 담당하는 모듈
  • TFJobs
    • 비동기 학습 또는 오프라인 추론 시 사용 가능
  • KFServing
    • 온라인 인퍼런스 서버 배포 가능
  • MinIO
    • 파이프라인 간의 저장소 기능
    • 파이프라인 중간에 생기는 부산물들 저장
  • Istio
    • 서비스 구성요소들을 한번에 묶어놓은 것

쿠베플로우 환경 구축

  1. 도커 및 쿠버네티스 환경 구축
  2. 쿠베플로우 설치
  3. 쿠베플로우 포트포워딩