본문 바로가기
프로젝트 일지/분모자

MLflow - Tracking Servers

by 데브겸 2023. 7. 23.

 

이제까지 로컬에 저장하는 방법만 살펴봤지만, 실제 개발에서는 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

 

 

로컬 호스트에서 진행하는 경우

https://mlflow.org/docs/latest/tracking.html#where-runs-are-recorded

 

 

 

외부 스토리지, 호스트 등을 사용하는 경우

https://mlflow.org/docs/latest/tracking.html#where-runs-are-recorded