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

MLflow Tracking 실험 관리 — 파라미터, 메트릭, 아티팩트, 태그 기록하기

Data Jun 2025. 10. 22. 23:18

머신러닝 실험이 반복될수록, “이번 학습에서는 어떤 설정이 좋았지?”라는 질문이 끊이지 않습니다. 
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는 모든 실험을 데이터 단위로 추적하여
재현 가능한 머신러닝 개발 문화를 만드는 도구입니다.