본문 바로가기
새로운, 신나게/MLFlow, 공부하는 중

[MLflow 완전정복 #3] MLflow란 무엇인가? — 4가지 핵심 컴포넌트

by DoubleS2 2026. 7. 7.

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 코드를 패키징·공유하는 방식을 표준화
  • 정의된 환경과 의존성으로 실험을 그대로 재현 가능
  • 환경 정의 — Condaconda.yaml, Pythonrequirements.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」 강의의 영문 자료를 수강 후, 개인 학습 목적으로 이해한 방향에 따라 한국어로 재구성한 것입니다. 잘못 이해한 부분이 있다면 댓글로 알려주세요. 🙏