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에 대한 상세 정보를 확인할 수 있습니다.
실행 상세 화면
Step 4. Run(실행) 결과 관리
-
Kubeflow 대시보드에 접속하여 Runs 탭을 클릭한 후, 목록에서 보관할 실행을 선택하고 [Archive] 버튼을 클릭합니다.
실행 보관하기
-
보관한 실행은 Runs 탭 목록화면의 Archived 항목에서 확인할 수 있으며, Run을 선택하고 [Restore] 버튼을 클릭하면 원래대로 복구할 수 있습니다.
실행 복구하기
Step 5. Run(실행) 삭제하기
실습 완료나 서비스 미사용 시, 아래와 같이 리소스를 삭제하는 것이 좋습니다.
-
Kubeflow 대시보드에 접속하여 Runs 탭을 클릭한 후, 목록에서 삭제할 실행을 선택하고 [Archive] 버튼을 클릭합니다.
실행 삭제하기
-
보관한 실행은 Runs 탭 목록화면의 Archived 항목에서 확인할 수 있으며, 실행을 선택하고 [Delete] 버튼을 클릭하면 실행을 삭제할 수 있습니다.
실행 삭제하기
-
실행 삭제 시, 파드까지 삭제된걸 확인할 수 있습니다.
실행 삭제 확인하기
Step 6. Experiment(실험) 보관하기
-
Kubeflow 대시보드에 접속하여 Experiments (KFP) 탭을 클릭한 후, 목록에서 보관할 Experiments를 선택합니다.
-
Experiments 상세 화면에서 우측 상단의 [Archive] 버튼을 클릭합니다.
실험 보관하기
-
보관한 실험은 Experiments 탭 목록화면의 Archived 항목에서 확인할 수 있으며, Experiments를 선택하고 [Restore] 버튼을 클릭하면 원래대로 복구할 수 있습니다.
실험 복구하기
Step 7. 파이프라인 삭제하기
실습 완료나 서비스 미사용 시, 아래와 같이 파이프라인을 삭제하는 것이 좋습니다.
-
Kubeflow 대시보드에 접속하여 Pipelines 탭을 선택합니다.
-
목록화면에서 삭제할 파이프라인을 선택한 후 우측 상단의 [Delete] 버튼을 클릭하여 삭제합니다.
파이프라인 삭제하기
KF Pipelines에 대한 자세한 설명은 Kubeflow 공식 사이트의 Kubeflow Pipelines 문서를 확인해 주세요.