Backend Store

개념

  • MLflow의 핵심 구성 요소로, Run, Model, Experiment에 대한 메타데이터를 저장한다.
  • 저장하는 데이터는 실행(Run)의 ID, 시작 및 종료 시각, 파라미터, 메트릭(평가지표) 등
  • 주로 구조화된 데이터들이므로 RDB 형태로 저장된다.
  • Model Registry 기능을 사용하려면 RDB 기반 저장소가 필요함
  • ※ 모델 가중치 파일과 같은 대용량 모델 아티팩트는 아티팩트 저장소에 저장됨
저장되는 데이터 한글명 설명
Run ID 실행 식별자 각 실험 실행을 구분하는 고유한 UUID.
모든 메타데이터와 아티팩트의 기준점이 됨.
Model ID 모델 식별자 특정 실행 내에서 저장된 모델을 가리키는 ID.
모델 레지스트리에 등록될 때 참조됨.
Trace ID 추적 식별자 LLM 추론 과정 등 복잡한 워크플로우의 흐름(Trace)을 추적하기 위한 ID.
Tags 태그 실행에 부여하는 사용자 정의 키-값 쌍.
실험의 목적, 실행자, 환경(운영/개발) 등을 필터링할 때 사용.
Start & end time 시작/종료 시각 실험이 시작된 시각과 완료된 시각.
실험의 소요 시간을 계산하거나 시계열로 정렬할 때 활용.
Parameters 매개변수 모델 학습에 사용된 하이퍼파라미터(예: Learning Rate, Batch Size).
문자열 형태의 키-값 쌍으로 저장.
Metrics 측정 기준 실험 결과로 도출된 숫자 지표(예: Accuracy, Loss).
시간에 따른 변화를 기록하여 그래프로 시각화 가능.

지원되는 Backend Store

  • MLflow는 SQLAlchemy를 통해 이하의 다양한 데이터베이스를 지원한다.
지원되는 Backend Store 구분 설명
sqlite RDB 가볍고 설정이 필요 없는 파일 기반 DB.
주로 개인 개발 및 테스트용으로 사용됨.
기본값.
postgresql RDB MLflow에서 가장 권장하는 운영용 DB.
확장성이 뛰어나고 대규모 트래킹에 적합함.
mysql RDB 널리 사용되는 오픈소스 DB.
안정적인 메타데이터 관리가 가능함.
mssql RDB 기업 환경에서 주로 사용되는 SQL Server 지원.
SQLAlchemy를 통해 연결됨.
local file system file 서버 없이 ./mlruns 폴더 내에 JSON/YAML 형태로 저장하는 방식.

MLflow Tracking Server 와의 연결

  • Tracking Server에서 백엔드 스토어를 별도 지정하지 않으면 sqlite 가 생성되고, 이게 사용됨
  • Tracking Server를 시작할 때 --backend-store-uri 옵션을 통해 지정 가능
1
--backend-store-uri postgresql://...

Reference

https://mlflow.org/docs/latest/self-hosting/architecture/backend-store/

Comments