모델 파일 실행시 mlflow로 로깅해보기
모델이 있는 py파일에 로깅 코드를 함께 추가해서 실행해보자.
원래 train.py에 있는 내용은 아래 링크 참고하면 된다. 아래 파일 내용에서 mlflow관련 부분 제외된 것.
https://ysryuu.tistory.com/4?category=1165111
<train.py 파일 내용>
import mlflow
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score
# set mlflow
mlflow.set_tracking_uri('http://0.0.0.0:5001')
mlflow.set_experiment('tutorial')
with mlflow.start_run():
# log parameter
params = {'n_estimators':100,'max_depth':5}
mlflow.log_params(params)
# load data
iris = load_iris(as_frame=True)
X, y = iris['data'], iris['target']
X_train, X_valid, y_train, y_valid = train_test_split(X,y,test_size=0.3, random_state=2024)
# train data
clf = RandomForestClassifier(n_estimators=params['n_estimators'], max_depth=params['max_depth'], random_state=2024)
clf.fit(X_train, y_train)
# evaluate data
y_pred = clf.predict(X_valid)
acc_score = accuracy_score(y_valid, y_pred)
print('Accuracy score is {:.4f}'.format(acc_score))
# log metrics
mlflow.log_metrics({'accuracy': acc_score})
추가된 부분만 모아놓으면 다음과 같다.
mlflow import, mlflow setting, parameter logging, metrics logging 총 네 부분.
주의할 점은 하나의 실험 RUN 안에 모든 기록을 하고 싶기 때문에 기존 모델 학습 및 평가 코드를 모두
'with mlflow.start_run()' 하에 둔다는 점.
import mlflow
# set mlflow
mlflow.set_tracking_uri('http://0.0.0.0:5001')
mlflow.set_experiment('tutorial')
with mlflow.start_run():
# log parameter
params = {'n_estimators':100,'max_depth':5}
mlflow.log_params(params)
'''
load, train, evaluate data
'''
# log metrics
mlflow.log_metrics({'accuracy': acc_score})
로깅 결과 확인
tutorial이라는 experiment 안에, parameters와 metrics가 각각 추가된 것을 볼 수 있다.
* 프로그래머스의 마키나락스 MLOPS 강의를 참고하여 작성함
'MLOps' 카테고리의 다른 글
[MLOps] 9. Optuna 실습 (0) | 2024.04.22 |
---|---|
[MLOps] 8. 하이퍼파라미터 최적화 (1) | 2024.04.18 |
[MLOps] 6. MLflow 로깅 방법 (1) | 2024.04.18 |
[MLOps] 5. 도커 Compose로 MLflow 시작하기 (0) | 2024.04.17 |
[MLOps] 4. MLflow 시작하기 (feat.도커) (0) | 2024.04.17 |