Kubeflow Pipelines을 사용한 예측 모델 학습
카카오클라우드 Kubeflow 환경에서 파이프라인을 활용해 머신러닝 모델의 학습 과정을 자동화하는 방법을 소개합니다.
- 예상 소요 시간: 10분
- 권장 운영 체제: MacOS, Ubuntu
- Region: kr-central-2
- 사전 준비 사항
- 참고 문서
시작하기 전에
이 튜토리얼은 Kubeflow Pipelines의 핵심 개념과 기능을 학습 데이터와 예제를 통해 소개합니다. 파이프라인을 구성하는 컴포넌트의 작성과 조합, 파이프라인을 통한 데이터 처리 및 모델 학습 과정을 이해하고 직접 실습할 수 있는 예제를 제공합니다. 사용자는 이 문서를 통해 머신러닝 워크플로우의 동작을 이해하고, 자동화 방법을 학습할 수 있습니다.
시나리오 소개
Kubeflow Pipelines를 사용하여 파이프라인을 생성하고 활용하여 예측 모델 학습 과정을 자동화하는 방법을 단계별로 안내합니다. 이 시나리오의 주요 내용은 다음과 같습니다.
- Kubeflow Pipelines의 기본 개념과 컴포넌트 이해
- 파이프라인 생성 및 실행
- 'Experiment(실험)'과 'Run(실행)'을 통한 모델 학습 과정 관리
지원 도구
도구 | 버전 | 설명 |
---|---|---|
KF Pipelines | 2.0.0 beta.0 | - 머신러닝 워크플로우를 구축, 배포 및 관리하기 위한 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:1.0.0.py36.cpu
로 PULL을 받으시면 됩니다.
지원 파이프라인 정보
이미지명 | 프레임워크 | 버전 | GPU 지원 |
---|---|---|---|
kmlp-tensorflow:1.0.0.py36.cpu | tensorflow | 2.5.2 | X |
kmlp-tensorflow:1.0.0.py36.cuda | tensorflow | 2.11.0 | O |
kmlp-tensorflow:1.0.0.py38.cpu | tensorflow | 2.5.2 | X |
kmlp-tensorflow:1.0.0.py38.cuda | tensorflow | 2.11.0 | O |
kmlp-pytorch:1.0.0.py36.cpu | pytorch | 1.8.1 | X |
kmlp-pytorch:1.0.0.py36.cuda | pytorch | 1.8.1 | O |
kmlp-pytorch:1.0.0.py38.cpu | pytorch | 1.13.1 | X |
kmlp-pytorch:1.0.0.py38.cuda | pytorch | 1.13.1 | O |
kmlp-pyspark-tensorflow:1.0.0.py36.cpu | tensorflow | 2.5.2 | X |
kmlp-pyspark-tensorflow:1.0.0.py36.cuda | tensorflow | 2.11.0 | O |
kmlp-pyspark-tensorflow:1.0.0.py38.cpu | tensorflow | 2.5.2 | X |
kmlp-pyspark-tensorflow:1.0.0.py38.cuda | tensorflow | 2.11.0 | O |
kmlp-pyspark-pytorch:1.0.0.py36.cpu | pytorch | 1.8.1 | X |
kmlp-pyspark-pytorch:1.0.0.py36.cuda | pytorch | 1.8.1 | O |
kmlp-pyspark-pytorch:1.0.0.py38.cpu | pytorch | 1.13.1 | X |
kmlp-pyspark-pytorch:1.0.0.py38.cuda | pytorch | 1.13.1 | O |
사전 작업
1. 학습 데이터세트 준비
이 튜토리얼은 New York City에서 공개된 TLC Trip Record Data와 예제로 제공하는 파이프라인 메니페스트 파일을 활용하여 간단한 전처리 및 학습 파이프라인을 실습합니다.
항목 | 설명 |
---|---|
목표 | 택시 요금 예측 모델 구현 |
데이터 정보 | NYC 택시 및 리무진 위원회에서 제공하는 2009~2015년의 Yellow 택시 요금 - 택시의 승하차 시간 및 위치, 여행 거리, 요금, 결제 유형, 승객 수 등 |
원본 데이터세트 정보
2. Kubeflow 환경 준비
이 튜토리얼은 GPU 노드풀 환경에서 노트북을 사용합니다.
Kubeflow 서비스나 적절한 환경이 준비되지 않았다면, Jupyter Notebook 생성하기 문서를 참고하여 GPU 이미지 기반의 노트북을 생성합니다.
작업 순서
Kubeflow 환경에서 'Experiment(실험)'와 'Run(실행)'을 만들고, 학습 파이프라인을 구축하는 구체적인 실습 단계는 다음과 같습니다.