Проєктування відтворюваних експериментів

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

Sinan Ozdemir

Data Scientist and Author

Відтворювані експерименти

  • Забезпечують точність і надійність.
  • Легше відтворювати результати.
  • Сприяють кращій співпраці.
  • Допомагають зменшити упередженість у моделях ML.
  • Підсилюють цілісність дослідження.
Розроблення моделей машинного навчання для продакшну

MLflow

Платформа з відкритим кодом для відстеження й керування експериментами з машинного навчання. MLflow дає змогу:

  • Створювати відтворювані ML-пайплайни
  • Відстежувати та керувати:
    • залежностями пакетів
    • версіями коду
    • налаштуваннями експериментів
  • Дозволяє багатьом користувачам отримувати доступ до експериментів

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 можна використовувати для логування, зберігання й порівняння версій моделей
  • Відтворення всього ML-пайплайна
  • Використовується для порівняння моделей
  • Забезпечує точність і надійність моделей

storage

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

Відтворюваність експериментів

  • Відстеження й логування вхідних даних, коду та налаштувань
  • Відтворення всього ML-пайплайна
  • Формування довіри до результатів моделей машинного навчання
  • Дозволяє іншим перевірити й розвивати роботу
  • Забезпечує сталi результати між запусками

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

Повертаємось до документації

  • Документація є ключовою для відтворюваного ML і має містити:
    • Вхідні дані моделей.
    • Код, використаний для створення моделей.
    • Будь-які налаштування експерименту.
    • Результати експерименту (яку модель обрано тощо)
  • Документація має бути доступною
  • Це повний запис експерименту
Розроблення моделей машинного навчання для продакшну

Давайте потренуємось!

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

Preparing Video For Download...