Home
⚙️

정보 : MLOps의 핵심 기능들(Components)

위 표는 구글이 2021년 발표한 MLOps의 핵심 Component들이다. 각 Component의 역할은 다음과 같다.

Dataset and Feature Repository

ML Data Asset을 통합적으로 일컫는 개념이며 전처리와 Feature Engineering을 지원하는 컴포넌트이다. Data Asset은 Raw Data가 될 수도 있고 Feature가 될 수도 있다. 아래의 기능을 제공한다.
데이터에 대한 공유, 검색, 재사용, 버전관리
정형, 비정형 데이터 처리
스트리밍, Online Inference에 대한 Real-Time 처리

Experimentation

EDA, 프로토타입 모델링, 학습코드 작성을 지원하는 컴포넌트이다. 아래의 기능을 제공한다.
Notebook 환경 지원
Git 같은 툴로 버전 관리
Data, Hyper-Parameters, Metric을 기록해 실험을 추적, 비교, 재현
Data와 Model에 대한 분석과 시각화

Data Processing

모델 개발, 학습, 서빙 단계에서 대량의 데이터를 변환하고 준비시키는 컴포넌트이다. 아래의 기능을 제공한다.
광범위한 데이터 흐름 연결
다양한 구조와 형태의 데이터를 Encoder - Decoder 형태로 처리
정형, 비정형 데이터에 대한 다양한 처리
Batch, Stream 데이터 처리를 통해 학습과 서빙에 데이터 공급

Model Training

모델 학습을 효율적으로 실행시키는 컴포넌트이다. 아래의 핵심 기능을 제공한다.
일반적인 ML Framework, Custom Runtime 환경을 지원
Multi GPU / Worker를 이용한 대규모의 분산 학습을 지원
HyperParameter Tuning, 최적화를 지원
(이상적) AutoML도 지원

Model Evaluation

실험, 서빙단계에서 모델의 효과를 확인하는 컴포넌트이다. 아래의 핵심 기능을 제공한다.
Evaluation Dataset에 대한 Scoring
여러 Continous Training 에 따른 성능 추적
모델 Metric 시각화 및 비교

Model Serving

Production 환경에 모델을 배포하고 서빙하는 컴포넌트이다. 아래의 핵심 기능을 제공한다.
Online 환경의 Near-Real-Time 서빙, Offline 환경의 High-Throughput Batch 서빙
상용 ML Serving Framework와의 통합
복잡한 형태의 Inference 연산 지원
변동이 큰 Traffic를 처리하기 위한 Auto-Scaling
Request와 Response에 대한 Logging

Online Experimentation

새롭게 훈련된 모델이 Production에서 어느정도의 성능을 보일지 미리 테스트 해보는 컴포넌트이다. 배포할 모델을 결정하기 위해 Model Registry와 통합되어 있어야 하며, 아래의 기능을 제공한다.
Canary, Shadow 배포, A/B Test, Multi-Armed Bandit Test

Model Monitoring

모델이 Production에서 제대로 작동하는지 모니터링 하는 컴포넌트이다. 아래 기능을 제공한다.
Latency, Resource Utilization과 같은 효율 Metric을 측정
Data Skews(Ex: data, concept drift)탐지
Model Evaluation과 통합되어 지속적으로 배포된 모델의 성능 모니터링

ML Pipeline

복잡한 ML 훈련과 추론 작업을 구성,제어,자동화하는 컴포넌트이다. 아래 기능을 제공한다.
여러 트리거에 따른 Pipeline 실행
Metadata Tracking 컴포넌트와 함께 Pipeline의 입력값과 결과물을 기록할 수 있어야 한다.
ML Task를 위한 Built-In Component와 Custom Component를 실행시킬 수 있어야 한다.

Model Registry

중앙 Repository에서 ML 모델의 생명 주기를 관리하는 컴포넌트이다. 아래 기능을 제공한다.
학습, 배포된 모델을 등록, 추적, 버저닝할 수 있어야한다.
배포를 위해 Runtime Depedency들과 Metadata를 저장하고 있어야 한다.

ML Metadata and Artifact Tracking

MLOps Lifecycle에서 각 단계마다 다양한 종류의 산출물(Artifact)가 생성되는데, 이것들을 정보(Metadata)와 함께 관리하는 컴포넌트이다. 아래 핵심 기능을 제공한다.
ML Artifact의 히스토리를 추적할 수 있어야 한다.
실험 Parameter Config를 추적하고 공유할 수 있어야 한다.
다른 MLOps 기능과의 통합이 가능해야한다.
MLOps System은 위의 Components를 유기적으로 동작시킴으로서 구현할 수 있다. Kubeflow같은 대규모 오케스트레이션 시스템을 이용해 통째로 구현하는 방법도 있지만, (경험상)팀의 니즈와 MLOps 이해도에 맞게 필요한 부분부터 단계별로 구축해나가는 것이 도입과 전환이 쉽다.