주요 개념
카카오클라우드의 Kubeflow는 클라우드 네이티브 환경에서 머신러닝 워크플로우를 쉽게 구축하고 실행할 수 있도록 도와주는 오픈소스 플랫폼입니다. 이는 쿠버네티스 기반으로 구축되어, 쿠버네티스의 클러스터 관리 능력을 활용하여 머신러닝 워크플로우를 보다 쉽고 효율적으로 관리할 수 있게 해줍니다.
또한 데이터 전처리, 모델 학습, 모델 서빙 등의 머신러닝 워크플로우를 위한 주요 구성 요소를 제공하며, 일관된 인터페이스와 높은 수준의 추상화를 사용하여 개발자들이 빠르고 쉽게 ML 모델을 개발할 수 있도록 도와줍니다.
리소스 구조
리소스 구조
항목 | 설명 |
---|---|
⓵ 클라우드 | 카카오클라우드 환경에서 실행 이러한 클라우드 환경을 활용하여 머신러닝 작업을 더욱 쉽게 수행 |
⓶ 쿠버네티스 엔진과 클러스터 | Kubeflow는 쿠버네티스 엔진과 클러스터를 기반으로 함 이를 활용하여 머신러닝 모델의 개발, 배포, 관리를 보다 쉽게 수행 |
⓷ Kubeflow 애플리케이션 | 머신러닝 모델을 개발, 튜닝, 배포 및 관리하는 데 필요한 핵심 기능을 제공 |
⓸ Kubeflow 스캐폴딩 | 머신러닝 모델을 배포 및 관리하는 데 필요한 기능을 제공 |
⓹ 머신러닝 도구 | Kubeflow는 다양한 머신러닝 도구를 지원 사용자는 선호하는 도구를 선택하여 머신러닝 작업을 수행 |
ML 워크 플로우
항목 | 구분 | 설명 |
---|---|---|
실험 단계 | 데이터 수집 및 전처리 | 데이터를 수집하고, 전처리를 수행하여 머신러닝 모델 학습에 필요한 데이터 준비 |
데이터 변환 | 데이터를 머신러닝 모델이 이해할 수 있는 형태로 변환하고, 데이터의 크기를 줄이거나 유용한 특 징을 추출하여 머신러닝 모델 학습에 사용할 수 있도록 처리 | |
모델 코드 작성 | 선택한 머신러닝 알고리즘에 따라 모델을 개발하기 위한 코드 작성 | |
모델 실험 학습 | 학습 데이터를 사용하여 모델을 훈련하고, 하이퍼파라미터를 변경하여 여러 모델 버전 생성 및 비교 가능 | |
모델 하이퍼파라미터 튜닝 | 머신러닝 모델의 하이퍼파라미터를 조정하여 최적의 모델을 찾는 단계 | |
제품 단계 | 모델 학습 및 성능 평가 | 최적의 모델을 선택하고 학습시켜 성능을 평가하는 단계 |
모델 배포 | 학습된 모델을 배포하여 머신러닝 모델의 예측 서비스 제공 | |
모델 모니터링 및 관리 | 모델의 성능과 안정성을 모니터링하고, 문제 발생 시 대응 |
Kubeflow 생명주기 및 상태
Kubeflow 생명주기
구분 | 설명 | 분류 |
---|---|---|
Creating | Kubeflow 리소스 생성 중 | Yellow |
Active | Kubeflow 리소스 활성화 완료 | Green |
Failed | Kubeflow 리소스 생성 실패 또는 예상치 못한 오류로 인한 작동 실패 | Red |
Expired | Kubeflow 리소스 유효기간 만료 혹은 연결 클러스터 삭제 상태 | Red |
Terminating | Kubeflow 리소스 종료 중 | Yellow |
Terminated | Kubeflow 리소스 종료(삭제) | Gray |
안내
Kubeflow에서 연결하여 사용하는 클러스터, 노드 풀 그리고 노드의 상태 정보는 Kubernetes Engine > 리소스 상태 정보를 참고하시기 바랍니다.
Kubeflow 사용자 및 그룹 상태
Kubeflow 사용자 및 그룹 상태
구분 | 설명 | 분류 |
---|---|---|
Pending | Kubeflow 사용자 및 그룹 생성/수정 중 | Yellow |
Active | Kubeflow 사용자 및 그룹 생성/수정 요청 사항이 정상적으로 완료된 상태 | Green |
Failed | Kubeflow 사용자 및 그룹 생성/수정 실패 또는 예상치 못한 오류로 인한 작동 실패 상태 | Red |
Deleted | Kubeflow 사용자 및 그룹 삭제 요청이 정상적으로 완료된 상태 | 미노출 |
Kubeflow 컴포넌트 구성
Kubeflow 서비스의 컴포넌트는 기능적으로 분리된 작은 단위로 구성되어 있으며, ML 워크 플로우를 관리하기 위한 필수 요소입니다. 이러한 컴포넌트는 유연성과 확장성을 제공하고, ML 모델 개발 및 배포에 필요한 일련의 작업을 자동화합니다.
컴포넌트 유형 | 설명 |
---|---|
Dashboard | 각종 Kubeflow 컴포넌트 액세스 대시보드 웹콘솔 제공 |
JupyterLab | 다양한 기계학습 프레임워크와 함께 Kubeflow SDK와 연동되는 웹기반 기계 학습 개발 툴 제공 |
Kubeflow Pipelines | 전처리, 학습, 서빙 등의 기계학습 워크플로우를 처리하고 관리하는 탁월한 시각화 콘솔 제공 |
Katib | 모델 훈련에 사용되는 하이퍼파라미터를 최적화하기 위한 기능 제공 - 분산 학습 환경에서 모델 훈련 수행하며, 다양한 하이퍼파라미터 조합을 시도하여 최적의 모델 발굴 |
KServe | Kubeflow에서 훈련된 모델 배포 및 추론 수행에 사용 - 다양한 방식으로 모델을 배포하며, REST API를 통한 모델 추론 요청 처리 가능 |
Training Operator | 모델 학습 도구로 다양한 딥러닝 프레임워크(TensorFlow, PyTorch, ...)에 대한 분산 학습 지원 - 복수 GPU 자원에 대한 빠른 모델 학습 제공 |
Model Registry | 모델 등록 및 버전 관리 (모델의 메타데이터 저장) - Kubeflow의 다른 컴포넌트와 통합되어 전체 머신러닝 워크플로우의 효율성 향상 |
Kubeflow 서비스 버전 및 유형별 지원 컴포넌트
버전 | 사용 가능 리전 | 서비스 유형 | 컴포넌트 및 버전 |
---|---|---|---|
1.6.0 | kr-central-1 kr-central-2 | Essential + Hyper Param Tuning (HPT) + Serving API | - JupyterLab 3.2.9 - KF Pipelines 2.0.0-alpha.5 - Katib 0.14.0 - Tensorboard 2.1.0 - KServe 0.8.0 |
1.8.0 | kr-central-2 | Essential + Hyper Param Tuning (HPT) + Serving API | - JupyterLab 4.2.1 - KF Pipelines 2.0.5 - Katib 0.16.0 - Tensorboard 2.1.0 - KServe 0.11.2 |