MLOps(Machine Learning Operations)는 ML 모델의 개발, 배포, 모니터링, 재학습을 자동화하는 엔지니어링 방법론이다. DevOps와 ML 엔지니어링을 결합해 모델의 신뢰성 있는 프로덕션 운영을 목표로 한다.
MLOps 성숙도 레벨
| 레벨 | 특징 | 자동화 수준 |
|---|
| 레벨 0 | 수동 ML | 모든 것 수동 |
| 레벨 1 | ML 파이프라인 자동화 | 학습 자동화 |
| 레벨 2 | CI/CD 파이프라인 | 전체 자동화 |
ML 파이프라인
데이터 수집 → 특징 공학 → 모델 학습 → 평가
↑ ↓
←←← 모니터링 ←←← 서빙 ←←← 배포 ←←←←
Kubeflow Pipelines 예시
python
from kfp import dsl
from kfp.components import func_to_container_op
@func_to_container_op
def preprocess(data_path: str) -> str:
import pandas as pd
df = pd.read_csv(data_path)
# 전처리 로직
processed_path = "/tmp/processed.csv"
df.to_csv(processed_path, index=False)
return processed_path
@func_to_container_op
def train(data_path: str, model_path: str):
from sklearn.ensemble import RandomForestClassifier
import joblib, pandas as pd
df = pd.read_csv(data_path)
model = RandomForestClassifier()
model.fit(df.drop('label', axis=1), df['label'])
joblib.dump(model, model_path)
@dsl.pipeline(name='ML Pipeline')
def ml_pipeline():
prep = preprocess(data_path="gs://bucket/data.csv")
train(data_path=prep.output, model_path="gs://bucket/model.pkl")
주요 도구 스택
관련 개념