728x90
문제 발생
현재 우리는 경진대회에서 제공해 주는 서버에서 MLflow를 연동해 실험 기록을 남기려 하고 있다. tracking_uri를 다음과 같이 설정해서 서버 내부 파일 경로에 데이터를 기록하려고 했다.
mlflow.set_tracking_uri("/data/ephemeral/home/exp/mlruns")
mlflow.set_experiment("Image Classification")
그리고 mlflow ui 명령어로 MLflow UI를 실행했는데 화면에 실험 기록이 보이지 않았다..
이유를 찾아보니 MLflow UI가 해당 경로를 직접 참조하지 않기 때문에 발생한 문제라고 한다. MLflow UI에서 실험 데이터를 확인하려면 tracking_uri가 서버에 올바르게 연결되어야 한다.
tracking uri를 서버 내부 파일 시스템 경로로 지정한 이유
MLflow의 tracking_uri를 외부 주소가 아닌 서버 내부 파일 경로로 지정한 이유는 다음과 같다.
- 서버 환경 최적화: 서버 환경에서만 실험 기록을 남기고 조회하는 경우 외부 네트워크 연결이 필요 없으므로 더 빠르고 안정적으로 데이터를 관리할 수 있다. 이로 인해 네트워크 트래픽이 감소하고 서버와의 데이터 전송 속도도 빨라진다.
- 독립적이고 자율적인 데이터 관리: 실험 기록이 서버 내부 경로에 저장되기 때문에 특정 팀이나 서버 관리자가 데이터를 일괄적으로 관리하기 용이하다. 또한 동일한 서버 환경을 공유하는 팀원들이 별도의 설정 없이 기록 데이터를 확인할 수 있다.
- 보안성 강화: 외부 주소로 데이터를 전송하지 않고 서버 내부에만 기록함으로써 데이터의 보안성을 높일 수 있다. 서버 환경에서 민감한 데이터를 다루는 실험을 진행하는 경우, 로컬 파일 시스템에 기록하는 방식이 더 안전할 수 있다.
- 일관된 환경 유지: 서버 내부 경로로 실험 기록을 고정하면 환경이 변경되어도 tracking_uri 설정만으로 기록 데이터를 쉽게 관리할 수 있다. 특히 경진대회와 같이 제한된 환경에서 설정을 간단하게 유지할 수 있다는 장점이 있다.
해결 방법
MLflow 서버가 로컬 파일 경로의 기록을 참조하도록 설정하려면 mlflow server 명령어 실행 시 --backend-store-uri 옵션에 해당 파일 경로를 지정해 서버와 연결할 수 있다.
mlflow server --backend-store-uri /data/ephemeral/home/exp/mlruns --default-artifact-root /data/ephemeral/home/exp/mlruns --host 127.0.0.1 -p 5000
이 설정을 통해 MLflow 서버가 지정된 파일 경로를 참조하게 되어서 기록된 데이터가 MLflow UI에서 확인된다.
'MLOps' 카테고리의 다른 글
Docker 기반 Apache Airflow 간단 실습 (2) | 2024.11.20 |
---|---|
쿠버네티스 환경 구축 및 주요 구성 (0) | 2024.11.19 |
Docker 기반 Airflow, MLFlow, FastAPI, Streamlit 적용한 MLOps 프로젝트 후기 (5) | 2024.10.12 |
Docker로 mlflow 실행할때 OSError: [Errno 30] Read-only file system: '/mlflow' 에러 발생 (5) | 2024.10.09 |
Docker 환경에서 Airflow의 DAGs 테스트 (파이썬 코드, Slack Webhook, MLFlow) (3) | 2024.09.26 |