일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- GIT
- datascience
- NLP
- github
- DeepLearning
- leetcode
- rnn
- NaverAItech
- 백준
- Matplotlib
- torchserve
- Kaggle
- FastAPI
- 네이버AItech
- 프로그래머스
- Kubernetes
- 완전탐색
- wandb
- FDS
- vscode
- 알고리즘
- GCP
- 코딩테스트
- autoencoder
- GitHub Action
- PytorchLightning
- docker
- python
- pytorch
- pep8
- Today
- Total
Sangmun
[MLOps] mlflow 기본 사용법 (1) 본문
Mlflow는 머신러닝 실험, 배포를 쉽게 관리해줄 수 있는 오픈소스이다.
개인적으로는 wandb가 빠르게 실험에 대한 내용을 기록해 줄 수 있는 도구라면 mlflow는 약간은 사용하기 복잡하지만 배포 및 운영하는데도 유용하게 쓸 수 있다는 느낌을 받았다.
기본 사용법
원래는 네이버 boost 캠프의 변성윤 마스터님의 강의를 참조하려고 하였으나 뭔가 잘 되지 않아 공식 document를 참조하기로 하였다.
https://www.mlflow.org/docs/latest/quickstart.html
먼저 mlflow를 설치를 해준다. 아래 3가지 명령어 중 상황에 맞는 것을 설치해주면 된다.
# Install MLflow
pip install mlflow
# Install MLflow with extra ML libraries and 3rd-party tools
pip install mlflow[extras]
# Install a lightweight version of MLflow
pip install mlflow-skinny
그 후 파이썬 코드에 mlflow 패키지를 임포트 해주고 기록하고자 하는 metric을 log_metric()으로 기록해주면 된다.
import os
from random import random, randint
from mlflow import log_metric, log_param, log_artifacts
if __name__ == "__main__":
# Log a parameter (key-value pair)
log_param("param1", randint(0, 100))
# Log a metric; metrics can be updated throughout the run
log_metric("foo", random())
log_metric("foo", random() + 1)
log_metric("foo", random() + 2)
# Log an artifact (output file)
if not os.path.exists("outputs"):
os.makedirs("outputs")
with open("outputs/test.txt", "w") as f:
f.write("hello world!")
log_artifacts("outputs")
해당 코드를 실행하면 실행한 경로에 아래와 같이 mlflow관련 디렉토리 및 파일이 생성된다.
이후 mlruns 폴더가 있는 경로에서 mlflow ui 명령어를 실행해주면 결과를 웹에서 확인할 수 있다/
다음은 공식 document에서 제공하는 다른 예제로 실험을 Script가 아닌 프로젝트 단위로 관리가 가능하다.
mlflow run sklearn_elasticnet_wine -P alpha=0.5
# 예제 소스 코드
mlflow run https://github.com/mlflow/mlflow-example.git -P alpha=5.0
예제의 프로젝트 구조는 아래와 같으며 설정 파일의 내용도 아래와 같다.
위로 코드내용처럼 mlflow run으로 프로젝트를 실행하면 train.py가 실행되고 결과가 mlruns 폴더에 저장되게 된다.
그리고 mlruns 폴더가 위치한 경로에서 mlflow ui 명령어를 실행하면 웹으로 결과가 확인이 가능하다.
아래의 ui 화면처럼 해당 시행이 어떠한 명령어로 시행되었는지와 하이퍼 파라미터 및 Metric이 웹에서 확인된다.
또한 해당 실험 시행간 발급된 해시값을 기준으로 즉각으로 prediction까지 가능하다.
여기까지 기본적인 mlflow의 사용법을 알아보았다.
'네이버 AI 부스트캠프 4기 > MLops' 카테고리의 다른 글
[MLOps]wandb sweep 기본 사용법 (0) | 2022.11.24 |
---|---|
[MLOps]pytorch lightning에서 wandb 로깅하기 (0) | 2022.11.24 |
[MLOps]Pytorch Monitoring tools (weight & biases) (0) | 2022.09.30 |