Kubeflow는 Kubernetes에서 머신러닝과 MLOps를 위해 설계된 오픈소스 플랫폼으로, 처음에는 Google이 도입했습니다. 이 플랫폼은 모델 개발, 훈련, 서빙, 자동화된 머신러닝을 포함한 일반적인 머신러닝 수명주기의 다양한 단계에 해당하는 소프트웨어 구성 요소 모음을 제공합니다. 각 구성 요소는 개별적으로 배포할 수 있어, 사용자는 전체 플랫폼이 아닌 필요한 부분만 채택할 수 있습니다.
이 플랫폼은 Kubernetes를 오케스트레이션, 확장, 인프라 관리에 활용하여 머신러닝 시스템의 배포와 관리를 단순화하는 것을 목표로 합니다. 또한 다양한 인기 프레임워크와 도구를 지원하여 연구 및 프로덕션 환경 모두에서 유연한 옵션을 제공합니다.
역사
Kubeflow 프로젝트는 2017년 북미 KubeCon + CloudNativeCon에서 Google 엔지니어 David Aronchick, Jeremy Lewi, Vishnu Kannan이 처음 발표했습니다. 이 이니셔티브는 프로덕션에 적합한 머신러닝 시스템을 구축할 수 있는 유연한 옵션이 부족하다는 인식에 대응하여 시작되었습니다. 또한 이 프로젝트는 Google이 내부적으로 TensorFlow를 실행하던 방식을 오픈소스로 공개하는 방법으로 시작되었습니다.
첫 번째 릴리스인 Kubeflow 0.1은 2018년 유럽 KubeCon + CloudNativeCon에서 발표되었습니다. Kubeflow 1.0은 2020년 3월에 이어졌으며, 공개 블로그 게시물을 통해 많은 구성 요소가 "안정적인 상태"에 도달하여 프로덕션 사용이 가능함을 알렸습니다. 2022년 10월, Google은 Kubeflow가 Cloud Native Computing Foundation(CNCF)에 가입을 신청했다고 발표했습니다. 재단은 2023년 7월 Kubeflow를 인큐베이팅 단계 프로젝트로 승인하기로 투표했습니다.
구성 요소
모델 개발을 위한 Kubeflow Notebooks
머신러닝 모델은 Kubeflow Notebooks 구성 요소에서 개발됩니다. 이 구성 요소는 Kubernetes 클러스터 내에서 웹 기반 개발 환경을 실행하며, Jupyter Notebook, Visual Studio Code, RStudio를 기본적으로 지원합니다. 이를 통해 데이터 과학자는 클러스터 리소스의 이점을 누리면서 익숙한 인터페이스에서 작업할 수 있습니다.
모델 훈련을 위한 Kubeflow Pipelines
모델이 개발되면 Kubeflow Pipelines 구성 요소를 사용하여 훈련됩니다. 이 플랫폼은 Docker 컨테이너를 기반으로 이식 가능하고 확장 가능한 머신러닝 워크플로우를 구축하고 배포합니다. Google Cloud Platform은 Vertex AI Pipelines 제품 내에서 Kubeflow Pipelines DSL을 채택하여 클라우드 환경에서의 유용성을 입증했습니다.
모델 훈련을 위한 Kubeflow Training Operator
특정 머신러닝 모델과 라이브러리의 경우, Kubeflow Training Operator는 Kubernetes 사용자 정의 리소스를 제공합니다. 이 구성 요소는 TensorFlow, PyTorch, Apache MXNet, XGBoost, MPI를 위한 분산 또는 비분산 훈련 작업을 Kubernetes에서 실행합니다. 또한 복잡한 훈련 작업의 오케스트레이션을 단순화합니다.
모델 서빙을 위한 KServe
KServe(이전 명칭: KFServing)는 TensorFlow, XGBoost, scikit-learn, PyTorch, ONNX를 포함한 프레임워크에서 머신러닝 모델을 서빙하기 위한 Kubernetes 사용자 정의 리소스를 제공합니다. 이 프로젝트는 Google, IBM, Bloomberg, NVIDIA, Seldon이 공동으로 개발했습니다. 공개적으로 알려진 채택 기업으로는 Bloomberg, Gojek, Wikimedia Foundation이 있습니다.
자동화된 머신러닝을 위한 Katib
Katib는 머신러닝 모델의 자동화된 훈련과 개발을 위한 Kubernetes 네이티브 프로젝트입니다. 하이퍼파라미터 튜닝, 조기 종료, 신경망 아키텍처 검색 기능을 제공하여 모델 성능의 자동화된 최적화를 가능하게 합니다.
릴리스 타임라인
Kubeflow는 시작 이후 여러 릴리스를 통해 발전해 왔습니다. 2018년의 초기 0.1 릴리스는 기반을 마련했으며, 2020년의 1.0 릴리스는 프로덕션 준비의 이정표를 세웠습니다. 이후 버전에서는 구성 요소를 지속적으로 개선하고 기능을 추가했으며, 2023년에는 CNCF 인큐베이션 지위를 획득했습니다.
채택과 생태계
Kubeflow는 다양한 산업 분야에서 머신러닝 워크플로우에 사용됩니다. Kubernetes와의 통합은 이미 컨테이너 오케스트레이션을 사용하는 조직에게 매력적입니다. 플랫폼의 모듈식 설계 덕분에 팀은 Machine learning 생태계의 다른 도구, 예를 들어 Deep learning 프레임워크와 Artificial intelligence 서비스와 결합할 수 있습니다.
같이 보기
- Machine learning
- Deep learning
- kubernetes
- MLOps