MLOps·머신러닝 운영/MLflow를 활용한 머신러닝 실험 관리

MLflow CLI — 명령어 정리

Data Jun 2025. 10. 25. 11:01

이번 포스트에서는 MLflow CLI의 주요 명령어를
1️⃣ 실험 관리 → 2️⃣ 실행 관리 → 3️⃣ 모델 관리 → 4️⃣ 배포 → 5️⃣ 서빙 → 6️⃣ 서버 관리 → 7️⃣ 프로젝트 실행 → 8️⃣ 워크플로우 자동화
순서로 정리했습니다.

아래 코드는 실제 터미널에서 실행 가능한 명령어입니다 💡

 

1. 코드

##############################################
# 🧩 MLflow CLI 명령어 전체 요약
# CLI(Command-Line Interface)로 MLflow를 제어하는 실습 스크립트
# 터미널에서 실행 가능 — MLflow를 코드 없이 조작할 수 있다.
##############################################

# ============================================
# 1️⃣ 실험 관리 (Tracking Experiments)
# ============================================

# 새로운 실험 생성
mlflow experiments create --experiment-name "Iris_Experiment"

# 전체 실험 목록 조회
mlflow experiments list

# 특정 실험 상세 조회
mlflow experiments describe --experiment-id 1

# 실험 이름 변경
mlflow experiments rename --experiment-id 1 --new-name "Updated_Experiment"

# 실험 삭제 (Soft Delete)
mlflow experiments delete --experiment-id 1

# 삭제된 실험 복원
mlflow experiments restore --experiment-id 1


# ============================================
# 2️⃣ 실행 관리 (Logging & Querying Runs)
# ============================================

# 특정 실험의 실행(run) 목록 조회
mlflow runs list --experiment-id 1

# 특정 실행(run) 상세 조회
mlflow runs describe --run-id <RUN_ID>

# 실행 결과에서 아티팩트 다운로드
mlflow artifacts download --run-id <RUN_ID> --path model.pkl --dst ./downloaded_model

# 실행 삭제
mlflow runs delete --run-ids <RUN_ID>

# 실행 복원
mlflow runs restore --run-id <RUN_ID>


# ============================================
# 3️⃣ 모델 관리 (Managing Models)
# ============================================

# 특정 실행의 모델 저장 (로컬 경로)
mlflow models save -m runs:/<RUN_ID>/model --path ./saved_model

# 모델 등록 (Model Registry에 등록)
mlflow models register -m runs:/<RUN_ID>/model -n "Iris_Model"

# 등록된 모델 목록 조회
mlflow models list -n "Iris_Model"

# 특정 모델 버전 정보 확인
mlflow models describe -m models:/Iris_Model/1

# 모델 삭제
mlflow models delete -m models:/Iris_Model/1


# ============================================
# 4️⃣ 모델 배포 (Deploying Models)
# ============================================

# 로컬 환경에 모델 배포 (Deployment 생성)
mlflow deployments create --target local --name iris_model --model-uri models:/Iris_Model/1

# 배포 목록 조회
mlflow deployments list

# 배포 삭제
mlflow deployments delete --name iris_model


# ============================================
# 5️⃣ 모델 서빙 (Serving Models)
# ============================================

# 모델 REST API 서버 실행 (기본 포트: 5000)
mlflow models serve -m models:/Iris_Model/1 -p 5000

# 모델 예측 요청 (REST API 호출)
curl -X POST -H "Content-Type: application/json" \
  -d '{"columns":["sepal length","sepal width","petal length","petal width"],"data":[[5.1,3.5,1.4,0.2]]}' \
  http://127.0.0.1:5000/invocations


# ============================================
# 6️⃣ 서버 관리 (Handling the MLflow Server)
# ============================================

# MLflow Tracking Server 실행 (로컬 SQLite 백엔드)
mlflow server \
  --backend-store-uri sqlite:///mlflow.db \
  --default-artifact-root ./mlruns \
  --host 0.0.0.0 \
  --port 5000

# 브라우저 접속 (MLflow UI)
# 👉 http://localhost:5000


# ============================================
# 7️⃣ 프로젝트 실행 (Running MLproject)
# ============================================

# MLproject 실행 (현재 디렉토리 기준)
mlflow run .

# 파라미터 전달 실행
mlflow run . -P alpha=0.01 -P l1_ratio=0.5

# GitHub 리포지토리에서 프로젝트 실행
mlflow run https://github.com/mlflow/mlflow-example.git -P alpha=0.01


# ============================================
# 8️⃣ 실험 전체 자동화 예시 (Workflow Example)
# ============================================

# 1. 실험 생성
mlflow experiments create --experiment-name "Auto_Experiment"

# 2. MLproject 실행 (모델 학습)
mlflow run . -P n_estimators=200 -P max_depth=5

# 3. 실행 목록 확인
mlflow runs list --experiment-id 1

# 4. 모델 등록
mlflow models register -m runs:/<RUN_ID>/model -n "Auto_Model"

# 5. 모델 서빙
mlflow models serve -m models:/Auto_Model/1 -p 6000

# 6. 서버 실행 (Tracking UI)
mlflow server --backend-store-uri sqlite:///mlflow.db --default-artifact-root ./mlruns --host 0.0.0.0 --port 5000

##############################################
# END OF SCRIPT
##############################################

 

 

2. MLflow CLI vs Python API vs MLflowClient

구분 CLI Python API (mlflow.*) MLflowClient
인터페이스 명령줄 코드 저수준 API
목적 운영/관리 실험/모델 로깅 시스템 제어
난이도 낮음 중간 높음
활용 환경 터미널 Python Notebook 백엔드 파이프라인
사용 예시 mlflow run mlflow.log_metric() client.search_runs()

 

 

 

정리하면

 

MLflow CLI는 “코드 없는 실험 자동화 도구” 이자
MLflow 전체 생태계를 관리할 수 있는 운영자 인터페이스입니다.

  •  실험 관리: mlflow experiments
  •  실행 관리: mlflow runs
  •  모델 관리: mlflow models
  •  배포 및 서빙: mlflow deployments, mlflow models serve
  •  서버 관리: mlflow server
  •  프로젝트 재현성: mlflow run