MLflow 와 무엇이 다른가
MLflow 만 쓸 때 비는 곳과, Geo-MLOps 가 MLflow 위에 더한 층
Geo-MLOps 는 MLflow 를 대신하지 않습니다. MLflow 를 그대로 안에 두고, 그 위에 운영에 필요한 층을 더한 것입니다. 이 페이지는 두 구성을 나란히 놓고 무엇이 더해졌는지 봅니다.
왜 MLflow 인가
실험 기록과 모델 관리를 손으로 하면 금방 한계가 옵니다.
- 재현이 안 됩니다. 개인 컴퓨터마다 환경이 흩어져 있어 어떤 데이터와 파라미터로 돌렸는지 따라가기 어렵습니다.
- 수작업 관리. 엑셀이나 파일 이름으로 버전과 성능을 비교하게 됩니다.
- 배포와 감시가 끊겨 있습니다. 학습·배포를 손으로 하고, 배포 뒤 성능이 떨어져도 알아챌 방법이 없습니다.
그래서 실험 추적부터 감시까지 전 과정을 한 가지 방식으로 맞추는 일이 필요하고, 그 바탕으로 MLflow 를 골랐습니다.
| 이유 | 내용 |
|---|---|
| 사실상의 업계 표준 | 실험 추적과 모델 레지스트리를 함께 주는 오픈소스입니다 |
| 붙이기 쉬움 | 표준 Python API 라서 학습 코드에 몇 줄만 더하면 됩니다 |
| 프레임워크를 가리지 않음 | PyTorch, YOLO, scikit-learn 등을 같은 방식으로 기록합니다 |
| 검증된 저장소 | PostgreSQL, S3 같은 널리 쓰는 저장소 위에서 동작합니다 |
MLflow 만 쓸 때의 구성
표준 MLflow 구성에서는 클라이언트가 트래킹 서버에 실험을 기록하고 모델을 등록합니다.
- 사용자: ML 개발자가 Python 클라이언트(
log_params,log_metrics,log_artifact,register_model)나 CLI, 웹 브라우저로 씁니다. - 서비스: MLflow Tracking Server 하나가 실험 추적, 모델 레지스트리, 아티팩트 서비스, 웹 화면을 맡습니다.
- 스토리지: 실험·Run·모델 버전 같은 메타데이터는 PostgreSQL 에, 모델 가중치·이미지·로그 같은 큰 파일은 S3 호환 저장소에 둡니다.
기본 구성에는 인증도, 팀 사이의 격리도 없습니다. 주소를 아는 사람은 누구나 모든 실험과 모델을 보고 고칠 수 있습니다.
MLflow 만 쓸 때 비는 곳
| 빈 곳 | 무엇이 문제인가 |
|---|---|
| 보안 | 인증이 없어 모델과 실험 데이터가 그대로 드러납니다 |
| 거버넌스 | 모델을 운영에 올릴 때 거치는 승인 절차가 없고, 누가 무엇을 했는지 남는 감사 기록도 없습니다 |
| 운영 기능 | 배포, 서빙, 모니터링(드리프트 감지), 재학습(CT)을 MLflow 가 해 주지 않습니다 |
Geo-MLOps 가 더한 층
Geo-MLOps 는 MLflow 코어는 그대로 두고, 앞에 플랫폼 층을 세워 멀티테넌시·승인·배포·관측 기능을 더했습니다.
그림에서 빨간 점선 안이 새로 더한 부분입니다. MLflow Tracking Server 는 플랫폼 게이트를 통해서만 닿을 수 있고, 밖에 직접 드러나지 않습니다.
| 더한 것 | 하는 일 | 자세히 |
|---|---|---|
| MLflow 게이트 | 테넌트 토큰으로 사용자를 확인하고, 테넌트마다 MLflow 워크스페이스를 나눕니다. 개발자는 표준 MLflow 코드를 그대로 씁니다 | 노트북에서 MLflow 쓰기 |
| 역할 기반 접근 | 다섯 가지 역할(VIEWER, DEVELOPER, OPERATOR, APPROVER, ADMIN)과 승인 워크플로, 감사 로그 | 역할과 권한 |
| 운영 자동화 | 엣지 배포와 롤백, 모니터링, 경보, 드리프트 감시와 재학습 | Geo-MLOps 가 하는 일 |
| 통합 화면 | 실험부터 배포, 감시까지 한 화면에서 | 사용 가이드 |
한눈에 비교
| 항목 | MLflow 만 | Geo-MLOps |
|---|---|---|
| 실험 기록·모델 레지스트리 | ✅ | ✅ (안에 든 MLflow 그대로) |
| 로그인과 인증 | 없음 | 로그인(JWT), MLflow 는 테넌트 토큰 |
| 팀(테넌트) 격리 | 없음 | 테넌트마다 워크스페이스와 Kubernetes 네임스페이스 |
| 권한 | 없음 | 역할 다섯 가지, 권한 열한 가지 |
| Production 승격 | 누구나 바로 | 언제나 승인 요청. 안전이 중요한 모델은 두 번 승인 |
| 감사 기록 | 없음 | 누가 무엇을 했는지 남고 CSV 로 내보내기 |
| 학습 실행 | 직접 | 마법사로 제출하면 클러스터의 Kubernetes Job 으로 실행 |
| 서빙·엣지 배포 | 직접 | API 서비스, 현장 장비 배포와 롤백 |
| 감시 | 없음 | 모니터링, 경보, 드리프트(PSI·KS) |