이제까지 로컬에 저장하는 방법만 살펴봤지만, 실제 개발에서는 tracking 결과물을 로컬에 저장하지는 않음
원격 저장소에 저장 -> MLflow의 tracking URI로 기록물을 가져와서 사용하는 방식
import mlflow
mlflow.set_tracking_uri("file:///tmp/my_tracking")
tracking_uri = mlflow.get_tracking_uri()
print("Current tracking uri: {}".format(tracking_uri))
- 로컬 (file:/my/local/dir)
- 데이터베이스 (<dialect>+<driver>://<username>:<password>@<host>:<port>/<database>)
- mysql, mssql, sqlite, postgresql 지원
- HTTP 서버 (https://my-server:5000)
- Databricks workspace (databricks://<profileName>)
MLflow를 사용할 때 시나리오
MLflow는 백엔드 스토어(backend store)와 아티팩트 스토어(artifact store) 두 스토리지 컴포넌트를 활용함.
백엔드 스토어
정량적 지표들 (ex. accuracy, f1-score, loss, hyperparmameters), MLflow 메타 데이터 (ex. run_id, run_name, experiment_name) 정보가 저장됨
--backend-store-uri로 백엔드 스토어 config 작성 가능 (디폴트는 로컬의 ./mlruns)
- RDB 보통 사용
- mysql, mssql, sqlite, postgresql
아티팩트 스토어
학습된 모델 등을 저장함
--default-artifact-root로 아티팩트 스토어 config 작성 가능 (디폴트는 로컬의 ./mlruns)
- AWS S3 & S3 호환 스토리지
- MinIO가 대표적인 호환 스토리지로 이용됨
- Azure Blob
- GCP Storage
- FTP server
- SFTP Server
- NFS
- HDFS
로컬 호스트에서 진행하는 경우
외부 스토리지, 호스트 등을 사용하는 경우
'프로젝트 일지 > 분모자' 카테고리의 다른 글
FastAPI: 데이터베이스 연결의 이해 (0) | 2023.06.23 |
---|---|
MLflow - Tracking using CLI (0) | 2023.03.13 |
MLflow - MLflow 개요 & Tracking 기초 (with python) (2) | 2023.03.07 |