일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- eBPF
- kubernetes operator
- Kubernetes 인증
- Continuous Deployment
- argocd
- opentelemetry
- 카오스 엔지니어링
- serving
- Kopf
- gitops
- nginx ingress
- opensearch
- xdp
- tekton
- blue/green
- Kubeflow
- knative
- CI/CD
- 오퍼레이터
- MLflow
- Argo
- Litmus
- Model Serving
- operator
- mlops
- seldon core
- keda
- Pulumi
- Kubernetes
- CANARY
- Today
- Total
Kubernetes 이야기
MLFlow vs Kubeflow 본문
MLOps 도구로 가장 인기 있는 도구 중 하나인 MLflow와 Kubeflow에 대해 알아보자. 이 2가지 오픈소스는 매우 다른 관점에서 시작되었다. Kubeflow는 오케스트레이션 및 파이프라인에 더 중점을 두고 MLflow는 실험 추적에 더 중점을 둔다. Kubeflow와 MLflow의 중요한 차이점에 대해 알아보자.
MLFlow
MLflow는 kubeflow와 유사하게 e2e 기계 학습 수명 주기를 관리하기 위한 오픈 소스 플랫폼으로 Spark의 제조사인 Databricks에서 만든 오픈 소스 프로젝트이다. 다음과 같은 기본 구성요소가 있다.
- 추적: 매개 변수와 결과를 기록하고 비교하는 실험을 추적할 수 있다.
- 모델: 다양한 모델 서비스 및 유추 플랫폼에 다양한 ML 라이브러리의 모델을 관리하고 배포할 수 있다.
- 프로젝트: 다른 데이터 과학자와 공유하거나 프로덕션으로 전송하기 위해 재사용 및 재현 가능한 형식으로 ML 코드를 패키지할 수 있다.
- 모델 레지스트리: 모델의 전체 수명 주기 단계 전환(준비에서 프로덕션으로, 버전 지정 및 주석 기능 포함)을 관리하기 위해 모델 저장소를 중앙 집중화할 수 있다.
- 모델 서비스 제공: MLflow 모델을 REST 엔드포인트로 호스트할 수 있다.
MLflow는 라이브러리 독립적이므로 CLI 및 REST API를 통해 모든 기능에 액세스할 수 있다.
그럼 mlflow와 kubeflow의 차이점은 무엇인가?
KubeFlow
Kubeflow는 Kubernetes의 컨테이너화된 환경에서 ML 채택을 단순화하기 위한 클라우드 네이티브 프레임워크이다. 내부 Google 프로젝트로 시작하여 나중에 공개 오픈 소스 프로젝트가 되었다. Kubeflow는 Kubernetes와 원활하게 통합되고 확장된다. 또한 Kubeflow는 Google Cloud, AWS, Azure, 온프레미스와 같은 클라우드를 포함하여 Kubernetes가 실행하는 모든 환경에서 실행할 수 있다.
Kubeflow의 주요 구성요소는 다음과 같다.
- 노트북 : 대화형 Jupyter 노트북을 만들고 관리할 수 있다. 또한 Kubernetes 클러스터에서 직접 노트북 컨테이너 또는 포드를 구축할 수 있다.
- TensorFlow 모델 교육 : Kubeflow는 Kubernetes에서 모델을 구성하고 교육하기 위한 맞춤형 TensorFlow 작업 연산자를 제공한다. 다른 프레임워크를 지원하기 위해 맞춤형 작업 운영자를 제공하지만 운영자의 성숙도는 크게 다 수 있다.
- 파이프라인 : Docker 컨테이너에서 실행되는 다단계 ML 워크플로를 구축하고 관리할 수 있다.
- 배포 : Kubeflow는 외부 애드온을 통해 Kubernetes에 ML 모델을 배포하는 다양한 방법을 제공한다.
Mlflow 와 Kubeflow의 차이점
접근방법
Kubeflow는 컨테이너 기반 시스템이므로 모든 처리는 Kubernetes 인프라 내에서 수행된다. Kubeflow는 컨테이너 오케스트레이션과 기계 학습 워크플로를 처리하기 때문에 더 복잡한 것으로 간주된다. 동시에 이 기능은 실험의 재현성을 향상시킨다.
MLflow는 Python 프로그램이므로 모든 Python 호환 프레임워크를 사용하여 학습을 수행할 수 있다. 단일 서버에 설정하고 기존 ML 모델에 쉽게 적용할 수 있다.
협업 환경
Kubeflow는 메타데이터 기능을 통해 실험 추적을 지원한다. 그러나 기계 학습 실험을 위한 완전한 추적을 설정하려면 고급 기술 지식이 필요하다.
MLflow에는 실험 추적 기능이 내장되어 있다. 이를 통해 개발자는 로컬 환경에서 작업하고 데이터를 원격 아카이브에 저장하는 로깅 프로세스를 통해 실험을 추적할 수 있다.
파이프라인 및 규모
병렬 및 순차 작업을 오케스트레이션하는 것이 Kubeflow의 원래 목적이다. 클라우드 컴퓨팅 인프라를 기반으로 엔드 투 엔드 ML 파이프라인 또는 광범위한 하이퍼파라미터 최적화를 실행해야 하는 사용 사례의 경우 Kubeflow는 강력한 기능을 제공한다.
MLflow는 엔드투엔드 ML 파이프라인을 설정하는 데에도 사용할 수 있지만 인프라 및 컨테이너 계층을 관리하지 않으므로 신중한 인프라 계획이 필요하고 확장성이 더 제한적이다.
모델배포
Kubeflow는 모델 배포 및 지속적 통합 및 제공(CI/CD)에 중점을 둔 독립 구성 요소인 Kubeflow Pipelines를 제공한다. Kubeflow의 다른 기능과 독립적으로 Kubeflow 파이프라인을 사용할 수 있다. 상당한 개발 노력과 시간이 필요할 수 있는 Kubernetes 클러스터에서 제공하는 구성 요소 및 서비스를 사용하여 배포 모델을 준비한다.
MLflow는 모델 레지스트리의 개념으로 모델 배포를 더 쉽게 만든다. 기계 학습 모델을 공유하는 중심 장소이자 모델이 구현되어 현장에서 가치를 제공할 때까지 진화하는 모델을 위한 협업 공간이다. MLflow 모델 레지스트리에는 MLflow 모델의 전체 수명 주기에 대한 보다 조정된 관리를 위한 일련의 API 및 UI가 있다. 또한 모델 버전 관리, 모델 계보, 주석 및 단계 전환을 제공한다.
MLflow와 Kubeflow 선택
MLflow를 사용하는 경우
MLflow는 활성 오픈 소스 커뮤니티에서 제공하는 MLOps 플랫폼을 제공한다. ML 모델을 추상화하여 다양한 환경에 쉽게 배포할 수 있다. 다양한 배포 옵션과 기능이 필요할 때 이상적이다.
MLflow를 사용하여 실험 메타데이터 및 결과를 추적, 비교 및 시각화할 수 있다. 이 플랫폼을 사용하면 ML 모델을 패키징 및 배포하고 다단계 워크플로를 생성할 수 있다.
Kubeflow를 사용하는 경우
Kubeflow는 Kubernetes에서 ML 모델을 관리, 배포 및 확장하기 위한 오픈 소스 플랫폼을 제공한다. 이를 통해 로컬 또는 클라우드에서 실험 메타데이터를 코딩, 추적 및 실행할 수 있다. Kubernetes에서 ML 모델을 배포하고 관리해야 할 때 이상적이다.
Kubeflow를 사용하여 여러 팀에서 리소스 할당량을 정의 및 관리하고 데이터 수집, 모델 구축 및 배포를 포함하여 전체 ML 수명 주기를 포괄하는 재현 가능한 파이프라인을 구축할 수 있다.
플랫폼은 파이프라인 및 실험 메타데이터를 시각화하고 실험 결과를 비교할 수 있는 UI를 제공한다. 또한 내장 노트북 서버 서비스가 포함되어 있으며 클라우드 인프라를 수동으로 관리할 필요가 없는 완전 관리형 서비스인 AWS Sagemaker와의 통합을 허용한다.
MLflow와 Kubeflow는 모두 똑같이 인기가 있지만 여전히 서로 매우 다르다. Kubeflow는 인프라 오케스트레이션 해결에 중점을 두고 있으며 MLflow의 강점은 실험 추적이다.
Kubeflow는 맞춤형 ML 솔루션 생산을 제공하는 대규모 팀의 요구 사항을 충족하는 데 도움이 된다. MLflow와 달리 실험 추적 및 기계 학습 모델에 대해 더 많이 작업하는 데이터 과학자에게 더 좋다.
https://royalcyberinc.medium.com/kubeflow-vs-mlflow-an-mlops-comparison-36db04a665d8
https://learn.microsoft.com/ko-kr/azure/databricks/mlflow/
https://mlops-for-all.github.io/en/docs/setup-components/install-components-mlflow/
https://www.run.ai/guides/machine-learning-operations/mlflow-vs-kubeflow
'Kubernetes > MLOps' 카테고리의 다른 글
KServe, Seldon Core, BentoML 비교 (0) | 2023.04.03 |
---|---|
Kubeflow - Pipeline (0) | 2023.03.26 |
MLOps (0) | 2023.03.06 |
Model Serving (0) | 2023.02.24 |
Kubeflow - Notebook (0) | 2023.02.24 |