5.8 KiB
YOLO Train WebUI
Локальный веб-интерфейс для обучения моделей Ultralytics YOLO с журналом, графиками метрик, мягкой остановкой и интеграцией MLflow.
Возможности
- задачи
detect,segment,classify,poseиobb; - локальные датасеты и официальные имена моделей Ultralytics;
- настройка эпох, размера изображения, batch, устройства, workers и patience;
- цветовые и геометрические аугментации, Mosaic, MixUp, CutMix, copy-paste, erasing и AutoAugment;
- live-прогресс, журнал, графики метрик и восстановление состояния после переподключения браузера;
- сохранение профилей запуска и кооперативная остановка обучения;
- локальное MLflow-хранилище или внешний tracking server.
Локальная установка и запуск
Нужны Python 3.11+ и uv.
uv sync --locked
uv run yolo-train-webui
Альтернативный запуск как Python-модуля:
uv run -m yolo_webui
Откройте http://127.0.0.1:8000. Сервер по умолчанию слушает только loopback.
При первом использовании официального имени модели, например yolo11n.pt,
Ultralytics скачает веса. Пользовательские модели размещайте в ./models или в
./runs, а датасеты — в ./datasets. Результаты записываются в ./runs.
Docker Compose
docker compose up --build
WebUI будет доступен по http://127.0.0.1:8000. Compose намеренно публикует порт
только на loopback. Не заменяйте адрес на 0.0.0.0 без аутентифицирующего reverse
proxy: API позволяет запускать и останавливать ресурсоёмкие задачи.
Для NVIDIA GPU раскомментируйте секцию deploy.resources.reservations.devices в
docker-compose.yml. Образ устанавливает зафиксированные в uv.lock зависимости;
для другого варианта PyTorch используйте отдельно сгенерированный и проверенный
lock-файл.
Разрешённые пути
API отклоняет URL и не разрешает обучению читать или записывать произвольные пути:
- датасеты и файлы классов —
./datasets; - модели —
./modelsи./runs; - результаты —
./runs.
Дополнительные доверенные корни можно перечислить через системный разделитель путей
в YOLO_WEBUI_DATA_ROOTS, YOLO_WEBUI_MODEL_ROOTS и
YOLO_WEBUI_RUN_ROOTS. Например, в Linux/macOS:
YOLO_WEBUI_DATA_ROOTS=/mnt/datasets:/data/shared uv run yolo-train-webui
PyTorch checkpoints загружаются с включённым restricted-режимом Ultralytics
(ULTRALYTICS_SAFE_LOAD=1). Используйте только модели из доверенных источников.
Датасеты
Для detect, segment, pose и obb укажите YAML-файл либо каталог со структурой
images/ + labels/. WebUI может детерминированно разделить такой каталог на
train/val. Для classify нужен готовый каталог с train и val/test, внутри
которых изображения разложены по классам; автоматическое detection-style разбиение
для этой задачи отключено.
MLflow
По умолчанию метаданные записываются в ./mlflow.db. Открыть интерфейс просмотра:
uv run mlflow ui --backend-store-uri sqlite:///mlflow.db
Затем откройте http://127.0.0.1:5000. Для внешнего tracking server укажите его URI
в настройках WebUI.
Для каждого завершённого запуска Ultralytics записывает в MLflow параметры,
поэпоховые метрики, графики, results.csv и checkpoints
weights/best.pt/weights/last.pt. SQLite-файл хранит tracking metadata, а сами
файлы находятся в MLflow Artifact Repository (локально — в ./mlruns). Это
артефакты запуска, а не версии MLflow Model Registry: raw YOLO checkpoint не имеет
стандартной MLflow MLmodel-упаковки.
Проверка интеграции на минимальных датасетах для всех пяти задач:
uv run scripts/run_yolo26_smoke_training.py --mlflow
uv run scripts/verify_mlflow_smoke.py
Второй скрипт завершается с ошибкой, если отсутствует experiment/run, параметры,
метрики, results.csv, best.pt или last.pt хотя бы для одной задачи.
Проверка
uv run pytest -q
node --check src/yolo_webui/static/app.js
docker compose config
Ultralytics распространяется по лицензии AGPL-3.0; для закрытых коммерческих продуктов проверьте условия Enterprise-лицензии Ultralytics.