Featured image of post [ Chapter 2. Model Registry ] 3) Train Model and Save to MLFlow

[ Chapter 2. Model Registry ] 3) Train Model and Save to MLFlow

Github 에서 해당 내용에 대해서 확인할 수 있습니다.

Overview

목표

  • 모델을 학습하고 mlflow server에 저장합니다.

요구사항

  1. 앞선 챕터에서 추출한 데이터를 이용해 모델을 학습합니다.

    • eg) from sklearn.svm import SVC
    • 모델을 학습하는 스크립트의 위치는 mlflow server 가 띄어진 위치와 같아야 합니다.
      1
      2
      3
      4
      5
      
      .
      ├── mlruns
      │   └── 0
      │       └── meta.yaml
      └── train.py
      
  2. 학습이 끝난 모델을 built-in method를 사용해 mlflow server에 저장합니다.

  3. 저장된 모델을 mlflow website에서 확인합니다.


Train

모델을 학습하는 스크립트를 작성합니다. 이 때 데이터는 이 전 챕터에서 사용한 데이터를 이용합니다.

1
2
3
4
5
6
7
from sklearn.svm import SVC


X = df.drop(["id", "target"], axis="columns")
y = df["target"]
classifier = SVC()
classifier.fit(X, y)

Save Model

mlflow를 사용할 수 있는 방법중 fluent 와 built-in method를 사용해 모델을 저장하겠습니다.

Set Tracking URI

우선 앞선 챕터에서 띄운 mlflow server에 로깅할 수 있도록 set_tracking_uri를 이용해 mlflow 의 주소를 지정합니다.

1
2
3
4
import mlflow


mlflow.set_tracking_uri("http://localhost:5000")

Log Model

다음으로 built-in method 중 학습한 모델이 scikit-learn 모델이기 때문에 mlflow.sklearn 를 이용해 모델을 저장합니다.

1
mlflow.sklearn.log_model(model, "iris_model")

위 명령어를 실행하면 다음과 같이 mlruns에 run_id 폴더가 생성되고 밑에 필요한 정보들이 추가됩니다.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
.
├── mlruns
│   └── 0
│       ├── 8893c67cc1a44a29bc38bdde4559508c
│       │   ├── artifacts
│       │   │   └── iris_model
│       │   │       ├── MLmodel
│       │   │       ├── conda.yaml
│       │   │       ├── model.pkl
│       │   │       ├── python_env.yaml
│       │   │       └── requirements.txt
│       │   ├── meta.yaml
│       │   ├── metrics
│       │   ├── params
│       │   └── tags
│       │       ├── mlflow.log-model.history
│       │       ├── mlflow.source.git.commit
│       │       ├── mlflow.source.name
│       │       ├── mlflow.source.type
│       │       └── mlflow.user
│       └── meta.yaml
└── train.py

Web

http://localhost:5000 에 접속하면 다음과 같이 나옵니다. mlflow ui

생성된 run을 클릭합니다. run

위와 같이 artifacts에 iris_model 폴더 밑에 모델과 메타 정보들이 저장된 것을 확인할 수 있습니다.

Built with Hugo
Theme Stack designed by Jimmy