본문 바로가기

ML & AI/kubeflow

MiniKF - Tutorial 따라하기_Taxi Cab #4

파이프라인을 kubeflow에서 실행하기 위해서는 컴파일된 파이프라인을 k8s에 배포해야 한다. 이미 이전 단계에서 파이프라인을 컴파일했고, JupyterLab의 전체 메타 및 데이터 볼륨과 워크스페이스 볼륨의 스냅샷을 생성했다. 이제 컴파일된 파이프라인(taxi-cab-pipeline.tar.gz)을 k8s 클러스터에 배포하여 실행해본다.

 

1. Pipeline 다운로드

 

  • JupyterLab UI에서 컴파일된 파이프라인을 로컬 호스트로 다운로드

JupyterLab

2. Pipeline 업로드

 

  • 다운로드한 파이프라인을 kubeflow UI에서 업로드하기 위해 Upload pipeline 버튼 클릭

 

  • 파이프라인 이름 등 부가 정보를 설정하고, 다운로드한 로컬 호스트의 파이프라인을 선택한 후 Create 버튼 클릭

 

파이프라인이 kubeflow에 정상적으로 업로드되면, 아래와 같이 업로드한 파이프라인의 구조를 Graph로 확인할 수 있다. Graph는 Pipeline의 각 실행 Step을 담당하는 Component들의 연결을 표시한다. 각 Componet를 클릭하여 해당 Component의 Input, Output, 구현 함수 등을 확인할 수 있다.

 

 

3. Pipeline Experiment 생성

Experiment란 파이프라인을 실행할 워크스페이스를 말한다. 또한 파이프라인 실행을 위해서는 Run, Recurring Run, Run Trigger 가 필요하다. Run은 파이프라인의 단일 실행 단위이며, Recurring Run은 파이프라인 반복 실행을 위한 단위 이다. Recurring Run 실행을 스케줄러 기반으로 할지 Cron 기반으로 할지의 선택을 Run Trigger를 사용하여 선택할 수 있다. 이렇게 생성된 파이프라인들은 Experiment라는 워크스페이스 안에서 실행된다.

 

아래와 같이 파이프라인 실행을 위한 Experiment를 생성한다.

  • kubeflow UI 메뉴에서 Experiments 메뉴 클릭
  • 화면 상단의 Create experiment 클릭

 

  • Experiment 이름 설정 후 Next 버튼을 클릭하면 Run을 생성할 수 있는 화면이 표시됨

 

4. Pipeline Run 생성

파이프라인 실행 단위인 Run을 생성한다. Pipeline의 Choose 버튼을 클릭하면 기존에 KFP(Kubeflow Pipeline)에 등록한 파이프라인을 선택할 수 있음.(만약 새로운 파이프라인을 등록하고 싶다면 Upload pipeline 버튼을 이용하여 업로드 가능)

  • Pipeline의 Choose 버튼을 클릭하여 실행할 파이프라인 선택
  • Run name 입력

Pipeline 선택 화면

실행할 파이프라인을 선택하고 나면 실제 Run의 실행 파라메터를 설정하거나 수정할 수 있는 화면이 나타난다. 여기서는 파이프라인 실행을 위해 학습 데이터가 저장된 데이터 볼륨(이전 Rok에서 파이프라인 실행을 위해 데이터 볼륨 스냅샷을 생성하였음.)의 스냅샷과 파이프라인 스냅샷을 저장하기 위한 버킷을 설정해야 한다. (아래에서 계속 진행)

 

화면에서는 보이지 않지만 튜토리얼에서 제공하는 예제 파이프라인은 머신러닝 학습을 위한 주요 Feature들이 설정되어 있는 것을 확인할 수 있다.

  • learning-rate : 임의의 값으로 부터 다음 step의 값을 결정하기 위한 기울기 값
  • hidden-layer-size : 
  • steps : 최적값(W)을 찾기 위한 step의 수
  • analyze-slice-column : 
5. Pipeline Snapshot 설정

위에서 확인한 Run Parameters 중에서 파이프라인 실행을 위한 데이터 볼륨 스냅샷과 파이프라인 스냅샷 저장 버킷을 설정한다.

  • rok-url : 데이터 볼륨 스넵샷이 저장된 위치
  • rok-register-url : 파이프라인 스넵샷을 저장할 위치

 

 

먼저 rok-url의 "Choose" 버튼을 선택하여 Rok 에 이전에 생성한 taxi-cab 버킷을 선택한다. 버킷을 선택하면 2개의 스넵샷이 보이며, Data Volume의 스넵샷을 선택하면 된다.

 

아래 그림에서 윗쪽 스넵샷이 Data Volume이고 아랫쪽 스넵샷이 Work Space 스넵샷이다. 여기서는 Data Volume을 선택한다.

 

 

Data Volume 설정을 완료 후 다음과 같이 rok-register-url을 선택하여 파이프라인의 실행 내용을 저장할 스넵샷을 추가로 지정한다.

 

파이프라인 스넵샷을 별도의 버킷에 저장하기 위해 새로운 버킷을 생성한다. ('+' 버튼 선택 후 다음과 같이 진행)

 

파이프라인 스넵샷을 지정할 버킷명을 입력하고, Create를 선택하면 새로운 버킷이 생성된다.

 

 

새로운 버킷이 만들어 지며, 파이프라인 스넵샷 파일을 새로 생성한다.(New file 선택)

 

 

 

 

Data Volume과 파이프라인 스넵샷을 모두 설정한 결과는 아래 이미지와 같다.

 

 

위의 캡처 화면에는 보이지 않지만 Run parameters 창 맨 아래에 "Start" 버튼이 있으니 버튼을 클릭하면 파이프라인이 실행된다.


파이프라인 실행 결과는 다음에 정리해야겠다.