ML 실험 추적은 모델 학습 실험의 파라미터, 메트릭, 코드, 환경을 체계적으로 기록하는 MLOps 관행이다. 재현성을 보장하고 최적 모델을 식별하며 팀 협업을 촉진한다.
추적 대상
파라미터: 하이퍼파라미터, 모델 아키텍처, 데이터 경로
메트릭: 손실, 정확도, F1, AUC 등 성능 지표
아티팩트: 모델 파일, 데이터셋, 예측 결과
환경: Python 버전, 라이브러리 버전, Git 커밋
MLflow 사용법
python
import mlflow
import mlflow.sklearn
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score, f1_score
mlflow.set_tracking_uri("http://localhost:5000")
mlflow.set_experiment("credit-risk-model")
with mlflow.start_run(run_name="rf-baseline"):
params = {"n_estimators": 100, "max_depth": 10, "min_samples_leaf": 5}
mlflow.log_params(params)
model = RandomForestClassifier(**params)
model.fit(X_train, y_train)
y_pred = model.predict(X_test)
mlflow.log_metric("accuracy", accuracy_score(y_test, y_pred))
mlflow.log_metric("f1_score", f1_score(y_test, y_pred, average='weighted'))
mlflow.sklearn.log_model(
model,
"model",
registered_model_name="credit-risk-rf",
)
mlflow.log_artifact("feature_importance.png")
자동 로깅 (autolog)
python
mlflow.sklearn.autolog()
mlflow.pytorch.autolog()
mlflow.xgboost.autolog()
model.fit(X_train, y_train) # 모든 메트릭 자동 기록
MLflow vs W&B 비교
| 항목 | MLflow | W&B |
|---|
| 배포 | 자체 호스팅 | SaaS + 자체 호스팅 |
| 비용 | 오픈소스 무료 | 무료 플랜 + 유료 |
| UI | 기본 | 풍부한 시각화 |
| 팀 협업 | 기본 | 강점 |
| 모델 레지스트리 | 지원 | 지원 |
| 하이퍼파라미터 탐색 | 기본 | Sweeps (강점) |
관련 문서