주제: 6.5-1 ML 파이프라인 (데이터 → 학습 → 배포)
문제 설정
ML 시스템은 단순히 모델을 학습하는 것만으로 끝나지 않습니다. 실제 서비스에서는 다음 전체 흐름을 자동화해야 합니다.
Data → Feature → Training → Evaluation → Deploy
이를 ML Pipeline이라고 합니다.
핵심 목적:
- 실험 재현성 확보
- 자동화된 모델 업데이트
- 운영 안정성 확보
1. 전체 ML 파이프라인 구조
Data Collection
↓
Data Validation
↓
Feature Engineering
↓
Model Training
↓
Model Evaluation
↓
Model Deployment
각 단계는 독립적인 pipeline task로 실행됩니다.
2. 데이터 수집 (Data Collection)
ML 시스템은 먼저 데이터를 수집해야 합니다.
데이터셋:
기호 의미
- x_i : 데이터 샘플
- D : 전체 데이터셋
왜 필요한가
모델 학습의 기반이 되는 데이터입니다.
주의점
데이터 품질이 모델 성능을 결정합니다.
3. 데이터 검증 (Data Validation)
수집된 데이터는 품질 검증이 필요합니다.
검증 예:
- missing value 확인
- schema validation
- distribution drift 확인
예:
기호 의미
- P_train : 학습 데이터 분포
- P(x) : 현재 데이터 분포
왜 중요한가
데이터 drift는 모델 성능 저하의 원인이 됩니다.
4. Feature Engineering
모델 학습을 위해 데이터를 feature로 변환합니다.
기호 의미
- x : 원본 데이터
- φ : feature transformation
- f : feature vector
왜 필요한가
모델이 데이터를 더 쉽게 학습할 수 있도록 합니다.
주의점
train/serving feature 일관성이 중요합니다.
5. Model Training
feature를 사용하여 모델을 학습합니다.
목표:
기호 의미
- w : 모델 파라미터
- η : learning rate
- L : loss function
왜 필요한가
데이터 패턴을 학습합니다.
주의점
과적합 방지가 필요합니다.
6. Model Evaluation
학습된 모델을 평가합니다.
metric:
기호 의미
- score(x) : 예측 정확도
왜 필요한가
모델이 실제로 개선되었는지 확인합니다.
주의점
validation/test 데이터 분리 필요
7. Model Deployment
검증된 모델을 서비스에 배포합니다.
Model Registry
↓
Container Image
↓
Serving API
예측:
기호 의미
- f : 모델
- w : 파라미터
왜 중요한가
사용자가 모델을 실제로 사용할 수 있습니다.
8. Pipeline Orchestration
ML 파이프라인은 workflow orchestration 도구로 관리합니다.
| 도구 | 특징 |
|---|---|
| Airflow | DAG 기반 workflow |
| Kubeflow | Kubernetes 기반 ML pipeline |
| Prefect | Python 기반 orchestration |
예
data_task → feature_task → training_task → deploy_task
코드-수식 연결
| 개념 | 코드 | 설명 |
|---|---|---|
| 데이터 로딩 | pandas.read_csv() |
데이터 수집 |
| feature 생성 | sklearn.preprocessing() |
feature engineering |
| 모델 학습 | model.fit() |
training |
| 모델 배포 | fastapi() |
serving API |
자주 하는 오해 5개
- ML 시스템은 모델 학습만 하면 된다고 생각한다
- 데이터 검증은 필요 없다고 생각한다
- feature engineering은 training 단계만 필요하다고 생각한다
- evaluation 없이 모델을 배포할 수 있다고 생각한다
- pipeline 자동화는 선택 사항이라고 생각한다
체크리스트 (스스로 설명 가능해야 하는 질문)
- ML pipeline은 어떤 단계로 구성되는가?
- 데이터 validation이 중요한 이유는 무엇인가?
- feature engineering은 어떤 역할을 하는가?
- model evaluation 단계의 목적은 무엇인가?
- Airflow/Kubeflow/Prefect는 어떤 역할을 하는가?