MLflow는 머신러닝 개발 생애주기(ML Development Lifecycle) 관리를 위한 오픈소스 플랫폼입니다. 실험 추적, 모델 패키징, 모델 배포 기능을 제공하여 머신러닝 워크플로우를 효율적으로 관리할 수 있도록 돕습니다.

  1. MLflow 설치
    MLflow는 Python 패키지로 제공되며, pip를 사용하여 간단하게 설치할 수 있습니다. 터미널 또는 명령 프롬프트에서 다음 명령어를 실행해 주세요.
    pip install mlflow

  2. MLflow 기본 사용법 (실험 추적)
    MLflow의 주요 기능 중 하나는 실험 추적(Experiment Tracking)입니다. 다양한 모델 학습 시도에 대한 코드, 매개변수, 측정항목, 아티팩트 등을 기록하고 비교할 수 있습니다.

실험 시작: mlflow.start_run()을 사용하여 새로운 실험 실행(Run)을 시작합니다. with 문을 사용하면 자동으로 실행이 종료됩니다.
매개변수 기록: mlflow.log_param(key, value)를 사용하여 실험에 사용된 매개변수를 기록합니다.
측정항목 기록: mlflow.log_metric(key, value)를 사용하여 모델 성능 측정항목(예: 정확도, 손실)을 기록합니다.
아티팩트 기록: mlflow.log_artifact(local_path)를 사용하여 모델 파일, 데이터 시각화 이미지 등 중요한 파일을 기록합니다.

예시 코드
import mlflow
import mlflow.sklearn
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score
import pandas as pd

예제 데이터 생성 (실제 데이터로 대체 가능)

data = {'feature1': [1, 2, 3, 4, 5],
'feature2': [5, 4, 3, 2, 1],
'target': [0, 0, 1, 1, 1]}
df = pd.DataFrame(data)

X = df[['feature1', 'feature2']]
y = df['target']

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

MLflow 실험 시작

with mlflow.start_run():

# 매개변수 설정 및 기록
solver = 'liblinear'
random_state = 42
mlflow.log_param("solver", solver)
mlflow.log_param("random_state", random_state)

# 모델 학습
model = LogisticRegression(solver=solver, random_state=random_state)
model.fit(X_train, y_train)

# 모델 평가
y_pred = model.predict(X_test)
accuracy = accuracy_score(y_test, y_pred)

# 측정항목 기록
mlflow.log_metric("accuracy", accuracy)

# 모델 기록
mlflow.sklearn.log_model(model, "logistic_regression_model")

print(f"Accuracy: {accuracy}")
print(f"MLflow Run ID: {mlflow.active_run().info.run_id}")

이 코드를 실행하면 현재 디렉터리에 mlruns라는 폴더가 생성되고, 그 안에 실험 정보가 기록됩니다.

MLflow UI 실행
기록된 실험 결과를 시각적으로 확인하고 비교하려면 MLflow UI를 실행해야 합니다. 터미널 또는 명령 프롬프트에서 다음 명령어를 실행해 주세요. MLflow 기록이 저장된 디렉터리에서 실행해야 합니다 (일반적으로 mlruns 폴더가 있는 곳).

mlflow ui

profile
함께 세상을 만드는 사람들

0개의 댓글