Перевод tracking на SQLite + HTTP-клиенты (file-store запрещён в MLflow 3.x)
- start_ui.sh: SQLite backend (sqlite:///mlflow.db) вместо file-store - все скрипты src/: mlflow.set_tracking_uri(http://localhost:5555) с env-override - README: сервер должен быть запущен до запуска скриптов - AGENTS.md: обновлена архитектура хранения и gotcha
This commit is contained in:
+18
-25
@@ -3,45 +3,38 @@
|
||||
# Запуск MLflow Tracking Server
|
||||
# Откройте в браузере: http://localhost:5555
|
||||
#
|
||||
# Backend store = file://$(pwd)/mlruns (тот же каталог, куда скрипты
|
||||
# пишут по умолчанию). Поэтому UI видит все эксперименты/запуски
|
||||
# без доп. настройки tracking URI в скриптах.
|
||||
# Backend store = SQLite (mlflow.db) — recommended MLflow backend.
|
||||
# Скрипты в src/ логируют на этот сервер (http://localhost:5555) через
|
||||
# mlflow.set_tracking_uri(...) — поэтому UI и скрипты работают с одной
|
||||
# базой, и эксперименты сразу видны в UI.
|
||||
#
|
||||
# ВАЖНО: file-store как СЕРВЕРНЫЙ бэкенд в новых MLflow (3.x) переведён в
|
||||
# maintenance mode и по умолчанию запрещён. Официальный opt-out —
|
||||
# MLFLOW_ALLOW_FILE_STORE=true (его и выставляем ниже). Это касается только
|
||||
# `mlflow server`; клиентский file store (как пишут скрипты) работает и без него.
|
||||
# ⚠️ file-store как tracking backend в новых MLflow (3.x) переведён в
|
||||
# maintenance mode и запрещён (ошибка и на сервере, и у клиента-скрипта).
|
||||
# Поэтому используем sqlite. Артефакты при этом лежат на локальном диске
|
||||
# в ./artifacts (file-based artifact repository — он НЕ в maintenance mode).
|
||||
#
|
||||
# Альтернатива — SQLite-бэкенд (recommended MLflow, без opt-out). Тогда
|
||||
# раскомментируйте блок SQLITE ниже и закомментируйте FILE, а в скриптах
|
||||
# задайте mlflow.set_tracking_uri("http://localhost:5555")
|
||||
# (или export MLFLOW_TRACKING_URI=http://localhost:5555).
|
||||
# Запустите сервер ДО запуска скриптов обучения:
|
||||
# ./start_ui.sh # в одном терминале
|
||||
# python src/train_simple.py ... # в другом (нужен работающий сервер)
|
||||
# ============================================================
|
||||
set -e
|
||||
cd "$(dirname "$0")"
|
||||
|
||||
PORT=5555
|
||||
PORT="${MLFLOW_PORT:-5555}"
|
||||
|
||||
echo "🚀 Запускаем MLflow Tracking Server..."
|
||||
echo " UI: http://localhost:${PORT}"
|
||||
echo " Store: file://${PWD}/mlruns"
|
||||
echo " UI: http://localhost:${PORT}"
|
||||
echo " Backend: sqlite:///${PWD}/mlflow.db"
|
||||
echo " Artifacts: file://${PWD}/artifacts"
|
||||
echo ""
|
||||
echo " Скрипты логируют сюда через MLFLOW_TRACKING_URI=http://localhost:${PORT}"
|
||||
echo " (можно переопределить: export MLFLOW_TRACKING_URI=http://<host>:${PORT})"
|
||||
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" \
|
||||
--backend-store-uri "sqlite:///${PWD}/mlflow.db" \
|
||||
--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}"
|
||||
|
||||
Reference in New Issue
Block a user