Трекинг экспериментов с MLflow и DVC

При разработке моделей важно не только обучить модель, но и уметь:

  • отслеживать параметры обучения
  • сохранять метрики (точность, F1 и др.)
  • версионировать модели и датасеты
  • воспроизводить эксперименты

Для этого используются инструменты вроде MLflow и DVC.


Зачем нужен трекинг

Допустим, вы обучили три модели с разными параметрами. Какая из них лучше? Сколько эпох было? Какой learning_rate? Где лежит файл модели?

Без трекинга это всё теряется в коде и папках. С трекингом — у вас есть история всех запусков и чёткая структура.


MLflow: метрики, параметры, модели

MLflow позволяет:

  • логировать параметры (например, lrbatch_size)
  • логировать метрики (accuracyloss)
  • сохранять артефакты (модели, графики, словари)
  • запускать веб-интерфейс для просмотра экспериментов

Установка

pip install mlflow

Пример использования

import mlflow

mlflow.start_run()
mlflow.log_param("learning_rate", 0.001)
mlflow.log_metric("val_accuracy", 0.91)
mlflow.log_artifact("model.pt")
mlflow.end_run()

Веб-интерфейс

mlflow ui

Откроется на http://localhost:5000


DVC: версионирование данных и моделей

DVC (Data Version Control) — это как git, но для больших файлов.

С помощью DVC можно:

  • хранить датасеты и модели в облаке (или на диске)
  • логировать метрики в файле (metrics.json)
  • описывать весь пайплайн в dvc.yaml

Установка

pip install dvc

Пример

dvc init
dvc add data/ads.csv
git add data/ads.csv.dvc .gitignore
git commit -m "добавил датасет"

Теперь можно загрузить данные с помощью DVC и быть уверенным, что версии совпадают у всех участников проекта.


Когда использовать

Что нужноЧто выбрать
Логировать метрики и параметрыMLflow
Хранить и версионировать данныеDVC
Работать в команде над моделямиMLflow + DVC
Поддерживать полный ML-процессОба

Вывод

MLflow и DVC — это удобные и простые инструменты, которые помогают навести порядок в ML-проектах. Они не требуют большого порога входа, но дают много пользы: от логов и графиков до стабильной структуры версий и воспроизводимости.