Проектирование воспроизводимых экспериментов

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

Sinan Ozdemir

Data Scientist and Author

Воспроизводимые эксперименты

  • Обеспечивают точность и надёжность.
  • Упрощают воспроизведение результатов.
  • Способствуют совместной работе.
  • Снижают риск смещения в моделях МО.
  • Повышают достоверность исследований.
Разработка моделей машинного обучения для продакшена

MLflow

Платформа с открытым исходным кодом для отслеживания экспериментов МО и управления ими. MLflow позволяет:

  • Создавать воспроизводимые конвейеры МО
  • Отслеживать и управлять:
    • зависимостями пакетов
    • версиями кода
    • настройками экспериментов
  • Предоставлять доступ к экспериментам нескольким пользователям

mlflow

1 https://www.databricks.com/blog/2018/06/05/introducing-mlflow-an-open-source-machine-learning-platform.html
Разработка моделей машинного обучения для продакшена

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

# standard scikit-learn imports
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score

# new imports from MLflow
import mlflow
import mlflow.sklearn
Разработка моделей машинного обучения для продакшена

Пример использования MLflow (продолжение)

with mlflow.start_run():  # Start an MLflow run assuming we have data prepared

    # Build and train model
    rf = RandomForestClassifier()
    rf.fit(X_train, y_train)

    # Log parameters and model information
    mlflow.log_param("n_estimators", rf.n_estimators)
    mlflow.sklearn.log_model(rf, "model")

    y_pred = rf.predict(X_test)  # Evaluate model
    accuracy = accuracy_score(y_test, y_pred)
    mlflow.log_metric("accuracy", accuracy)  # log the test accuracy metric
Разработка моделей машинного обучения для продакшена

Отслеживание кода

  • Запись версий кода и изменений с помощью MLflow
  • Сравнение различных версий кода
  • Определение версии кода, использованной для получения конкретных результатов
  • Простое воспроизведение экспериментов
  • Упрощение отладки и устранения ошибок в коде
Разработка моделей машинного обучения для продакшена

Реестры моделей

  • Централизованное хранилище моделей и их метаданных
  • MLflow позволяет записывать, хранить и сравнивать версии моделей
  • Воспроизведение целых конвейеров МО
  • Сравнение моделей между собой
  • Обеспечение точности и надёжности моделей

хранилище

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

Воспроизводимость экспериментов

  • Отслеживание и запись входных данных, кода и настроек
  • Воспроизведение целых конвейеров МО
  • Повышение доверия к результатам моделей МО
  • Возможность проверки и развития результатов другими специалистами
  • Обеспечение согласованности результатов в разных запусках

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

Документация: возвращаемся к теме

  • Документация необходима для воспроизводимого МО и должна включать:
    • Входные данные моделей.
    • Код, использованный для создания моделей.
    • Настройки эксперимента.
    • Результаты эксперимента (выбранная модель и т. д.)
  • Документация должна быть доступна всем участникам
  • Должна представлять собой полную запись эксперимента
Разработка моделей машинного обучения для продакшена

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

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

Preparing Video For Download...