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

Разработка моделей машинного обучения для продакшена

Sinan Ozdemir

Data Scientist, Entrepreneur, and Author

Мажорное и минорное версионирование

Два типа версионирования: мажорное и минорное

  • Мажорная версия отражает значительное изменение данных или модели

  • Минорная версия отражает небольшое изменение

Мажорные и минорные версии позволяют отслеживать, как и что изменилось в данных или модели

Разработка моделей машинного обучения для продакшена

Версионирование обучающих данных

  • Уникальные мажорные/минорные метки или временны́е метки
  • Воспроизводимость и отслеживаемость экспериментов
  • Быстрый возврат к предыдущей версии данных
  • Просмотр истории изменений данных

Пример:

  1. Data V 1.0 — исходный набор данных
  2. Data V 1.1 — добавлены преобразования признаков
  3. Data V 1.2 — добавлен метод отбора признаков
  4. Data V 2.0 — включает принципиально новый источник данных
Разработка моделей машинного обучения для продакшена

Хранилища признаков

  • Централизованное хранилище для управления версиями признаков
  • Удобное отслеживание версий признаков
  • Использование признаков в разных экспериментах
  • Улучшение совместной работы и целостности экспериментов
  • Устранение дублирования работы
Разработка моделей машинного обучения для продакшена

Версионирование ML-моделей

  • Отслеживание различных версий ML-моделей
  • Воспроизводимость и отслеживаемость экспериментов
  • Быстрый откат к предыдущей версии модели
  • Как правило, соответствует версии обучающих данных, но не всегда

Пример:

  1. Model V 1.0 — исходная модель (Random Forest)
  2. Model V 1.1 — та же модель, дообученная на Data V 1.1
  3. Model V 2.0 — модель XGBoost, дообученная на Data V 1.2
  4. Model V 2.1 — модель XGBoost, дообученная на Data V 2.0
Разработка моделей машинного обучения для продакшена

Хранилища моделей

  • Централизованное хранилище для управления версиями моделей
  • Удобное отслеживание версий моделей
  • Откат к предыдущим версиям
Разработка моделей машинного обучения для продакшена

Пример версионирования модели с MLflow

import mlflow

# Start a new mlflow run
with mlflow.start_run() as run:
    # Log model version as a parameter
    mlflow.log_param("model_version", "1.0")

    # Train and save the model
    model = train_model()
    mlflow.sklearn.log_model(model, "model")
Разработка моделей машинного обучения для продакшена

Давайте потренируемся!

Разработка моделей машинного обучения для продакшена

Preparing Video For Download...