본문 바로가기
App Programming/MLops

[MLops] MLflow

by goatlab 2024. 8. 19.
728x90
반응형
SMALL

MLflow

 

MLflow는 머신러닝 라이프사이클을 관리하기 위한 오픈 소스 플랫폼이다. 이 플랫폼은 머신러닝 모델의 실험, 개발, 배포, 그리고 운영 과정을 자동화하고 일관되게 관리할 수 있도록 도와준다. MLflow는 사용자가 실험을 추적하고, 재현 가능한 환경에서 프로젝트를 실행하며, 다양한 포맷의 모델을 저장하고 배포할 수 있게 해준다.

 

pip install mlflow
pip install --upgrade pip 
pip install setuptools

 

터미널에서 mlflow ui를 입력하면 기계 학습 코드를 실행할 때 매개변수, 코드 버전, 지표 및 출력 파일을 기록하고 결과를 시각화하기 위한 API 및 UI로 접속할 수 있다.

 

mlflow ui

 

iris 데이터 실습 : 데이터 로드

 

from sklearn.datasets import  load_iris
from sklearn.preprocessing import StandardScaler
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score

iris = load_iris()

x = iris.data
y = iris.target

 

데이터 전처리 및 분리

 

scaler = StandardScaler()
x_scaled = scaler.fit_transform(x)

x_train, x_test, y_train, y_test = train_test_split(x_scaled, y, test_size=0.2, random_state=42)

 

 

모델 로드 및 학습

 

model = LogisticRegression(max_iter=200)
model.fit(x_train, y_train)

 

모델 평가

 

y_pred = model.predict(x_test)

accuracy = accuracy_score(y_test, y_pred)
print(f"정확도 : {accuracy * 100}")

 

MLflow 실험 저장

 

import mlflow.sklearn

mlflow.set_tracking_uri("http://127.0.0.1:5000")
mlflow.set_experiment(experiment_name='iris_test')
mlflow.autolog()

with mlflow.start_run(nested=True): # 실험 시작
    model.fit(x_train, y_train)

    y_pred = model.predict(x_test)

    accuracy = accuracy_score(y_test, y_pred)
    print(f"정확도 : {accuracy * 100}")

mlflow.end_run() # 실험 종료

728x90
반응형
LIST

'App Programming > MLops' 카테고리의 다른 글

[MLops] GitHub Action  (0) 2024.08.17
[MLops] 데이터베이스  (0) 2024.08.13
[MLops] 모델 추론  (0) 2024.08.13
[MLops] 학습 결과 기록하기  (0) 2024.08.12
[MLops] 모델 저장하기  (0) 2024.08.12