머신러닝 실험이 반복될수록, “이번 학습에서는 어떤 설정이 좋았지?”라는 질문이 끊이지 않습니다.
MLflow의 Tracking 기능은 이런 혼란을 막고, 모든 실험 결과를 자동으로 기록·시각화할 수 있게 해줍니다.
이번 포스트에서는 log_* 함수와 set_tag 함수를 중심으로, MLflow Tracking의 핵심을 살펴봅니다.
1. 파라미터와 메트릭 기록 — mlflow.log_param & mlflow.log_metric
1.1 파라미터(Parameters) 기록
모델 학습 시 사용된 하이퍼파라미터(hyperparameter) 를 기록합니다.
mlflow.log_param("learning_rate", 0.01)
mlflow.log_params({
"batch_size": 64,
"optimizer": "Adam"
})
- log_param(name, value) → 단일 파라미터 기록
- log_params(dictionary) → 여러 파라미터를 한 번에 기록
예시:
학습률(learning rate), 배치 크기(batch size), 최적화 알고리즘(optimizer) 등
실험 간 설정을 명확히 비교할 수 있습니다.
1.2 메트릭(Metrics) 기록
학습 결과를 정량적으로 비교하기 위한 성능 지표(metric) 를 저장합니다.
mlflow.log_metric("loss", 0.32)
mlflow.log_metric("accuracy", 0.95, step=5)
mlflow.log_metrics({
"precision": 0.92,
"recall": 0.88
}, step=10)
- log_metric(name, value, step=0) → 단일 지표 기록
- log_metrics(dictionary, step=0) → 여러 지표 동시 기록
- 동일 지표 이름이 반복 기록되면, MLflow는 전체 변화 추이를 그래프로 시각화합니다.
활용 포인트:
학습 단계별 성능을 시각화해 loss 감소나 accuracy 향상 패턴을 한눈에 파악할 수 있습니다.
2. 아티팩트(Artifacts) 기록 — 모델, 로그, 이미지 등 저장
모델 학습 결과물(모델 파일, 시각화 이미지, 로그 파일 등)은
log_artifact / log_artifacts 함수를 통해 저장할 수 있습니다.
mlflow.log_artifact("model.pkl", artifact_path="models")
mlflow.log_artifacts("reports/", artifact_path="outputs")
- log_artifact(local_path) → 단일 파일 저장
- log_artifacts(local_dir) → 디렉토리 전체 저장
- artifact_path로 하위 디렉토리 구조를 지정할 수 있음
주요 활용 사례
- 모델 파일 저장: model.pkl, model.onnx
- 로그 및 리포트 보관: training_log.txt, evaluation.json
- 시각화 이미지 저장: confusion_matrix.png, roc_curve.png
MLflow UI의 Artifacts 탭에서 저장된 모든 파일을 직접 확인할 수 있습니다.
3. 태그(Tags) 관리 — 메타데이터로 실험 구조화하기
Run에는 단순히 수치만이 아니라,
“이 실험이 어떤 목적이었는가?”를 설명하는 메타데이터(tag) 를 추가할 수 있습니다.
mlflow.set_tag("experiment_type", "baseline")
mlflow.set_tags({
"model_version": "v1.2",
"author": "Kim Junhyung",
"dataset": "CIFAR-10 v2"
})
- set_tag(key, value) → 단일 태그 설정
- set_tags(dictionary) → 다중 태그 일괄 설정
활용 예시
- experiment_type: baseline, hyperparameter_tuning
- model_version: v1.2
- dataset: CIFAR-10 v2
- author: Users
태그는 MLflow UI에서 필터링 기준으로 사용되므로,
여러 실험을 한눈에 분류하거나 검색할 때 매우 유용합니다
정리하면
| 구분 | 함수 | 설명 |
| 파라미터 기록 | mlflow.log_param(s) | 하이퍼파라미터 저장 |
| 지표 기록 | mlflow.log_metric(s) | 성능 지표 기록 |
| 결과물 저장 | mlflow.log_artifact(s) | 모델 및 로그 파일 저장 |
| 메타데이터 관리 | mlflow.set_tag(s) | 실험 구분 정보 저장 |
Tracking은 단순히 기록 기능이 아닙니다.
MLflow는 모든 실험을 데이터 단위로 추적하여
재현 가능한 머신러닝 개발 문화를 만드는 도구입니다.
'MLOps·머신러닝 운영 > MLflow를 활용한 머신러닝 실험 관리' 카테고리의 다른 글
| MLflow의 Signature와 Input Example 이해 (0) | 2025.10.23 |
|---|---|
| MLflow 산출물(Artifacts) 폴더 구조 이해하기 (0) | 2025.10.23 |
| MLflow Run (0) | 2025.10.22 |
| Docker Compose로 MLflow + MySQL 환경 구축하기 (0) | 2025.10.22 |
| MLflow Autolog 확장하기: Custom Logging으로 세부 실험 데이터 관리 (0) | 2025.10.21 |