주요 개념
카카오클라우드의 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 |
Kubeflow 역할 관리
Kubeflow 역할은 콘솔, 대시보드 그리고 각 네임스페이스에 접근하고 이를 관리할 수 있는 권한을 차등하여 제공하고 있습니다.
역할은 크게 소유자, 사용자, 그룹 사용자로 구성되며 한 사용자에게 여러 역할을 추가할 수 있습니다.
Kubeflow 레벨 역할 유형
Kubeflow 소유자 역할을 받기 위해서는 IAM 프로젝트 멤버 이상의 권한이 필요합니다.
(소유자 지정 후, IAM 프로젝트 권한 회수 시 콘솔 페이지 접근 불가 및 대시보드 사용에 지장이 있을 수 있습니다.)
역할 | 설명 |
---|---|
Kubeflow 소유자(Owner) | Kubeflow 생성을 신청한 사용자가 자동으로 획득하는 최상위 역할로 콘솔에서 사용자, 네임스페이스, 그룹 등을 관리하는 역할 - Kubeflow 당 최소 1명의 소유자가 필요하며, 콘솔에서 네임스페이스를 보유한 다른 사용자에게 추가 권한 부여 가능 (최대 5명까지 지정 가능) - 소유자의 권한을 받기 위해서는 IAM 프로젝트 관리자/멤버 권한 필요 |
Kubeflow 사용자 | Kubeflow 대시보드를 사용하는 일반 사용자로 소유한 네임스페이스를 관리하거나 그룹에 추가되어 활동할 수 있는 역할 - Kubeflow 소유자 또는 IAM 조직 관리자가 콘솔에서 사용자 등록 수행 - 대시보드를 제외한 콘솔 접근 권한은 없으며, 네임스페이스를 보유한 사용자의 경우 IAM 프로젝트 멤버/관리자 권한 추가 후 Kubeflow 소유자로 등록 가능 |
Kubeflow 그룹 사용자 | Kubeflow 그룹에 등록된 사용자로 그룹 내 권한을 통해 대시보드를 사용할 수 있는 역할 - Kubeflow 소유자 또는 IAM 조직 관리자가 콘솔에서 등록하거나, 그룹 Admin 권한을 가진 사용자가 Kubeflow 대시보드에서 등록 수행 - 여러 그룹에 중복으로 등록 가능하며 그룹별 별도 권한 필요 - 그룹 사용자의 권한은 Admin / Edit / View로 구분됨 |
Kubeflow 역할별 KC 콘솔 관리 권한
Kubeflow 소유자를 제외한 나머지 역할들은 콘솔 접근 권한이 없기 때문에 소유자 등록 또는 IAM 프로젝트 권한이 필요합니다.
IAM 프로젝트 권한에 대한 설명은 IAM을 참고하시기 바랍니다.
콘솔 권한 | Kubeflow 소유자(Owner) |
---|---|
Kubeflow 상세 조회√ | ✓ |
Kubeflow 삭제 요청 | ✓ |
Kubeflow 소유자 등록/수정/삭제 | ✓ |
Kubeflow 사용자 등록/수정/삭제 | ✓ |
Kubeflow 그룹 생성/수정/삭제 | ✓ |
Kubeflow 그룹 사용자 등록/수정/삭제 | ✓ |
Kubeflow 역할별 대시보드 권한
사용자의 역할은 각 할당된 네임스페이스 안에서 유효합니다. 단, 네임스페이스 별로 여러 역할을 가질 수 있으며 역할별 상세 권한은 아래 표를 참고하시기 바랍니다.
대시보드 권한 | Kubeflow 소유자(Owner) | Kubeflow 사용자 (User) | 그룹 사용자 (Admin) | 그룹 사용자 (Edit) | 그룹 사용자 (View) |
---|---|---|---|---|---|
타 네임스페이스 목록 조회 | ✓ | ||||
소유 네임스페이스 조회 | ✓ | ✓ | ✓ | ✓ | ✓ |
Group 사용자 관리 | ✓ | ||||
노트북 조회 | ✓ | ✓ | ✓ | ✓ | ✓ |
노트북 생성/삭제/수정 | ✓ | ✓ | ✓ | ✓ | |
텐서보드 조회 | ✓ | ✓ | ✓ | ✓ | ✓ |
텐서보드 생성/삭제/수정 | ✓ | ✓ | ✓ | ✓ | |
파이프라인 조회 | ✓ | ✓ | ✓ | ✓ | ✓ |
파이프라인 생성/삭제/수정 | ✓ | ✓ | ✓ | ✓ | |
AutoML(Katib) 조회 | ✓ | ✓ | ✓ | ✓ | ✓ |
AutoML(Katib) 생성/삭제/수정 | ✓ | ✓ | ✓ | ✓ | |
모델 서빙(Kserve) 조회 | ✓ | ✓ | ✓ | ✓ | ✓ |
모델 서빙(Kserve) 생성/삭제/수정 | ✓ | ✓ | ✓ | ✓ |