시스템 개발 및 관리/MLflow를 활용한 머신러닝 실험 관리

MLflow로 Artifact 재현성을 높이는 최적의 워크플로우

Data Jun 2025. 2. 4. 21:32

📌 MLflow Artifacts를 활용한 모델 재현성 및 예측 과정

머신러닝 모델을 실험하고 배포할 때 일관된 결과를 보장하는 것(재현성) 이 중요합니다.
MLflow는 Artifacts(모델 파일, 환경 설정, 평가 지표 등) 을 관리하여 이전 실험을 그대로 복원하고 실행할 수 있도록 도와줍니다. 이번 글에서는 MLflow Artifacts를 활용한 모델 재현성과 예측 과정을 설명합니다

 

MLflow Artifacts란?

MLflow에서 Artifacts(아티팩트) 는 머신러닝 실험(run) 중 생성된 결과 파일을 의미합니다.
이에는 다음과 같은 정보가 포함됩니다:

  • 모델 파일 (model.pkl) → 저장된 머신러닝 모델
  • 환경 설정 (requirements.txt, conda.yaml) → 모델이 실행될 환경 정보
  • 모델 설명 파일 (MLmodel) → MLflow가 모델을 어떻게 로드해야 하는지 정의
  • 시각화 파일 (training_confusion_matrix.png, training_roc_curve.png) → 모델 평가 지표

 

MLflow Experiment (이미지) 설명

  • MLflow Tracking UI에서 특정 실험(adventurous-moth-236)의 Artifacts 탭을 확인
  • model/ 디렉토리 내부에는 다음과 같은 주요 파일이 있음:
    • model.pkl → 저장된 머신러닝 모델
    • MLmodel → MLflow 모델 메타데이터
    • requirements.txt / conda.yaml → 모델이 필요한 라이브러리 환경 정보
    • training_confusion_matrix.png, training_roc_curve.png → 모델 평가 지표 시각화
  • 모델 입력값(Age, SibSp, Parch 등)과 예측 결과(Tensor) 확인 가능
  • MLflow에서 제공하는 모델 로드 및 예측 코드가 우측에 제공됨

 

import mlflow
mlflow.set_tracking_uri("http://127.0.0.1:5000")
logged_model = 'runs:/20176bf12c3a4c13a82f431eda9/model'

# mlflow' pyfunc를 활용하여 모델 로드 
loaded_model = mlflow.pyfunc.load_model(logged_model)

import pandas as pd
from sklearn.metrics import accuracy_score

test_df = pd.read_csv('dataset_preprocessing.csv', index_col=0)
label = test_df["Survived"]
test_df = test_df.drop(["Survived"], axis=1)
test_df.head()

# 로드된 모델로 예측
y_prd = loaded_model.predict(pd.DataFrame(test_df))

 

  • 코드에서는 MLflow Tracking Server(http://127.0.0.1:5000)에서 특정 실험의 모델을 로드(mlflow.pyfunc.load_model())
  • model.pkl을 활용해 예측 수행 (loaded_model.predict())
  • dataset_preprocessing.csv의 데이터를 입력값으로 사용
  • 모델의 정확도를 평가 (accuracy_score())
  • MLflow UI에서 확인한 모델 아티팩트(model.pkl, MLmodel, requirements.txt)가 코드에서 활용됨

마무리

이번 글에서는 MLflow Artifacts를 활용한 모델 재현성과 예측 과정을 다뤘습니다.
MLflow를 활용하면 모델, 환경, 평가 지표를 한 번에 저장하고 관리할 수 있습니다.
저장된 모델을 불러와 새로운 데이터에 대해 예측을 수행할 수 있습니다.
이를 통해 머신러닝 모델의 재현성을 보장하고, 언제든 실험 결과를 복원할 수 있습니다.

💡 MLflow Model Registry를 활용하면 모델 버전까지 체계적으로 관리할 수 있습니다.