본문 바로가기
Docker, k8s

[Kubeflow] Kubeflow 에 대해 알아보자

by bryan.oh 2021. 6. 9.
반응형

요약

  • Kubernetes 클러스터 에서 머신 러닝 워크 플로 를 보다 간단하고 조정 하기 위해 설계된 무료 오픈 소스 프로젝트입니다.
  • Kubernetes의 컨테이너화된 환경에서 머신 러닝을 사용하기위한 클라우드 네이티브 프레임 워크입니다

 

Kubeflow 소개

  • Kubeflow는 Kubernetes 용 머신 러닝 툴킷입니다
  • Kubernetes에서 머신 러닝 (ML) 워크 플로를 간단하고 이식 가능하며 확장 가능하게 배포하는 데 전념합니다.
  • 목표는 다양한 인프라에 ML을위한 동급 최고의 오픈 소스 시스템을 배포하는 간단한 방법을 제공하는 것입니다.
  • Kubernetes를 실행하는 모든 곳에서 Kubeflow를 실행할 수 있어야합니다.

 

Kubeflow를 사용하는 이유

Kubeflow는 쿠버네티스에서 머신 러닝 워크 플로를 실행하기 위해서 만들어졌습니다. 일반적으로 다음과 같은 이유로 사용할 수 있습니다.

  • 이미 쿠버네티스 기반의 인프라가 있거나, 새로운 머신 러닝 플랫폼을 만들려는 경우
  • 다양한 환경(예 : 로컬, 온 프레미스 및 클라우드)에서 머신 러닝 모델을 학습하거나 서비스하려는 경우
  • 자원(예 : CPU 또는 GPU)를 할당하여 작업을 하려는 경우
  • Jupyter 노트북을 사용하여 머신 러닝 작업을 하려는 경우

Kubeflow를 사용하면 데이터 과학자에게 인프라가 아닌 모델링에만 집중할 수 있는 환경을 제공해 줄 수 있습니다. 그리고 컨테이너 기반의 독립된 환경에서 연구를 할 수 있기 때문에, TensorFlow, PyTorch, MXNet 등 다양한 프레임워크를 사용할 수 있습니다. GPU 같은 자원을 이용해서 모델을 분산 학습 시킬 수 도 있습니다.

또한 Hyper parameter tuning 과정을 쉽게 자동화할 수 있는 기능도 제공하고 있으며, 만든 모델을 실제 서비스에 배포할 수 있는 서빙 도구들도 제공하고 있습니다.

  • Kubeflow는 복잡한 시스템을 배포, 확장 및 관리하기위한 시스템 으로 Kubernetes 를 기반으로 합니다.
  • 워크 플로에 필요한 ML 도구를 지정할 수 있습니다. 
  • 그런 다음 실험 및 프로덕션 사용을 위해 다양한 클라우드, 로컬 및 온 프레미스 플랫폼에 워크 플로를 배포 할 수 있습니다

 

 

ML 워크 플로 소개

ML 시스템을 개발하고 배포 할 때 ML 워크 플로는 일반적으로 여러 단계로 구성됩니다. ML 시스템 개발은 반복적 인 프로세스입니다. ML 워크 플로의 다양한 단계의 출력을 평가하고 필요한 경우 모델 및 매개 변수에 변경 사항을 적용하여 모델이 필요한 결과를 계속 생성하도록해야합니다.

더 자세히 단계 살펴보기 :

  • 실험 단계에서는 초기 가정을 기반으로 모델을 개발하고 원하는 결과를 생성하기 위해 모델을 반복적으로 테스트하고 업데이트합니다.
    • ML 시스템으로 해결하려는 문제를 식별합니다.
    • ML 모델 학습에 필요한 데이터를 수집하고 분석합니다.
    • ML 프레임 워크와 알고리즘을 선택하고 모델의 초기 버전을 코딩합니다.
    • 데이터와 모델 학습을 실험 해보십시오.
    • 가장 효율적인 처리와 가능한 가장 정확한 결과를 보장하기 위해 모델 하이퍼 파라미터를 조정합니다.
  • 프로덕션 단계에서는 다음 프로세스를 수행하는 시스템을 배포합니다.
    • 교육 시스템에 필요한 형식으로 데이터를 변환합니다. 학습 및 예측 중에 모델이 일관되게 작동하도록하려면 변환 프로세스가 실험 및 생산 단계에서 동일해야합니다.
    • ML 모델을 훈련시킵니다.
    • 온라인 예측 또는 배치 모드 실행을 위해 모델을 제공합니다.
    • 모델의 성능을 모니터링하고 모델을 조정하거나 재교육하기 위해 프로세스에 결과를 제공합니다.

ML 워크 플로의 Kubeflow 구성 요소

다음 다이어그램은 Kubeflow를 워크 플로에 추가하여 각 단계에서 유용한 Kubeflow 구성 요소를 보여줍니다.

 

Kubeflow 인터페이스

이 섹션에서는 Kubeflow와 상호 작용하고 Kubeflow에서 ML 워크 플로를 빌드 및 실행하는 데 사용할 수있는 인터페이스를 소개합니다.

Kubeflow 사용자 인터페이스 (UI)

Kubeflow UI는 다음과 같습니다.

 

 

이거슨 kubeflow 공식 사이트의 번역 및 요약본 입니다.
728x90
반응형

'Docker, k8s' 카테고리의 다른 글

[k8s] 단어 사전  (0) 2021.11.28
[K8S] etcd 란  (0) 2021.06.18
[Docker] Build 할때 no cache 옵션주기(--no-cache)  (0) 2021.05.17
[k8s] hostAliases 에 여러 개 등록하기  (0) 2021.01.15
[k8s] pod restart #pod 재시작 하기  (3) 2020.12.18

댓글