Kubeflow Pipelines을 사용한 예측 모델 학습
카카오클라우드 Kubeflow 환경에서 파이프라인을 활용해 머신러닝 모델의 학습 과정을 자동화하는 방법을 소개합니다.
- 예상 소요 시간: 10분
- 사용자 환경
- 권장 운영 체제: MacOS, Ubuntu
- Region: kr-central-2
- 사전 준비 사항
- 참고 문서
- 참고 사항
- Private 네트워크 환경에서는 학습 파일 다운로드가 원활하지 않을 수 있습니다.
시작하기 전에
이 튜토리얼은 Kubeflow Pipelines의 핵심 개념과 기능을 학습 데이터와 예제를 통해 소개합니다. 파이프라인을 구성하는 컴포넌트의 작성과 조합, 파이프라인을 통한 데이 터 처리 및 모델 학습 과정을 이해하고 직접 실습할 수 있는 예제를 제공합니다. 사용자는 이 문서를 통해 머신러닝 워크플로우의 동작을 이해하고, 자동화 방법을 학습할 수 있습니다.
시나리오 소개
Kubeflow Pipelines를 사용하여 파이프라인을 생성하고 활용하여 예측 모델 학습 과정을 자동화하는 방법을 단계별로 안내합니다. 이 시나리오의 주요 내용은 다음과 같습니다.
- Kubeflow Pipelines의 기본 개념과 컴포넌트 이해
- 파이프라인 생성 및 실행
- 'Experiment(실험)'과 'Run(실행)'을 통한 모델 학습 과정 관리
지원 도구
도구 | 버전 | 설명 |
---|---|---|
KF Pipelines | 2.0.5 | - 머신러닝 워크플로우를 구축, 배포 및 관리하기 위한 Kubeflow의 핵심 구성 요소 중 하나입니다. - 간소화된 인터페이스로 신속한 실험 및 반복 가능한 기계 학습 워크플로우를 지원합니다. - 파라미터 튜닝, 실험 관리, 모델 버전 관리 등 다양한 기능을 제공합니다. |
KF Pipelines에 대한 자세한 설명은 Kubeflow > KF Pipelines 공식 문서를 확인해 주세요.
주요 개념
- 컴포넌트: 재사용 가능한 작업 단위로, 다양한 언어와 라이브러리를 지원합니다. 여러 컴포넌트를 결합해 실험을 구성할 수 있습니다.
- Experiment(실험): 컴포넌트를 연결해 전체 워크플로우를 구성합니다. 다양한 파라미터와 데이터 조합을 테스트할 수 있습니다.
- Run(실행): Experiment를 실행하고, 각 단계의 결과를 추적 및 관리합니다. 실패한 작업을 다시 실행하거나, 이전 실행 결과를 재사용할 수 있습니다.
파이프라인 관리
- 파이프라인 컴포넌트는 DAG(Directed Acyclic Graph) 형태로 시각화됩니다.
- 모든 파이프라인은 SDK 또는 수동 압축 파일 업로드를 통해 코드로 관리됩니다.
파이프라인 이미지
카카오클라우드 에서 지원하는 Kubeflow 파이프라인 이미지는 TensorFlow, Pytorch 등 다양한 머신러닝 프레임워크를 포함합니다. 필요에 따라 사용자 정의 도커 이미지를 활용할 수 있습니다.
이미지 레지스트리 엔드포인트는 bigdata-150.kr-central-2.kcr.dev/kc-kubeflow/(이미지명)
입니다.
예를 들어, kmlp-tensorflow:1.0.0.py36.cpu 이미지의 Pull을 원하실 경우 bigdata-150.kr-central-2.kcr.dev/kc-kubeflow/kmlp-tensorflow:v1.0.0.py36.cpu
로 PULL을 받으시면 됩니다.
지원 파이프라인 정보
이미지명 | 프레임워크 | 버전 | GPU 지원 |
---|---|---|---|
kmlp-tensorflow:v1.8.0.py38.cpu.1a | tensorflow | 2.13.1 | X |
kmlp-tensorflow:v1.8.0.py38.cuda.1a | tensorflow | 2.13.1 | O |
kmlp-tensorflow:v1.8.0.py311.cpu.1a | tensorflow | 2.15.1 | X |
kmlp-tensorflow:v1.8.0.py311.cuda.1a | tensorflow | 2.15.1 | O |
kmlp-pytorch:v1.8.0.py38.cpu.1a | pytorch | 2.3.0 | X |
kmlp-pytorch:v1.8.0.py38.cuda.1a | pytorch | 2.3.0 | O |
kmlp-pytorch:v1.8.0.py311.cpu.1a | pytorch | 2.3.0 | X |
kmlp-pytorch:v1.8.0.py311.cuda.1a | pytorch | 2.3.0 | O |
kmlp-pyspark-tensorflow:v1.8.0.py38.cpu.1a | tensorflow | 2.13.1 | X |
kmlp-pyspark-tensorflow:v1.8.0.py38.cuda.1a | tensorflow | 2.13.1 | O |
kmlp-pyspark-tensorflow:v1.8.0.py311.cpu.1a | tensorflow | 2.15.1 | X |
kmlp-pyspark-tensorflow:v1.8.0.py311.cuda.1a | tensorflow | 2.15.1 | O |
kmlp-pyspark-pytorch:v1.8.0.py38.cpu.1a | pytorch | 2.3.0 | X |
kmlp-pyspark-pytorch:v1.8.0.py38.cuda.1a | pytorch | 2.3.0 | O |
kmlp-pyspark-pytorch:v1.8.0.py311.cpu.1a | pytorch | 2.3.0 | X |
kmlp-pyspark-pytorch:v1.8.0.py311.cuda.1a | pytorch | 2.3.0 | O |
사전 작업
1. 학습 데이터세트 준비
이 튜토리얼은 New York City에서 공개된 TLC Trip Record Data와 예제로 제공하는 파이프라인 메니페 스트 파일을 활용하여 간단한 전처리 및 학습 파이프라인을 실습합니다.
항목 | 설명 |
---|---|
목표 | 택시 요금 예측 모델 구현 |
데이터 정보 | NYC 택시 및 리무진 위원회에서 제공하는 2009~2015년의 Yellow 택시 요금 - 택시의 승하차 시간 및 위치, 여행 거리, 요금, 결제 유형, 승객 수 등 |
원본 데이터세트 정보
2. Kubeflow 환경 준비
이 튜토리얼은 GPU 노드 풀 환경을 사용합니다.
Kubeflow 서비스나 적절한 환경이 준비되지 않았다면, Kubeflow 생성 및 관리 문서를 참고하여 Kubeflow를 생성합니다.
작업 순서
Kubeflow 환경에서 'Experiment(실험)'와 'Run(실행)'을 만들고, 학습 파이프라인을 구축하는 구체적인 실습 단계는 다음과 같습니다.
Step 1. 파이프라인 생성하기
실습 메니페스트 파일으로 파이프라인을 생성하는 방법을 안내합니다.
-
Kubeflow 대시보드에 접속한 후, Pipelines 탭에서 [Upload pipeline] 버튼을 클릭합니다.
Kubeflow 대시보드에서 Pipelines 탭 접근하기
-
Upload a file 옵션을 선택하고 Step 1. 사전안내에서 다운로드 받은 실습 메니페스트 파일(zip)을 업로드 합니다.
파이프라인 업로드 하기
파이프라인 생성에 대한 자세한 설명은 Kubeflow > Kubeflow Pipeline > Quick Start 문서를 확인해 주세요.
Step 2. Experiment(실험) 생성하기
Kubeflow 대시보드의 Experiments (KFP) 탭 혹은 Pipelines 탭의 특정 파이프라인 상세 페이지에서 Experiment(실험) 을 생성합니다.
-
Kubeflow 대시보드에 접속한 후, Pipelines 탭에서 Experiment를 생성하고자 하는 파이프라인을 선택합니다.
-
파이프라인 상세화면에서 [Create experiment] 버튼을 클릭합니다.
파이프라인 상세화면
-
Experiment name(실험 이름)을 입력하고 [Next] 버튼을 클릭합니다.
실험 생성하기
Step 3. Run(실행) 생성 및 관리
Experiment 생성 후 자연스럽게 Run 생성 단계로 넘어갑니다.
만일 차후에 Run을 생성하고자 하는 경우, 아래 세 가지의 방법으로 진행할 수 있습니다.
- Runs 탭에서 [Create run] 버튼을 클릭합니다.
- Pipelines 탭에서 파이프라인 상세화면에 접근하여 [Create run] 버튼을 클릭합니다.
- Experiments (KFP) 탭에서 실험 상세화면에 접근하여 [Create run] 버튼을 클릭하여 만들 수 있습니다.
-
Start a run(실행 생성하기) 화면에서 필요한 정보를 입력하고 [Start] 버튼을 클릭합니다.
- 실습에서는 Step2.에서 메니페스트 파일(zip)을 업로드 하였으므로 아래 화면에서의 모든 값이 자동 입력됩니다.
실행 생성하기
-
Runs 탭으로 이동하여 생성한 Run을 선택하여 상세화면으로 이동합니다. 상세 화면에서 Run에 대한 상세 정보를 확인할 수 있습니다.
실행 상세화면