MLflow 완전정복 세 번째 편. 드디어 주인공 등장입니다.
지난 편에서 본 재현성·협업·수작업·확장성 네 가지 문제를, MLflow가 어떤 구조로 풀어내는지 봅니다.
📎 출처: 이 글은 인프런 강의 「실리콘밸리 엔지니어와 함께하는 MLflow」의 영문 강의 자료를 수강 후, 제가 공부하며 이해한 방향으로 한국어로 재구성한 것입니다.
🚀 1. MLflow란?
MLflow는 머신러닝 라이프사이클 전체를 관리하기 위해 설계된 오픈소스 플랫폼입니다. 모델의 개발 → 배포 → 모니터링 과정을 매끄럽게 이어줘서, 데이터 사이언티스트·ML 엔지니어·DevOps 팀이 효율적으로 협업하게 만들어 줍니다.
💡 한 줄로 — "ML 실험·모델의 Git + 배포 파이프라인"에 가깝다고 이해했어요. 코드에 Git이 있다면, 실험 기록과 모델 버전에는 MLflow가 있는 셈.
🧩 2. 4가지 핵심 컴포넌트
MLflow는 네 개의 컴포넌트로 구성됩니다. 하나씩 뜯어보면 —
① MLflow Tracking — 실험 기록
- 실험·파라미터·메트릭·아티팩트를 로깅하고 추적
- 웹 UI로 여러 실험 결과를 시각화·비교
- Python, R, Java, REST API 등 다양한 언어 지원
- 기록 대상 — Parameters(learning rate, batch size 같은 하이퍼파라미터), Metrics(accuracy, loss 등), Artifacts(모델 파일, 데이터 파일, 플롯)
import mlflow
mlflow.set_experiment("my_experiment")
with mlflow.start_run():
mlflow.log_param("learning_rate", 0.01) # 파라미터 기록
mlflow.log_metric("accuracy", 0.95) # 메트릭 기록
mlflow.log_artifact("model.pkl") # 파일(아티팩트) 기록
💡 지난 편의 "재현성 부족"을 정면으로 해결하는 컴포넌트. 코드 세 줄이면 "그때 그 실험"의 조건이 전부 자동으로 남습니다.
② MLflow Projects — 코드 패키징
- ML 코드를 패키징·공유하는 방식을 표준화
- 정의된 환경과 의존성으로 실험을 그대로 재현 가능
- 환경 정의 — Conda는
conda.yaml, Python은requirements.txt+ python 환경으로
③ MLflow Models — 모델 관리 & 서빙
- 머신러닝 모델을 관리하고 서빙
- Scikit-learn, TensorFlow, PyTorch, XGBoost 등 다양한 포맷 지원
- 배포처 — 실시간 서빙용 REST API, 배치 추론 시스템, 클라우드 서비스(AWS SageMaker, Azure ML 등)
# 모델 로깅 예시
model_info = mlflow.sklearn.log_model(
sk_model=lr,
artifact_path="iris_model",
signature=signature,
input_example=X_train,
registered_model_name="tracking-quickstart",
)
④ MLflow Registry — 모델 중앙 저장소
- 모델을 관리·통제하는 중앙화된 저장소(repository)
- Versioning — 모델 버전 추적
- Stages — 모델을 단계 간 전환 (예: "Staging" → "Production")
- Annotations — 메타데이터, 설명, 태그 부착
- Approval Workflow — 모델 승격(promotion)에 대한 협업·승인 절차
💡 넷을 지난 편 문제에 대응시키면 — Tracking → 재현성, Projects → 재현성+협업, Models → 수작업 배포 자동화, Registry → 협업+거버넌스. 문제 지도와 해법 지도가 딱 겹칩니다.
🏗️ 3. MLflow 아키텍처
MLflow를 실제로 띄우면 세 가지 저장·서빙 요소가 돌아갑니다.
| 구성 요소 | 역할 | 선택지 |
|---|---|---|
| Backend Store | 메타데이터, 실험 상세, 로그 저장 | SQLite(기본), MySQL, PostgreSQL 등 |
| Artifact Store | 모델·데이터셋·로그 같은 아티팩트 저장 | 로컬 파일시스템, AWS S3, Azure Blob, GCS |
| Tracking Server | MLflow와 상호작용하는 창구 | REST API + 웹 UI 제공 |
💡 "숫자는 Backend Store, 파일은 Artifact Store, 접속 창구는 Tracking Server"로 외웠습니다. 로컬 실습은 기본값(SQLite+로컬 폴더)으로 충분하고, 팀 운영으로 갈수록 DB와 S3로 갈아 끼우는 구조예요.
🔄 4. MLflow 워크플로우
실제 사용 흐름은 다섯 스텝입니다.
- ① Tracking Server 셋업 — 로컬 또는 클라우드에 서버 준비
- ② 실험 로깅 — ML 스크립트에 MLflow SDK를 넣어 파라미터·메트릭·아티팩트 기록
- ③ 비교 & 분석 — 웹 UI에서 실험 결과 비교
- ④ 모델 패키징 — MLflow Projects로 재현 가능한 코드 공유
- ⑤ 모델 배포 — Model Registry 또는 REST API로 프로덕션 배포
🎁 5. 장점과 지원 라이브러리
- 재현성(Reproducibility) — 기록된 파라미터와 코드로 실험을 그대로 재현
- 확장성(Scalability) — 큰 팀과 프로덕션 환경으로 확장 가능
- 유연성(Flexibility) — 어떤 ML 라이브러리·언어와도 동작
- 협업(Collaboration) — 데이터 사이언티스트와 DevOps 사이의 협업 촉진
- 배포(Deployment) — 프로덕션 배포를 단순화
지원 라이브러리도 사실상 주류 전부입니다 — Scikit-learn, TensorFlow, PyTorch, XGBoost, LightGBM, Keras, ONNX 등.
✍️ 마무리 & 다음 단계
정리하면 MLflow는 Tracking(기록) · Projects(패키징) · Models(서빙) · Registry(버전 관리) 네 조각으로 ML 라이프사이클 전체를 덮는 오픈소스 플랫폼입니다. 개념은 여기까지 — 다음부터는 직접 설치하고 굴려볼 차례입니다.
👉 다음 편 → [#4] MLflow 설치하고 첫 실험 기록해보기 (강의 진도에 따라 제목은 바뀔 수 있어요)
📎 출처: 이 글은 인프런 「실리콘밸리 엔지니어와 함께하는 MLflow」 강의의 영문 자료를 수강 후, 개인 학습 목적으로 이해한 방향에 따라 한국어로 재구성한 것입니다. 잘못 이해한 부분이 있다면 댓글로 알려주세요. 🙏
'새로운, 신나게 > MLFlow, 공부하는 중' 카테고리의 다른 글
| [MLflow 완전정복 #2] 기존의 모델 개발 사이클, 뭐가 문제였을까? (0) | 2026.07.07 |
|---|---|
| [MLflow 완전정복 #4] Docker로 MLflow 설치하고 첫 실험 기록해보기 (0) | 2026.07.07 |
| [MLflow 완전정복 #1] MLOps란 무엇인가? — 모델은 만들었는데, 운영은 누가 하지? (0) | 2026.07.06 |