kubeflow - metadata

우야·2021년 6월 15일
0

Metadta란?

kubeflow에서 머신러닝 워크플로우의 메타데이터를 관리 및 추적

  • 파이프라인 각 단계별로 아웃풋 결과를 다음 태스크의 인풋으로 전달하기 위한 중간 저장소 역할
  • 파이프라인의 진행 상태등을 저장할 메타 저장소로 사용

Concept

  • Artifact : 워크플로우(파이프라인) 수행에서 생성되거나 사용되는 메타 데이터(Dataset, Metrics, Model에 대한 정보)
  • Execution : Input Artifact 정보를 받아서 Trainning 또는 Server을 실행하여 Output Artifact 정보가 생겼다는 메타 데이터
  • Run : 하나의 워크플로우(파이프라인)단위로 생성/실행에 대한 메타데이터 정보
  • Workspace : 프로젝트 개념으로 하나의 Workspace에는 여러개의 워크플로우(파이프라인)를 만들수도 있음

큰 구조는...
workspace -> run -> (input artifact -> execution -> output artifact)

Metadata Flow 생성 / 보는 방법

  • Metadata 생성 방법
    1. Jupyter Nodebook을 사용하여 Metadata를 직접 생성
    2. Kubeflow pipline을 통해서 Metadat 생성

아래는 JupyterNodebook을 통해서 직접 생성하는 것을 보여준다.


이 화면은 Kubeflow를 실행하고, Artifact를 선택한화면으로, 아래 과정을 통해서 생성된 Metadata들을 보여 주는 Metadta List화면이다.


이 화면은 Kubeflow에서 Artifacts를 눌러 JupyterNotebook을 통해 성성한 metadata를 선택한것이고, 상단에 있는 Lineage Explorer를 통해서 어떤 metadata들로 구성되어 있는것을 볼수 있다.


위의 캡처에서 오른쪽 부분만 확대해서 보면 위와 같다.

  • 구성은 data_set -> execution -> Model or Metrics로 구성되어 있다.

이 구성을 만들기위한 노트북의 구성은...

  1. 설치 과정
  1. Workspace, run 생성
  • 이것은 Metadta의 전체 Flow를 만들기 위한 Workspace이고, 전체 Flow를 실행하는 Run을 먼저 구성하는것이다.
  • Artifacts List에서 Admin이라는 Workspace를 확인 할 수 있다.
  1. Execution 생성
  • 이것은 위에서 가운데 파란색으로 보이는 Excution을 생성하는것으로, Workspace의 Run 구성안에서 실제 실행되는 단일 Task로 생각하면된다.
  1. Data_Set Metadata 생성
  • 이것은 위의 그림의 왼쪽 mytable-dump라는 Data_Set에 대한 Metadta를 정의한 것이고, 이것은 Excution에 필요한 Input Log라는 의미로 Metadta를 생성한다.
  1. Model Metadta 생성
  • 이것은 위의 그림의 오른쪽 MNIST 부분으로 Execution(실제 모델 Tranning)의 결과로 모델이 생성되는데, 이때, 생성된 모델 대한 데이터를 Output Log로 기록한다.
  1. Model Metrics Metadata 생성
  • 이것은 위으 그림의 오른쪽 MNIST-evaluation 부분으로 Execution시 생성되는 결과로 모델 Metrics정보가 나오는데 이것을 Output Log로 기록한다.

  1. 그리고 마지막 설명을 위해서 위의 그림에서 MNIST(모델)를 클릭하면, 아래와 같은 화면으로 변경된다.
  • 이것은 Input Artifact로 Data_Set과 Execution(Traninng)을 통해 생성된 Target으로 Model이 나온것을 확인할 수 있으며,
  • Model을 Execution하여 서비스하는 Serving의 구성을 볼 수 있다.
  • 이 Serving model을 만드는 Jupyter Nodebook을 보면...
  • 이것은 위 그림에서 제일 오른쪽 Execution에 해당되는것으로 Serving Model은 Input으로 MNIST라는 모델로 실행되고 있는 Serving Service에 대한 Metadta라는 의미 이다.

참고로...

  • 여기서 Serving model을 선택해서 자세한 내용을 보면
  • 마지막 Inputs부분을 보면, Serving model은 MNIST라는 모델을 Input으로 받고, 저장소는 gcs://my-bucket/mnist에 있는 것을 확인 할 수 있다.

Metadata에 기록 되는 데이터 보는 방법

  1. Data_Set

  2. Execution(Tranning)

    • input : data_set
    • output : model, metrics
  3. Model

  4. Metrics

  5. Serving

profile
Fullstack developer

0개의 댓글