- codingTest
- 2023_1st_Semester
- programmers
- Kubernetes
- Linux
- app
- Univ._Study
- Algorithm
- C
- Artificial_Intelligence
- kubeflow
- Android
- Unix_System
- Image_classification
- Python
- Personal_Study
- 리눅스마스터2급
- cloud_computing
- Database_Design
- c++
- 자격증
- Baekjoon
- tensorflow
- 오블완
- study
- 티스토리챌린지
- SingleProject
- Operating_System
- Java
- datastructure
코딩 기록 저장소
[쿠버플로우] 개념 및 구성 요소 정리 본문
목차
1. Kubeflow 개념
- 쿠버네티스(Kubernetes)를 기반으로 하는 AI 플랫폼 구축을 위한 핵심 도구
- 컨테이너 오케스트레이션을 활용하여 머신러닝 워크플로우를 간편게 생성하며 모델을 배포, 관리할 수 있게 함
- 각 프로젝트에 필요한 도구를 독립적으로 사용하거나, 전체 AI 워크플로우를 아우르는 통합 플랫폼을 구축할 수 있음
01. 쿠버플로우 AI 플랫폼 특징
- 구성 가능하고 모듈식 : 필요한 기능만 선택해 조합할 수 있음
- 이식성과 확장성 : 쿠버네티스가 동작하는 어떤 환경(클라우드, 온프레미스)에서도 동일하게 사용할 수 있으며, 대규모 작업도 효율적으로 처리함
- AI 워크플로우 지원 : AI 수명 주기의 모든 단계(데이터 준비, 학습, 배포 등)를 지원하는 쿠버네티스 기반 프로젝트들로 구성됨
02. 쿠버플로우 프로젝트
- AI 라이프 사이클의 다양한 측면을 다루는 여러 오픈소스 프로젝트로 구성됨
- 이 프로젝트들은 독립적으로 사용하거나 쿠버플로우 AI 참조 플랫폼의 일부로 사용할 수 있음
프로젝트 | 설명 |
Kubeflow KServe | 머신러닝 모델 서빙을 위함 |
Kubeflow Katib | 하이퍼파라미터 튜닝 및 뉴럴 아키텍처 탐색 |
Kubeflow Model Registry | 모델 관리 및 버전 관리를 위한 도구 |
Kubeflow Notebooks | 주피터 노트북을 쿠버네티스 환경에서 운영 |
Kubeflow Pipelines | AI 워크플로우를 자동화하고 관리 |
Kubeflow Spark Operator | 스파크(Spark) 워크로드를 쿠버네티스에서 운영 |
Kubeflow Trainer | 모델 학습을 위한 도구 |
2. Kubeflow 구조
01. Central Dashboard
역할 및 기능
- 사용자가 Kubeflow 환경에 접근하는 시작점
- 다양한 머신러닝 워크플로우를 구성하는 각 컴포넌트(Jupyter, Pipelines, Katib 등)로 이동할 수 있는 네비게이터 역할을 수행
- 주요 기능
- 컴포넌트 접근
- Central Dashboard는 Kubeflow의 모든 컴포넌트로 연결되는 중앙 허브
- 사용자는 대시보드를 통해 필요한 컴포넌트의 전용 UI로 즉시 이동 - 사용자 및 네임스페이스 관리
- 로그인한 사용자의 정보를 보여줌
- 사용자별 네임스페이스(Profile)를 선택하여 작업 환경을 분리하고 관리 가능 - 빠른 시작
- 처음 접속했을 때 Kubeflow에 대한 소개나 빠른 시작 가이드 등을 제공하여 사용자가 쉽게 시작할 수 있도록 도움
- 컴포넌트 접근
구성 요소
- Header: 현재 로그인한 사용자의 이름, 로그아웃 버튼, 그리고 때로는 현재 선택된 네임스페이스 정보 등 표시
- Sidebar Navigation: Notebooks, Pipelines, Katib, Volumes 등 Kubeflow의 주요 컴포넌트들로 연결되는 메뉴 링크를 제공, 사용자는 이 메뉴를 통해 각 컴포넌트의 전용 웹 UI로 손쉽게 이동
- Main View: 대시보드에 처음 접속했을 때 보이는 초기 화면, 일반적으로 Kubeflow에 대한 소개, 빠른 시작 가이드, 최근 활동 내역 등이 표시됨
02. Jupyter Notebooks
역할 및 기능
- Kubernetes 클러스터에 Jupyter Notebook Pod를 생성하고 관리하기 위한 사용자 인터페이스를 제공
- 주로 데이터 과학자나 모델 개발자가 직접 개발 환경을 구축할 때 사용됨
- 기능
- Notebook 서버 관리
- 사용자는 UI를 통해 Jupyter Notebook 서버를 생성, 중지, 삭제 - 리소스 및 환경 설정
- Notebook 서버에 필요한 CPU, 메모리, GPU와 같은 하드웨어 자원과 사용할 Docker 이미지, 환경 변수, 그리고 PVC(Persistent Volume Claim)와 같은 스토리지 설정까지 모두 지정할 수 있음 - 커스텀 이미지 활용
- 원하는 개발 환경이 미리 구성된 커스텀 Docker 이미지를 사용해 Notebook 서버를 만들 수 있어, 개발 환경의 일관성과 재현성을 보장
- Notebook 서버 관리
구성 요소
- Notebook List: 사용자가 생성한 Notebook 목록을 보여줌
- Create Notebook: Notebook 서버의 사양과 설정을 지정하는 UI
- Server Status: 현재 실행 중인 Notebook Pod의 상태(예: Running, Stopped)를 확인
03. Pipelines
역할 및 기능
- 머신러닝 파이프라인을 설계하고 실행할 수 있는 워크플로우 실행 및 관리 UI
- 주로 AutoML, 모델 학습/추론/평가 등의 과정을 순차적으로 자동화하는 데 사용
- 기능
- 워크플로우 설계 및 실행
- YAML 형식으로 정의된 파이프라인을 업로드하여 실행하고 관리 - 시각화 및 모니터링
- DAG (방향성 비순환 그래프) 형태로 파이프라인의 전체 구조와 각 단계의 실행 상태를 시각적으로 보여줌 - 반복 실험
- 다양한 파라미터를 설정하여 여러 번의 실험을 손쉽게 수행
- 그 결과를 비교하며 최적의 모델을 찾을 수 있음 - 결과 분석
- 각 실행의 상세 로그, 출력 아티팩트, 그리고 모델 성능 지표를 시각화하여 분석
- 워크플로우 설계 및 실행
구성 요소
- Experiments: 파이프라인 실행을 그룹화하여 관리하는 단위, 여러 번의 파이프라인 실행 결과를 한데 모아 실험 단위로 비교하고 분석할 수 있음
- Runs: 개별 파이프라인 실행 인스턴스 목록, 각 실행에 대한 상세 정보(로그, 결과 등)를 확인할 수 있음
- Artifacts/Output View: 실행 결과 아티팩트 시각화, 학습된 모델의 성능 지표나 시각화된 그래프 등을 확인할 수 있음
- Upload Pipeline: YAML 형식으로 작성된 파이프라인 정의 파일을 업로드하여 실행할 수 있도록 하는 기능
04. Katib
역할
- AutoML의 핵심 기능인 하이퍼파라미터 최적화를 제공
- 하이퍼파라미터 튜닝 과정을 시각적으로 관리하고 모니터링
- 사용자는 UI를 통해 실험을 정의하고, 진행 상황을 확인하며, 최종 결과를 분석
- 기능
- 실험 정의
- UI에서 모델 이름, 파라미터 범위, 최적화 목표(maximize/minimize) 등을 설정하여 하이퍼파라미터 튜닝 실험을 정의 - 다양한 검색 알고리즘
- Random Search, Grid Search, Bayesian Optimization 등 다양한 최적화 알고리즘을 선택함
- 효율적으로 최적의 파라미터 조합을 찾을 수 있음 - 실험 모니터링 및 분석
- 각 파라미터 조합에 대한 성능 지표를 시각화하여 확인하고, 여러 실험의 결과를 쉽게 비교할 수 있음
- 실험 정의
구성 요소
- Experiment 생성 UI: 모델 이름, 파라미터 범위, 메트릭 조건 등 입력
- Experiment 목록 및 상태: 튜닝 결과와 Trial 상태 시각화
- Trial 상세보기: 각 파라미터 조합에 대한 성능 확인
05. Volumes (Persistent Volume 관리 UI)
역할 및 기능
- Jupyter Notebook이나 Pipeline에서 사용할 수 있는 Persistent Volume Claim(PVC)을 생성하고 관리하는 UI
- 데이터 저장 공간인 Persistent Volume(PV)을 사용자들이 쉽게 할당받고 관리할 수 있도록 함
- 기능
- PVC 생성 및 관리
- 사용자는 UI를 통해 필요한 크기, 접근 모드(Access Mode) 등을 지정하여 새로운 PVC를 만들거나 기존 PVC의 상태를 확인 - Jupyter Notebook 및 파이프라인 연동
- 생성된 PVC는 데이터가 필요한 워크로드(Jupyter Notebook, 파이프라인 등)에 자동으로 마운트되어, 사용자가 데이터를 읽고 쓸 수 있는 영구적인 저장 공간을 제공 - 삭제/변경 기능
- 생성된 PVC는 UI나 kubectl 명령어를 통해 삭제하거나 변경할 수 있음
- PVC 생성 및 관리
구성 요소
- Volume 목록 : PVC 이름, 사이즈, 상태, 네임스페이스
- 생성 UI : 이름, 크기, Access Mode 설정
06. Tensorboards
역할 및 기능
- 모델 학습 중 생성된 TensorBoard 로그 파일을 시각화하는 도구
- 머신러닝 모델의 학습 과정을 실시간으로 시각화하고 분석하는 데 사용
- PVC(Persistent Volume Claim)를 연결하여, 모델의 성능 지표, 손실 곡선, 그래프 구조 등을 웹 인터페이스에서 직관적으로 확인
- 기능
- 로그 시각화
- 모델 학습 중 생성되는 로그 데이터를 활용하여, 손실(loss) 및 정확도(accuracy)와 같은 메트릭을 시각화 - 학습 상태 모니터링
- 실시간으로 업데이트되는 그래프를 보면서 모델의 학습 진행 상황을 파악하고, 문제 발생 시 즉각적으로 대응 - PVC 연결
- 사용자가 지정한 PVC에 저장된 로그 파일을 자동으로 마운트하여 TensorBoard 서버에 연결
- 로그 시각화
구성 요소
- Tensorboard 목록
- Tensorboard 생성 UI
- 로그 디렉토리 설정 입력창
07. Profiles UI
역할 및 기능
- 하나의 Kubeflow 클러스터를 다수의 사용자 또는 팀이 함께 사용할 수 있도록 격리된 환경 제공
- 각 사용자에게 독립된 Kubernetes 네임스페이스 할당하여, 서로의 작업에 영향을 주지 않고 리소스를 관리
- 기능
- 사용자 및 팀 격리
- 각 사용자는 자신만의 Profile을 할당받음
- 다른 사용자의 작업과 충돌 없이 독립된 환경에서 머신러닝 워크플로우를 실행함 - 리소스 관리
- 사용자는 자신에게 할당된 네임스페이스에만 리소스(예: Notebook, Pipeline)를 생성하고 관리함 - 접근 제어
- Istio Gateway와 연계하여 네임스페이스 기반의 접근 제한을 설정함으로써, 보안을 강화함
- 사용자 및 팀 격리
08. Metadata 및 Artifacts UI
역할
- 머신러닝 파이프라인 실행 중에 생성된 모든 결과물과 메타데이터를 추적하고 관리
- 모델의 학습 과정, 사용된 데이터셋, 생성된 모델 파일 등 모든 아티팩트의 계보(lineage)를 시각적으로 분석
- 기능
- 아티팩트 트래킹
- 파이프라인의 각 단계에서 생성된 데이터셋, 모델, 메트릭 등의 모든 아티팩트를 자동으로 기록하고 추적 - 메타데이터 관리
- 각 아티팩트와 관련된 모델 버전, 실험 일자, 하이퍼파라미터 등 핵심적인 정보를 관리 - 시각적 계보 분석
- 데이터가 전처리 과정을 거쳐 모델 학습에 사용되고, 최종적으로 모델이 생성되기까지의 모든 과정을 그래프 형태로 시각화하여 보여줌
- 아티팩트 트래킹
'개인 공부 > 쿠버플로우' 카테고리의 다른 글
[쿠버플로우] 설치 및 세팅하기 (1) | 2025.06.05 |
---|