[MLflow] MLflow Client 설치 및 Tracking Server 연결
MLflow Client 패키지 선택과 원격 Tracking Server 연결 구성
MLflow Client 설치 및 Tracking Server 연결

MLflow Client 설치
1. 설치할 패키지 정하기
앞선 MLflow Client 클라이언트 사이드 포스팅에서 살펴봤듯, mlflow는 용도에 맞게 설치할 수 있는 패키지가 나누어져 있다. 필요한 기능과 사용 범위에 맞춰 설치할 패키지를 선택한다.
Server Side와 Client Side를 분리한 아키텍처라면 mlflow-skinny를 설치하는 것을 권장한다.
| 라이브러리 | 주요 기능 | 설치 방법 | 설치 용량(의존성 포함) |
|---|---|---|---|
| mlflow | 모델 로깅, 실험 관리, 모델 레지스트리, 모델 서빙 등 MLflow의 모든 기능을 포함한 표준 패키지 | pip install mlflow |
약 484 MB |
| mlflow-tracing | LLM/GenAI 애플리케이션의 트레이싱(관찰/모니터링)만을 위한 초경량 패키지 모델 로깅, 실험 관리, 모델 레지스트리 등은 지원하지 않음 |
pip install mlflow-tracing |
약 48 MB |
| mlflow-skinny | 서버, UI, 데이터사이언스 관련 의존성을 제외한 경량 패키지 기본적인 트래킹과 모델 레지스트리, 프로젝트 실행 등은 가능 |
pip install mlflow-skinny |
약 63 MB |
2. 설치
Client Side에서 원격 MLflow Tracking Server를 사용한다면 다음과 같이 mlflow-skinny를 설치할 수 있다.
1
pip install mlflow-skinny
설치 후 Client가 요청을 전송할 MLflow Tracking Server를 지정한다.
1
2
import mlflow
mlflow.set_tracking_uri("http://mlflow-server:5000")
또는 환경변수로 지정할 수도 있다.
1
export MLFLOW_TRACKING_URI="http://mlflow-server:5000"
MLflow 서버에 연결하기
MLflow Client에서 원격 MLflow Tracking Server를 사용하려면 Tracking URI를 설정해야 한다. Tracking URI를 설정하는 방법은 크게 두 가지가 있다.
1. 연결 방법
(1) 환경변수 mlflow tracking uri 등록하기
- 환경변수에 MLFLOW_TRACKING_URI를 등록해놓으면 MLflow Client가 해당 주소를 Tracking URI로 사용한다.
- 원격 MLflow Server에 연결하는 경우,
http://<도메인>:<포트>혹은http://<서버ip>:<포트>형태의 주소를 사용할 수 있다.
1
2
3
import os
os.environ["MLFLOW_TRACKING_URI"] = "http://<mlflow-server>"
print(f"MLflow Tracking URI without server url def: {mlflow.get_tracking_uri()}")
OS 환경변수에 직접 등록할 수도 있으며, 이 경우 Python 코드에서 별도로 Tracking URI를 지정하지 않아도 해당 서버를 사용한다.
1
export MLFLOW_TRACKING_URI="http://<mlflow-server>"
(2) 코드에서 명시적으로 mlflow tracking uri 부여하기
mlflow.set_tracking_uri()를 사용하여 코드에서 Tracking URI를 직접 지정할 수도 있다.
1
2
3
server_uri = "http://<mlflow-server>"
mlflow.set_tracking_uri(server_uri)
print(f"MLflow Tracking URI with server url def: {mlflow.get_tracking_uri()}")
2. 연결 확인
mlflow.get_tracking_uri()는 현재 설정된 Tracking URI를 반환할 뿐, 실제 MLflow Server와 정상적으로 통신할 수 있는지를 확인하지는 않는다.
따라서 실제 연결 상태를 확인하려면 MlflowClient를 통해 Experiment 조회와 같이 서버에 요청을 보내는 API를 호출해보는 방법이 있다.
1
2
3
4
5
from mlflow import MlflowClient
client = MlflowClient()
experiment = client.get_experiment_by_name("Default")
print(experiment)
- 잘 세팅이 되었다면, 실험 정보를 가져오거나, 실험이 없는 경우 None 을 반환한다.
- 하지만 잘못 세팅이 되어있다면, 무한 대기를 하거나 오류가 나게 된다.
Reference
https://pypi.org/project/mlflow-skinny/3.16.1/
https://mlflow.org/docs/latest/ml/tracking/tracking-api?
https://mlflow.org/docs/latest/api_reference/python_api/mlflow.config.html
// reading compass
이 글과 이어지는 경로
시리즈, 카테고리, 태그 겹침, 최신도를 점수화해 가까운 글일수록 중심에 배치합니다.
댓글 남기기