주요 개념
카카오클라우드의 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) 생성/삭제/수정 | ✓ | ✓ | ✓ | ✓ |