MLOps 파이프라인은 AI/ML 모델을 만들고 유지 관리하는 프로세스를 자동화하는 일련의 단계이다. 즉, 데이터 과학자는 실험을 구축하는 동안 여러 개의 노트북을 만들고 자연스럽게 다음 단계는 실험에서 생산 준비가 된 코드로 전환하는 것이다. 모델을 생성할 때마다 노트북을 수동으로 실행한다면 시간이 많이 걸리고 오류가 발생하기 쉬우며 확장할 수 없다.
Kubeflow에서는 KTP ( Kubeflow Pipelines ), MLFlow, Seldon Core를 사용하여 고급 MLOps 파이프라인을 구축할 수 있다. MLOps 프로세스는 기본적으로 실험과 실현이라는 두 가지 주요 단계로 나누어진다. 실험 중에 데이터 과학자는 많은 아이디어를 생성하고 검증하는 데 집중한다.반면 두 번째 실현 단계에서는 가장 유망한 아이디어의 하위 집합을 선택하여 프로덕션에 전달한다.
KFP(Kubeflow Pipelines)는 컨테이너를 사용하여 이식 가능하고 확장 가능한 기계 학습(ML) 워크플로를 구축하고 배포하기 위한 플랫폼이다. KFP는 Kubeflow의 핵심 구성 요소 또는 독립 실행형 설치로 사용할 수 있다.
Kubeflow Pipelines의 주요 목표는 다음을 지원하는 것이다.
ML 워크플로의 e2e 오케스트레이션
재사용 가능한 구성 요소 및 파이프라인
파이프라인 정의, 파이프라인 실행, 실험 및 ML 아티팩트의 손쉬운 관리, 추적 및 시각화
캐싱을 통해 중복 실행을 제거하여 컴퓨팅 리소스를 효율적으로 사용
플랫폼 중립적인 IR YAML 파이프라인 정의를 통한 크로스 플랫폼 파이프라인 이식성
파이프라인은 손쉬운 작성을 위해 Python을 사용하고 이식성을 위해 YAML로 컴파일되며 확장성을 위해 Kubernetes에서 실행된다. ( 현재 v2 는 아직 beta임 )
파이프라인을 개발하고 나면,Kubeflow Pipelines UI나Kubeflow Pipelines SDK를 이용해서 업로드할 수 있다.
MLOps 도구
KFP(Kubeflow Pipelines) : KFP는 작업과 해당 구성, 환경 변수 및 암호를 지정할 수 있는 워크플로 엔진. 또한 KFP는 모든 작업이 적절한 실행 순서로 올바르게 예약되도록 한다.
Minio : 데이터를 안전하게 보호하는 개체 스토리지 시스템. Minio는 AWS S3 호환 API를 제공하며 클라우드 스토리지용 게이트웨이 또는 독립형 객체 스토리지 시스템으로 작동할 수 있다.
MLFLow : 모델 교육 결과를 추적하고 비교하며 배포된 모델을 추적하는 데 도움이 되는 실험 및 모델 리포지토리다. 모델 및 실험에 대한 모든 메타데이터를 한 곳에서 추적한다.
Seldon Core : Kubernetes에 기계 학습 모델을 마이크로 서비스로 대규모로 배포하는 플랫폼이다. REST 및 gRPC 프로토콜, 수동 및 자동 크기 조정을 지원한다.
Katib : 하이퍼 파라미터(Hyperparameter) 튜닝 및 신경망 아키텍처 탐색(Neural Architecture Search)을 위한 쿠버네티스 기반의 시스템이다.
KServe : ML 모델을 실제로 서비스하기 위해 API를 쉽게 만들 수 있도록 도와주는 도구이다.