주제: 6.5-3 Model Registry (모델 버전 관리와 Champion / Challenger 전략)
분류: rag_agent
타입: concept
난이도: 중급
선수지식: 있음 — ML Pipeline, Experiment Tracking
문제 설정
ML 시스템에서는 시간이 지남에 따라 여러 모델이 생성됩니다.
model_v1
model_v2
model_v3
...
문제는 다음과 같습니다.
- 어떤 모델이 현재 서비스에 사용되는지 관리 필요
- 새 모델이 기존 모델보다 좋은지 검증 필요
- 모델 rollback 가능해야 함
이를 해결하는 시스템이 Model Registry입니다.
1. Model Registry 개념
Model Registry는 모델을 중앙에서 관리하는 시스템입니다.
Training
↓
Experiment Tracking
↓
Model Registry
↓
Deployment
각 모델은 버전으로 관리됩니다.
기호 의미
- version_i : 모델 버전
왜 필요한가
모델 lifecycle을 관리하기 위해 필요합니다.
주의점
버전 관리 없이 모델을 배포하면 운영 문제가 발생합니다.
2. 모델 버전 관리
각 모델은 버전 번호를 가집니다.
| Version | 설명 |
|---|---|
| v1 | baseline 모델 |
| v2 | feature 개선 모델 |
| v3 | 최신 실험 모델 |
모델 성능:
기호 의미
- score(x) : 샘플 평가 점수
왜 필요한가
모델 성능을 기준으로 버전을 비교합니다.
3. Model Lifecycle
모델은 보통 다음 단계로 관리됩니다.
| Stage | 설명 |
|---|---|
| Staging | 테스트 모델 |
| Production | 서비스 모델 |
| Archived | 사용 중지 모델 |
Training
↓
Staging
↓
Production
왜 중요한가
모델 배포 프로세스를 체계적으로 관리합니다.
4. Champion / Challenger 전략
운영 시스템에서는 보통 두 모델을 비교합니다.
- Champion : 현재 서비스 모델
- Challenger : 새 후보 모델
비교 기준:
기호 의미
- Metric : 평가 metric
왜 필요한가
새 모델이 실제로 더 좋은지 검증합니다.
5. Online Evaluation
Challenger 모델은 실제 트래픽에서 테스트할 수 있습니다.
User request
↓
Champion model
↓
Challenger model
평가:
- A/B testing
- shadow deployment
왜 중요한가
실제 사용자 환경에서 모델을 평가할 수 있습니다.
6. Model Rollback
새 모델이 문제가 있을 경우 이전 모델로 복구합니다.
v3 deployed
↓
error detected
↓
rollback to v2
왜 필요한가
서비스 안정성을 보장합니다.
7. MLflow Model Registry
MLflow는 model registry 기능을 제공합니다.
구성:
- model version
- stage management
- artifact storage
예:
mlflow.register_model()
8. SageMaker Model Registry
AWS SageMaker에서도 model registry를 제공합니다.
특징:
- 모델 승인 workflow
- CI/CD integration
- model lineage 관리
9. Model Registry Workflow
Training
↓
Experiment Tracking
↓
Register Model
↓
Staging
↓
Production
코드-수식 연결
| 개념 | 코드 | 설명 |
|---|---|---|
| 모델 등록 | mlflow.register_model() |
registry 등록 |
| 모델 로드 | mlflow.pyfunc.load_model() |
production 모델 로드 |
| 버전 관리 | model_version |
모델 버전 |
자주 하는 오해 5개
- 모델 버전 관리는 코드 버전과 동일하다고 생각한다
- 새 모델은 항상 기존 모델보다 좋다고 생각한다
- model registry 없이도 운영이 가능하다고 생각한다
- rollback은 필요하지 않다고 생각한다
- champion/challenger 전략은 대규모 서비스에서만 필요하다고 생각한다
체크리스트 (스스로 설명 가능해야 하는 질문)
- Model Registry는 어떤 문제를 해결하는가?
- 모델 버전 관리는 왜 필요한가?
- Champion / Challenger 전략은 어떻게 작동하는가?
- Model lifecycle 단계는 무엇인가?
- Model rollback은 어떤 상황에서 필요한가?