Kubeflow란?

Kubeflow는 Kubernetes에서 ML 워크플로의 배포 및 관리를 간소화하도록 설계된 오픈소스 머신러닝(ML) 플랫폼입니다. Kubeflow는 Kubernetes의 강력한 기능을 ML 관련 도구 및 라이브러리와 결합하여 강력한 머신러닝 운영(MLOps) 관행 구현을 촉진합니다. 또한 Kubeflow를 사용하면 Google Kubernetes Engine(GKE) 사용자가 AI Hypercomputer 배포의 일부로 ML 워크플로를 더 쉽게 빌드할 수 있습니다.

Kubeflow는 머신러닝 엔지니어와 데이터 과학자가 Kubernetes의 확장성과 이동성을 활용하도록 지원합니다. 사용자는 컨테이너화의 복잡성을 제거하고 머신러닝 모델의 빌드, 학습, 배포에 집중할 수 있습니다.

Kubeflow의 용도는 무엇인가요?

Kubeflow는 다음과 같은 다양한 머신러닝 작업에 사용될 수 있습니다.

  • 이동성과 확장성을 갖춘 ML 워크플로 빌드: 사용자는 ML 워크플로를 파이프라인으로 정의하여 다양한 환경에서 쉽게 공유하고 배포할 수 있으므로 머신러닝 프로세스의 일관성과 재현성을 높일 수 있습니다.
  • 규모에 맞게 ML 모델 학습: Kubeflow는 Kubernetes 클러스터에 학습 워크로드를 배포하는 데 도움이 되므로 사용자가 더 큰 데이터 세트에서 모델을 더 효율적으로 학습시킬 수 있습니다. 이러한 확장성은 최신 머신러닝 애플리케이션에서 증가하는 데이터 볼륨을 처리하는 데 유용할 수 있습니다.
  • 프로덕션용 ML 모델 배포: Kubeflow를 사용하면 학습된 머신러닝 모델을 확장 가능하고 안정적인 서비스로 배포하고 모델 개발과 배포 간의 격차를 쉽게 해소할 수 있습니다. 이를 통해 실험 버전에서 프로덕션에 즉시 사용 가능한 ML 모델로의 전환을 간소화할 수 있습니다.
  • ML 수명 주기 관리: Kubeflow에는 실험 추적, 모델 버전 관리, 모델 성능 모니터링을 위한 기능이 포함되어 있는 경우가 많으며, 이러한 기능은 전체 머신러닝 수명 주기를 간소화합니다. 이 포괄적인 관리는 지속적 모니터링 및 개선이라는 MLOps 원칙과도 일치합니다.

Kubeflow 구성요소

Kubeflow는 포괄적인 플랫폼을 제공하기 위해 함께 작동할 수 있는 여러 구성요소로 구성됩니다. 몇 가지 주요 구성요소는 다음과 같습니다.

파이프라인

Docker 컨테이너를 활용하는 Kubeflow Pipelines는 이동성과 확장성을 모두 갖춘 머신러닝 워크플로를 만들고 배포하기 위한 플랫폼을 제공합니다. 각 파이프라인은 청사진 역할을 하며 ML 워크플로의 단계와 상호 연결을 자세히 설명합니다. Kubeflow Pipelines 내의 사용자 친화적인 인터페이스를 통해 실험을 효율적으로 관리하고 추적하며, 파이프라인 실행을 시각화하고, 로그 및 성능 측정항목을 심층적으로 검사할 수 있습니다.

Katib

Katib는 머신러닝 모델을 위한 초매개변수 조정 시스템입니다. 모델에 가장 적합한 초매개변수 조합을 찾는 것은 시간이 많이 걸리는 프로세스일 수 있지만 Katib는 이 프로세스를 자동화합니다. Katib는 그리드 검색, 무작위 검색, 베이즈 최적화와 같은 다양한 검색 알고리즘을 지원하므로 사용자가 모델의 성능을 보다 효율적으로 최적화할 수 있습니다.

KFServing

KFServing은 학습된 머신러닝 모델을 배포하기 위한 서버리스 추론 플랫폼을 제공합니다. 학습된 모델의 배포 및 확장을 간소화합니다. KFServing은 TensorFlow, PyTorch, scikit-learn과 같은 다양한 머신러닝 프레임워크를 지원하므로 프레임워크에 구애받지 않고 다양한 ML 생태계에 적응할 수 있습니다.

메타데이터

Kubeflow의 메타데이터 구성요소는 계보 및 아티팩트 추적을 제공합니다. 이 구성요소는 데이터 과학자가 실험, 데이터 세트, 모델을 추적하여 작업을 더 쉽게 관리하고 재현하는 데 도움이 됩니다. 이러한 메타데이터 추적은 팀원 간의 공동작업을 촉진하고 결과의 재현성을 보장합니다.

Kubeflow의 이점

머신러닝 프로세스를 간소화하고 개선하려는 조직은 Kubeflow가 제공하는 다양한 이점을 발견할 수 있습니다.

확장성 및 이동성

Kubeflow는 사용자가 필요에 따라 머신러닝 워크플로를 확장하거나 축소할 수 있도록 지원하며 온프레미스, 클라우드, 하이브리드 환경 등 다양한 인프라에 배포할 수 있습니다. 이러한 유연성 덕분에 조직은 ML 인프라를 특정 요구사항에 맞게 조정하고 공급업체 종속을 피할 수 있습니다.

재현성 및 실험 추적

Kubeflow를 사용하는 주요 이점 중 하나는 구성요소 기반 아키텍처를 통해 실험과 모델을 더 쉽게 재현할 수 있다는 것입니다. 데이터 세트, 코드, 모델 매개변수의 버전 관리 및 추적을 위한 도구를 제공합니다. 이러한 재현성은 ML 실험의 일관성을 보장하고 데이터 과학자 간의 공동작업을 용이하게 합니다.

확장성 및 통합

확장 가능하도록 설계된 Kubeflow는 클라우드 기반 머신러닝 플랫폼을 비롯한 다양한 다른 도구 및 서비스와 통합할 수 있습니다. 또한 추가 구성요소로 맞춤설정할 수 있습니다. 이를 통해 조직은 기존 도구와 워크플로를 활용하고 Kubeflow를 ML 생태계에 원활하게 통합할 수 있습니다.

운영상의 복잡성 감소

Kubeflow는 머신러닝 워크플로의 배포 및 관리와 관련된 많은 작업을 자동화하여 데이터 과학자와 엔지니어가 모델 개발 및 최적화와 같은 가치가 높은 작업에 집중할 수 있도록 지원합니다. 운영 부담이 줄어들면 생산성과 효율성이 크게 향상될 수 있습니다.

리소스 사용률 개선

Kubeflow는 Kubernetes와 긴밀하게 통합되어 리소스를 보다 효율적으로 활용할 수 있습니다. 조직은 하드웨어 리소스 할당을 최적화하고 머신러닝 워크로드 실행과 관련된 비용을 절감할 수 있습니다.

Kubeflow 시작하기

사용자는 개별 요구사항과 경험 수준에 따라 Kubeflow를 시작하는 몇 가지 다른 방법을 사용할 수 있습니다.

  • Google Kubernetes Engine(GKE)에 Kubeflow 배포: 이 옵션은 Kubeflow 배포에 대한 많은 유연성과 제어 기능을 제공합니다. 사용자는 특정 요구사항을 충족하도록 설치를 맞춤설정하고 기본 Kubernetes 클러스터에 대한 전체 액세스 권한을 가질 수 있습니다. 하지만 이 접근 방식은 Kubernetes에 대한 전문성이 더 많이 필요하며 더 복잡할 수 있습니다.
  • Vertex AI Pipelines 활용: 이 옵션은 Google Cloud에서 Kubeflow 파이프라인을 더 쉽게 배포하고 실행할 수 있는 완전 관리형 서비스입니다. Vertex AI Pipelines는 모든 인프라 관리를 처리하므로 사용자는 ML 워크플로를 빌드하고 실행하는 데 집중할 수 있습니다. 이 접근 방식은 빠르고 쉽게 설정할 수 있는 관리형 솔루션을 찾는 사용자에게 적합한 옵션일 수 있습니다.
  • 다른 플랫폼에서 Kubeflow 살펴보기: Kubeflow는 다른 Kubernetes 환경에도 배포할 수 있습니다. 이러한 플랫폼에 대한 설치 안내 및 문서는 Kubeflow 웹사이트에서 확인할 수 있습니다.
사용자는 Kubernetes에 대한 숙련도, 인프라에 대한 원하는 제어 수준, 예산을 고려하여 최적의 접근 방식을 결정해야 합니다. Kubernetes를 처음 사용하거나 보다 관리형 솔루션을 원하는 사용자라면 Vertex AI Pipelines를 시작점으로 삼는 것이 좋습니다. 사용자가 더 많은 유연성이 필요하거나 Kubeflow를 온프레미스에서 실행하려는 경우 GKE 또는 다른 Kubernetes 플랫폼에 배포하는 것이 더 적합할 수 있습니다.

다음 단계 수행

$300의 무료 크레딧과 20여 개의 항상 무료 제품으로 Google Cloud에서 빌드하세요.

Google Cloud