Skip to main content

Kubeflow Pipelines을 사용한 예측 모델 학습

카카오클라우드 Kubeflow 환경에서 파이프라인을 활용해 머신러닝 모델의 학습 과정을 자동화하는 방법을 소개합니다.

기본 정보

시작하기 전에

이 튜토리얼은 Kubeflow Pipelines의 핵심 개념과 기능을 학습 데이터와 예제를 통해 소개합니다. 파이프라인을 구성하는 컴포넌트의 작성과 조합, 파이프라인을 통한 데이터 처리 및 모델 학습 과정을 이해하고 직접 실습할 수 있는 예제를 제공합니다. 사용자는 이 문서를 통해 머신러닝 워크플로우의 동작을 이해하고, 자동화 방법을 학습할 수 있습니다.

시나리오 소개

Kubeflow Pipeliness를 사용하여 파이프라인을 생성하고 활용하여 예측 모델 학습 과정을 자동화하는 방법을 단계별로 안내합니다. 이 시나리오의 주요 내용은 다음과 같습니다.

  • Kubeflow Pipelines의 기본 개념과 컴포넌트 이해
  • 파이프라인 생성 및 실행
  • 'Experiment(실험)'과 'Run(실행)'을 통한 모델 학습 과정 관리

지원 도구

도구버전설명
KF Pipelines2.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.cputensorflow2.5.2X
kmlp-tensorflow:1.0.0.py36.cudatensorflow2.11.0O
kmlp-tensorflow:1.0.0.py38.cputensorflow2.5.2X
kmlp-tensorflow:1.0.0.py38.cudatensorflow2.11.0O
kmlp-pytorch:1.0.0.py36.cpupytorch1.8.1X
kmlp-pytorch:1.0.0.py36.cudapytorch1.8.1O
kmlp-pytorch:1.0.0.py38.cpupytorch1.13.1X
kmlp-pytorch:1.0.0.py38.cudapytorch1.13.1O
kmlp-pyspark-tensorflow:1.0.0.py36.cputensorflow2.5.2X
kmlp-pyspark-tensorflow:1.0.0.py36.cudatensorflow2.11.0O
kmlp-pyspark-tensorflow:1.0.0.py38.cputensorflow2.5.2X
kmlp-pyspark-tensorflow:1.0.0.py38.cudatensorflow2.11.0O
kmlp-pyspark-pytorch:1.0.0.py36.cpupytorch1.8.1X
kmlp-pyspark-pytorch:1.0.0.py36.cudapytorch1.8.1O
kmlp-pyspark-pytorch:1.0.0.py38.cpupytorch1.13.1X
kmlp-pyspark-pytorch:1.0.0.py38.cudapytorch1.13.1O

사전 작업

1. 학습 데이터세트 준비

이 튜토리얼은 New York City에서 공개된 TLC Trip Record Data와 예제로 제공하는 파이프라인 메니페스트 파일을 활용하여 간단한 전처리 및 학습 파이프라인을 실습합니다.

항목설명
목표택시 요금 예측 모델 구현
데이터 정보NYC 택시 및 리무진 위원회에서 제공하는 2009~2015년의 Yellow 택시 요금
- 택시의 승하차 시간 및 위치, 여행 거리, 요금, 결제 유형, 승객 수 등

원본 데이터세트 정보

2. Kubeflow 환경 준비

이 튜토리얼은 GPU 노드풀 환경에서 노트북을 사용합니다.

Kubeflow 서비스나 적절한 환경이 준비되지 않았다면, Jupyter Notebook 생성하기 문서를 참고하여 GPU 이미지 기반의 노트북을 생성합니다.


작업 순서

Kubeflow 환경에서 'Experiment(실험)'와 'Run(실행)'을 만들고, 학습 파이프라인을 구축하는 구체적인 실습 단계는 다음과 같습니다.

Step 1. 파이프라인 생성하기

실습 메니페스트 파일으로 파이프라인을 생성하는 방법을 안내합니다.

  1. Kubeflow 대시보드에 접속한 후, Pipelines 탭에서 [Upload pipeline] 버튼을 클릭합니다.

    이미지. Kubeflow 대시보드에서 Pipelines 탭 접근하기 Kubeflow 대시보드에서 Pipelines 탭 접근하기

  2. Upload a file 옵션을 선택하고 Step 1. 사전안내에서 다운로드 받은 실습 메니페스트 파일(zip)을 업로드 합니다.

    이미지. 파이프라인 업로드 하기 파이프라인 업로드 하기

안내

파이프라인 생성에 대한 자세한 설명은 Kubeflow > Kubeflow Pipeline > Quick Start 문서를 확인해주세요.

Step 2. Experiment(실험) 생성하기

Kubeflow 대시보드의 Experiments (KFP) 탭 혹은 Pipelines 탭의 특정 파이프라인 상세 페이지에서 Experiment(실험) 을 생성합니다.

  1. Kubeflow 대시보드에 접속한 후, Pipelines 탭에서 Experiment를 생성하고자 하는 파이프라인을 선택합니다.

  2. 파이프라인 상세화면에서 [Create experiment] 버튼을 클릭합니다.

    이미지. 파이프라인 상세화면 파이프라인 상세화면

  3. Experiment name(실험 이름)을 입력하고 [Next] 버튼을 클릭합니다.

    이미지. 실험 생성하기 실험 생성하기

Step 3. Run(실행) 생성 및 관리

Experiment 생성 후 자연스럽게 Run 생성 단계로 넘어갑니다.

참고

만일 차후에 Run을 생성하고자 하는 경우, 아래 세 가지의 방법으로 진행할 수 있습니다.

  • Runs 탭에서 [Create run] 버튼을 클릭합니다.
  • Pipelines 탭에서 파이프라인 상세화면에 접근하여 [Create run] 버튼을 클릭합니다.
  • Experiments (KFP) 탭에서 실험 상세화면에 접근하여 [Create run] 버튼을 클릭하여 만들 수 있습니다.
  1. Start a run(실행 생성하기) 화면에서 필요한 정보를 입력하고 [Start] 버튼을 클릭합니다.

    • 실습에서는 Step2.에서 메니페스트 파일(zip)을 업로드 하였으므로 아래 화면에서의 모든 값이 자동 입력됩니다.

    이미지. 실행 생성하기 실행 생성하기

  2. Runs 탭으로 이동하여 생성한 Run을 선택하여 상세화면으로 이동합니다. 상세 화면에서 Run에 대한 상세 정보를 확인할 수 있습니다.

    이미지. 실행 상세화면 실행 상세화면

Step 4. Run(실행) 결과 관리

  1. Kubeflow 대시보드에 접속하여 Runs 탭을 클릭한 후, 목록에서 보관할 실행을 선택하고 [Archive] 버튼을 클릭합니다.

    이미지. 실행 보관하기 실행 보관하기

  2. 보관한 실행은 Runs 탭 목록화면의 Archived 항목에서 확인할 수 있으며, Run을 선택하고 [Restore] 버튼을 클릭하면 원래대로 복구할 수 있습니다.

    이미지. 실행 복구하기 실행 복구하기

Step 5. Run(실행) 삭제하기

실습 완료나 서비스 미사용 시, 아래와 같이 리소스를 삭제하는 것이 좋습니다.

  1. Kubeflow 대시보드에 접속하여 Runs 탭을 클릭한 후, 목록에서 삭제할 실행을 선택하고 [Archive] 버튼을 클릭합니다.

    이미지. 실행 보관하기 실행 삭제하기

  2. 보관한 실행은 Runs 탭 목록화면의 Archived 항목에서 확인할 수 있으며, 실행을 선택하고 [Delete] 버튼을 클릭하면 실행을 삭제할 수 있습니다.

    이미지. 실행 삭제하기 실행 삭제하기

  3. 실행 삭제 시, 파드까지 삭제된걸 확인할 수 있습니다.

    이미지. 실행 삭제 확인하기 실행 삭제 확인하기

Step 6. Experiment(실험) 보관하기

  1. Kubeflow 대시보드에 접속하여 Experiments (KFP) 탭을 클릭한 후, 목록에서 보관할 Experiments를 선택합니다.

  2. Experiments 상세화면에서 우측 상단의 [Archive] 버튼을 클릭합니다.

    이미지. 실험 보관하기 실험 보관하기

  3. 보관한 실험은 Experiments 탭 목록화면의 Archived 항목에서 확인할 수 있으며, Experiments를 선택하고 [Restore] 버튼을 클릭하면 원래대로 복구할 수 있습니다.

    이미지. 실험 복구하기 실험 복구하기

Step 7. 파이프라인 삭제하기

실습 완료나 서비스 미사용 시, 아래와 같이 파이프라인을 삭제하는 것이 좋습니다.

  1. Kubeflow 대시보드에 접속하여 Pipelines 탭을 선택합니다.

  2. 목록화면에서 삭제할 파이프라인을 선택한 후 우측 상단의 [Delete] 버튼을 클릭하여 삭제합니다.

    이미지. 파이프라인 삭제하기 파이프라인 삭제하기

안내

KF Pipelines에 대한 자세한 설명은 Kubeflow 공식 사이트의 Kubeflow Pipelines 문서를 확인해주세요.