MLOps

[MLOps] 쿠브플로우 파이프라인(Pipeline)이란?

by seokii 2023. 1. 13.
728x90
반응형

GitHub

쿠브플로우 관련 코드 내용은 GitHub에서 관리하고 있습니다.

https://github.com/Seokii/Study-MLOps

 

GitHub - Seokii/Study-MLOps: Study MLOps with Kubeflow

Study MLOps with Kubeflow. Contribute to Seokii/Study-MLOps development by creating an account on GitHub.

github.com

 

Docs

https://www.kubeflow.org/docs/components/pipelines/

 

Kubeflow Pipelines

Documentation for Kubeflow Pipelines.

www.kubeflow.org

쿠브플로우 파이프라인 공식 문서입니다.

공부하기 위해서 참고했습니다.

 

 

Pipeline

쿠브플로우 파이프라인은 컨테이너 기반의 e2d ML 워크플로우를 만들고 배포할 수 있는 플랫폼입니다.

컨테이너 기반으로 구성되어 있기 때문에 확장성이 뛰어나고, 재사용성이 좋습니다.

쿠버네티스의 자원을 관리하기 위해서 백엔드 프레임워크로 argo라는 워크플로우 툴을 사용합니다.

공식 문서에 따르면 파이프라인에 대한 설명은 다음과 같습니다.

파이프라인은 ML 워크플로에 대한 설명으로, 워크플로의 모든 구성 요소와 이러한 구성 요소가 그래프 형태로 결합되는 방식을 포함합니다. 파이프라인을 개발한 후에는 큐브플로우 파이프라인 UI에 업로드하고 공유할 수 있습니다.

파이프라인의 구성은 다음과 같습니다.
- 실험(Experiment), 작업(Job), 런(Run)을 추적 및 관리하기 위한 사용자 인터페이스
- ML 워크플로우 단계별 스케줄링 엔진
- 파이프라인과 그 컴포넌트들을 생성하는 SDK
- SDK와 연동하는 주피터 노트북

 

 

컴포넌트(Component)

컴포넌트는 ML 워크플로우의 한 단계를 수행하는 코드 집합을 뜻합니다.

데이터 전처리, 데이터 변환, 모델링 등과 같은 작업 하나하나를 지칭합니다.

컴포넌트는 이름, 매개 변수, 반환 값 등을 갖는다는 점에서

함수와 유사하다고 생각하시면 될 것 같습니다.

 

컴포넌트는 작성한 파이썬 코드를 YAML파일로 컴파일되는데 쿠브플로우 파이프라인의 컨테이너 컴포넌트 데이터 모델 형식으로 변환됩니다.

Metadata, Inteface, Implenation 등의 필드들로 구성됩니다.

 

 

그래프(Graph)

그래프는 파이프라인 인터페이스에서 파이프라인의 런타임 실행을 나타내는 그림입니다.

 

 

실험(Experiment)

파이프라인을 실행하는 워크스페이스입니다.

파이프라인 실행의 논리적 그룹이라 볼 수 있습니다.

파이프라인 설치 시, default라는 실험이 생성됩니다.

 

 

런, 리커링 런(Run and Recurring Run)

런은 파이프라인의 단일 실행 단위입니다.

파이프라인의 명세를 실행하며, 파이프라인 UI를 통해서 상세정보를 확인할 수 있습니다.

 

리커링 런은 파이프라인을 주기적으로 실행하는 런입니다.

특정 기간을 정의할 수도 있으며, 배치성 작업이나 모니터링 작업에 적합합니다.

이러한 반복적 작업은 런 트리거(Run Trigger)가 담당합니다.

 

 

런 트리거(Run Trigger)

런 트리거는 반복 실행 구성이 새 실행을 생성할 때 시스템에 알려주는 플래그입니다.

런 트리거는 다음과 같이 2가지 종류가 존재합니다.

  • Periodic : 간격 기반의 스케줄링 (예: 매 1시간마다 실행)
  • Cron : cron 형태의 스케줄링

 

 

스텝(Step)

스텝은 파이프라인의 구성 요소 중 하나를 실행하는 것을 의미합니다.

복잡한 구성의 파이프라인에서는 컴포넌트를 반복적으로 실행하기도 하며,

if/else 문에 따라 조건부로 실행되기도 합니다.

 

 

아티팩트(Output Artifact)

아티팩트는 컴포넌트의 출력을 의미합니다.

아티팩트를 통해 파이프라인의 컴포넌트들이 어떻게 작동하는지 이해할 수 있습니다.

 

 

728x90
반응형

댓글