Мне всегда нравились новые технологии и все эти крутые словечки типа «машинное обучение», «большие языковые модели», «компьютерное зрение», «генеративные модели» и т. д.
В недалекие ковидные времена я попал в команду тогда еще Сберклауда в командy ML Space где пилилась платформа для дата‑сатанистов, там были и подключения к GPU посредством 2 строчек кода, инференс моделей, автомл и т. д. С этого времени начался мой путь в ML
Еще стоит отметить что мое хобби — это монтаж видео и всякого рода доски, так что примеры будут про CV модели, так и нагляднее и прикольнее я считаю)
Let's label & train
В начале я разметил небольшой датасет на Roboflow с лейблом где в кадре находится скейтборд и пакман и разделил картинки раскидав их по папочкам train‑test‑val

Проходим в раздел dataset и видим разбивку.
Тренировать будем YOLO

MLFlow

Не зря его называют стандартом трекинга метрик машинного обучения. Импортируем библиотеку mlflow и заводим командой mlflow server --backend-store-uri runs/mlflow
. Так как тренировать мы детекцию объектов архитектуры YOLOv11 то импортируем и библиотеку ultralytics тоже + добавим библиотеку onnx для экспорта с формат ONNX.
from ultralytics
import YOLO
import mlflow
import onnx
model = YOLO('yolo11s.pt')
results = model.train(
data='/CV_Project/skatedataset/data.yaml',
epochs=10
imgsz=640
)
#экпорт в формат ONNX.
model.export(format='onnx')
Далее по шаблону с ultralytics тренируем нашу модель на заранее размеченных lданных c Roboflow


Открываем MLFlow http://127.0.0.1:5000/ и кликаем на вкладку Experiments (Видим там появился путь /Shared/Ultralytics )

Можно выбрать несколько прогонов (runs) для оценки их эффективности и принятия решений о выборе оптимальной модели или настроек.


Сравнивая их, можно провести глубокий анализ различий между подходами, используемых параметрах, результатах обучения и оценке производительности моделей.

MLflow поддерживает построение графиков, отображающих эволюцию метрик (например, потерю или точность) на разных этапах обучения. Сравнение нескольких экспериментов на одном графике даёт четкое представление о прогрессе каждого подхода.
Переходим во вкладку Model metrics где можно посмотреть важные характеристики (гиперпараметры, метрики, артефакты), что очень удобно анализировать результаты и принимать обоснованные решения о дальнейшем развитии модели.

Далее перейдем во вкладку Artifacts и посмотрим на результаты нашего обучения более наглядно. Представленные здесь визуализации и численные показатели, мы сможем оценить эффективность нашей модели а также выявить возможные проблемы.

Эта страница позволяет нам лучше понять поведение модели и сделать выводы о том, насколько успешно наша модель справляется с поставленной задачей

Также стоить отметить что в интеграции YOLO от Ultralytics отсутствует возможность регистрации модели через GUI MLFlow,об этом пишется в данном обсуждении на гитхабе — https://github.com/ultralytics/ultralytics/issues/8214 — так что для дальнейших манипуляций с моделью экспортируем ее в формат ONNX.
Tensorboard
Мощный инструмент визуализации и анализа обучения модели, в обучении с YOLO11 запускается автоматом посредством команды yolo settings tensorboard=True
и открывается локально на localhost на порту 6006.

После очередного прогона обучения нашей модели переходим по ссылке и открываем удобный интерфейс, который позволяет наблюдать за процессом обучения модели, отслеживать изменения метрик производительности и т. д.
Вкладка — Time Series
Она полезна для изучения динамических изменений метрических величин, зависящих от времени, и их анализа на протяжении всего обучения. Одновременно отображаются несколько серий (train_loss и val_loss). Как и в разделе Scalars, здесь доступно сглаживание графиков, что позволяет легче воспринимать общую тенденцию изменения метрик, что заметно улучшает понимание того, как меняется состояние модели во времени и позволяет находить причины ошибки или колебания в показателях.

Переходим на вкладку Scalars, здесь можно следить за такими важными показателями, как потери (loss), точность (accuracy), скорость обучения (learning rate). Можно легко сравнивать показатели разных экспериментов друг с другом. Например, полезно посмотреть разницу в обучении одной и той же модели на разных датасетах или с разными параметрами. В данном окне можно обнаружить признаки переобучения, можно даде одновременно смотреть на loss‑кривые тренировочных и валидных данных.
Также есть возможность экспорта сырых данных выбранного графика в.CSV файл для дальнейшего анализа вне TensorBoard.

Переходим во вкладку — Отображение структуры — Graphs:

Графику можно увеличивать и перемещать, чтобы исследовать конкретные части модели. Это полезно, если архитектура сложная и включает многоуровневые подсистемы, когда используются многослойные и вложенные архитектуры, вкладка позволяет быстро разобраться в структуре каждой подграфа и проследить зависимости между узлами.

При обучении больших моделей можно видеть всю иерархию сверток, слоев и функций активации, проверить, а таже правильность соединений между ними.
Итак, подведем итог обзора 2-ух трекеров
MLflow — это прям как книга учёта экспериментов. Каждый раз, когда ты проводишь исследование, ты аккуратно заносишь туда всё подряд: дату, название модели, версию данных и этой модели, какой был алгоритм и даже ссылку на сам код скрипта. А ещё — ставишь оценки: получилось хорошо или нет, сохранился результат или оказался неудачным. Ты знаешь, как было сделано исследование, что использовалось и почему получился именно этот результат. Отлично подходит для командной разработки.
Минусы — неудобный интерфейс и настройка более трудная, даже с помощью ultralytics
TensorBoard — это прям как стикеры, где ты расклеиваешь заметки о результатах твоих прогонов моделей. Каждая заметка‑стикер показывает красивые графики, таблицы и картинки. Можно быстро увидеть прогресс своего исследования, оценить качество своей модели и сравнить, как она работала раньше и сейчас. Почему это круто: Всё становится ясно буквально одним взглядом. Прекрасно подходит для быстрого анализа происходящего и понимания общих тенденций.
Минусы — Доска не следит за деталями — какая была версия твоей модели, какие были входные данные, какой конкретно компьютер использовался и какие библиотеки стояли. Она просто показывает красивую картинку, но ничего не сохраняет.
Лучший подход — комбинировать оба инструмента. Пусть TensorBoard покажет красивую картину, а MLflow запишет важные детали.
Cсылка на детекцию видео — https://cloud.mail.ru/public/D5kL/bAnrRrL4U
Оригинальное видео