#!/bin/bash # ============================================================ # Запуск MLflow Tracking Server # Откройте в браузере: http://localhost:5555 # # Backend store = file://$(pwd)/mlruns (тот же каталог, куда скрипты # пишут по умолчанию). Поэтому UI видит все эксперименты/запуски # без доп. настройки tracking URI в скриптах. # # ВАЖНО: file-store как СЕРВЕРНЫЙ бэкенд в новых MLflow (3.x) переведён в # maintenance mode и по умолчанию запрещён. Официальный opt-out — # MLFLOW_ALLOW_FILE_STORE=true (его и выставляем ниже). Это касается только # `mlflow server`; клиентский file store (как пишут скрипты) работает и без него. # # Альтернатива — SQLite-бэкенд (recommended MLflow, без opt-out). Тогда # раскомментируйте блок SQLITE ниже и закомментируйте FILE, а в скриптах # задайте mlflow.set_tracking_uri("http://localhost:5555") # (или export MLFLOW_TRACKING_URI=http://localhost:5555). # ============================================================ set -e cd "$(dirname "$0")" PORT=5555 echo "🚀 Запускаем MLflow Tracking Server..." echo " UI: http://localhost:${PORT}" echo " Store: file://${PWD}/mlruns" echo " Artifacts: file://${PWD}/artifacts" echo "" echo " Нажмите Ctrl+C для остановки" echo "" # ─── FILE backend (по умолчанию — единое хранилище со скриптами) ─── # MLFLOW_ALLOW_FILE_STORE=true — opt-out из maintenance mode file-store бэкенда. export MLFLOW_ALLOW_FILE_STORE=true mlflow server \ --backend-store-uri "file://${PWD}/mlruns" \ --default-artifact-root "file://${PWD}/artifacts" \ --host 0.0.0.0 \ --port "${PORT}" # ─── SQLITE backend (альтернатива — см. комментарий в шапке) ────── # mlflow server \ # --backend-store-uri sqlite:///mlflow.db \ # --default-artifact-root ./artifacts \ # --host 0.0.0.0 \ # --port "${PORT}"