Как вести учёт ML-экспериментов, например в MLflow?
- Зачем нужен MLflow?
- Что такое реестр моделей?
Трекинг экспериментов хранит для каждого запуска параметры, метрики (в том числе по эпохам), артефакты (модель, графики, отчёт), теги (коммит, версия данных) — и позволяет сравнивать запуски в интерфейсе. Реестр моделей хранит версии моделей со стадиями (кандидат, продакшен, архив), из него сервис берёт нужную версию. Инструменты: MLflow, Weights & Biases, ClearML.
- Автологирование для sklearn, PyTorch, бустинга — минимум кода
- Без трекинга лучшая модель живёт в названии файла final_v3_new.pkl
- Реестр связывает модель в продакшене с запуском, данными и кодом
А ещё Логировать и неудачные эксперименты — они экономят время команде
Подробно
Пример:
import mlflow
mlflow.set_experiment("churn")
with mlflow.start_run():
mlflow.log_params({"depth": 6, "lr": 0.05})
model.fit(X_train, y_train)
mlflow.log_metric("pr_auc", pr_auc(model, X_val, y_val))
mlflow.sklearn.log_model(model, "model",
registered_model_name="churn")
Процесс в команде: у каждого эксперимента — гипотеза в описании; сравнение с базовой линией; перевод модели в продакшен — через реестр после проверки.
Что хотят услышать
- Что логировать: параметры, метрики, артефакты, теги.
- Сравнение запусков.
- Реестр моделей и связь с продакшеном.
Проверьте себя
Один верный вариант. Подумайте, потом откройте ответ.
Показать варианты и ответ
- ✗MLflow нужен только для развёртывания моделей в Kubernetes
- ✗Достаточно хранить лучшую модель в файле с понятным названием
- ✓Параметры, метрики и артефакты каждого запуска; реестр версий моделей
- ✗Логировать стоит только удачные эксперименты
Связанные вопросы
Разбор собеседования с sotto
После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.