Машинное обучение — это не только про обучение моделей, но и про постоянные эксперименты. Вы запускаете код снова и снова, меняете параметры, выбираете лучшую метрику… и через пару дней уже не помните, какой именно эксперимент дал хороший результат.
В этом гайде мы за 15 минут постараемся научить вас отслеживать параметры и метрики с использованием MLflow — без сложностей и лишней теории. Всё максимально просто: базовая модель, понятный код и наглядный интерфейс.
Что нужно установить?
Если у вас уже стоит Python (3.7–3.11) и pip, всё очень просто. Открывайте терминал и пишите:
pip install mlflow scikit-learn pandas
Использование этих библиотек достаточно для первого эксперимента.
Пишем простую модель
Возьмём классическую задачу классификации: определим, относится ли цветок ириса к определённому виду. Создаём файл mlflow_demo.py со следующим кодом:
*import mlflow*
*import mlflow.sklearn*
*from sklearn.datasets import load_iris*
*from sklearn.linear_model import LogisticRegression*
*from sklearn.model_selection import train_test_split*
*from sklearn.metrics import accuracy_score*
*# Загружаем данные*
*iris = load_iris()*
*X = iris.data*
*y = iris.target*
*# Разбиваем на обучающую и тестовую выборки*
*X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=42)*
*# Задаём параметр модели*
*C_param = 1.0*
*# Начинаем трекинг эксперимента*
*with mlflow.start_run():*
*model = LogisticRegression(C=C_param, max_iter=200)*
*model.fit(X_train, y_train)*
*preds = model.predict(X_test)*
*acc = accuracy_score(y_test, preds)*
*# Логируем параметр и метрику*
*mlflow.log_param("C", C_param)*
*mlflow.log_metric("accuracy", acc)*
*# Сохраняем саму модель*
*mlflow.sklearn.log_model(model, "model")*
*print(f"Accuracy: {acc:.4f}")*
Смотрим результаты в MLflow UI
Теперь самое интересное — как посмотреть логи?
После запуска скрипта (bash) python mlflow_demo.py мы получим вывод вроде: (makefile) Accuracy: 1.0000
Далее запускаем интерфейс MLflow mlflow ui, открываем браузер и переходим по адресу: http://localhost:5000
Теперь можно пробовать другие параметры (например, C=0.1, C=10) и отслеживать, что работает лучше, добавлять другие метрики (precision, f1, recall), загружать и использовать сохранённую модель в другом скрипте., настроить удалённый MLflow-сервер (когда будешь работать в команде).
Советы по хорошему трекингу экспериментов
Когда вы начинаете логировать эксперименты, важно не просто «сложить всё в MLflow», а делать это с умом. Не нужно логировать каждый внутренний параметр модели. Начните с базового: learning rate, количество эпох, размер батча, коэффициенты регуляризации. Это упростит сравнение экспериментов.
MLflow позволяет указывать имя запуска (run name). Если вы добавляете mlflow.start_run(run_name=»lr=0.01, C=1.0″), будет проще ориентироваться в интерфейсе.
Еще можно сохранять артефакты. Это могут быть графики обучения (loss vs epoch), confusion matrix, файл с настройками. Они помогают визуально понять, как вёл себя конкретный запуск.
*import matplotlib.pyplot as plt*
*from sklearn.metrics import ConfusionMatrixDisplay*
*disp = ConfusionMatrixDisplay.from_predictions(y_test, preds)*
*plt.savefig("conf_matrix.png")*
*mlflow.log_artifact("conf_matrix.png")*
С помощью mlflow.set_tag() вы можете добавить к запуску, например, имя разработчика, версию датасета или тип модели. Это особенно полезно при командной работе или долгосрочных проектах.
Вывод
MLflow — мощный инструмент, который можно освоить за вечер.
Даже с минимальным кодом вы уже получаете историю запусков, видимые метрики, повторяемость результатов и простое управление моделями
А главное — больше никакой путаницы с экспериментами. Всё чётко, прозрачно и красиво.
- Освой Perplexity и узнай, как пользоваться функционалом остальных ИИ в одном
- УЧАСТВОВАТЬ ЗА 0 РУБ.
- Расскажем, как получить подписку (240$) бесплатно
- ПОКАЖЕМ, КАК РАЗВЕРНУТЬ МОДЕЛЬ DEEPSEEK R1 ПРЯМО НА СВОЁМ КОМПЬЮТЕРЕ
