이 문서는 머신러닝 섹션의 일부입니다.
모델 레지스트리란?
Model Registry(모델 레지스트리) 는 학습된 ML 모델의 버전을 관리 하고, 프로덕션 승격(Promotion)을 제어하는 중앙 저장소입니다. Databricks에서는 Unity Catalog 와 통합되어, 모델에도 테이블과 동일한 거버넌스(권한, 리니지, 감사)가 적용됩니다.
1. 왜 모델 레지스트리가 필요한가
모델 관리 없이 운영할 때의 문제
실제 ML 운영 현장에서 레지스트리 없이 모델을 관리하면 다음과 같은 문제가 반복적으로 발생합니다. 버전 혼란 (Version Chaos)- 파일 시스템에
model_v2_final_FINAL.pkl같은 파일이 쌓입니다. - 어떤 파일이 실제 프로덕션에 배포된 것인지 확인할 방법이 없습니다.
- 팀원이 실수로 구버전 모델을 배포하는 사고가 발생합니다.
- 6개월 후 “이 모델을 어떻게 학습했지?”라는 질문에 답하기 어렵습니다.
- 어떤 데이터셋, 어떤 하이퍼파라미터로 학습했는지 추적이 끊깁니다.
- 동일한 코드로 재학습해도 결과가 달라지는 환경 의존성 문제가 생깁니다.
- 금융·의료 등 규제 산업에서는 “누가 이 모델을 승인했는가”를 입증해야 합니다.
- 모델 변경 이력이 없으면 컴플라이언스(Compliance) 감사를 통과할 수 없습니다.
- 인시던트(Incident) 발생 시 원인 추적이 불가능합니다.
| 문제 | Registry의 해결 |
|---|---|
| 어떤 버전이 프로덕션인지 모름 | Alias (champion, challenger)로 명확히 표시 |
| 이전 버전으로 롤백이 어려움 | 모든 버전이 보존 됨. Alias만 변경하면 롤백 완료 |
| 모델의 출처를 모름 | Lineage(리니지) 추적 — 어떤 데이터, 어떤 실험에서 생성되었는지 |
| 권한 관리가 어려움 | Unity Catalog의 GRANT/REVOKE 로 접근 제어 |
| 모델 변경 이력 추적 | 모든 변경이 Audit Log(감사 로그) 에 기록 |
2. Unity Catalog 기반 모델 레지스트리
Workspace 레지스트리에서 UC 레지스트리로의 전환
Databricks는 원래 Workspace Model Registry 를 제공했습니다. 이는 Workspace 범위 내에서만 동작하는 격리된 레지스트리였습니다. 2023년부터 Unity Catalog(UC) 기반 Model Registry 가 권장 방식이 되었으며, 이유는 다음과 같습니다.| 비교 항목 | Workspace 레지스트리 | UC 레지스트리 |
|---|---|---|
| 범위 | 단일 Workspace | Account 전체 (멀티 Workspace) |
| 네임스페이스 | model_name | catalog.schema.model_name |
| 권한 관리 | Workspace 수준 ACL | UC GRANT/REVOKE (세밀한 제어) |
| 리니지 추적 | 제한적 | UC Lineage와 완전 통합 |
| Delta Sharing | 미지원 | 외부 조직과 모델 공유 가능 |
| 감사 로그 | Workspace 감사 | Account-level 통합 감사 |
3-Level Namespace (3단계 네임스페이스)
UC의 모든 오브젝트는catalog.schema.object 형태의 3단계 네임스페이스를 사용합니다. 모델도 동일합니다.
ml_catalog.fraud_detection.fraud_model 이 됩니다. 이 이름 하나로 버전 관리, 권한 부여, 리니지 추적이 모두 연결됩니다.
3. 모델 등록 방법
방법 1: 학습 중 직접 등록 (MLflow API)
방법 2: 기존 Run에서 사후 등록
방법 3: UI에서 등록
- Databricks 좌측 메뉴 → Experiments 진입
- 실험 Run 클릭 → Artifacts 탭 선택
model폴더 클릭 → Register Model 버튼 클릭- 모델 이름을
catalog.schema.model_name형식으로 입력 - Register 클릭 → 새 버전 자동 생성