Тестування моделей

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

Sinan Ozdemir

Data Scientist, Entrepreneur, and Author

Індивідуальна vs групова справедливість

Індивідуальна справедливість

Схожих людей слід трактувати подібно.

  • Напр., надавати подібні вакансії людям із подібним досвідом.

Групова справедливість

Різні групи слід трактувати однаково.

  • Напр., не дискримінувати людей певних расових чи етнічних груп у моделях вступу до шкіл.
Розроблення моделей машинного навчання для продакшну

Holdout-тестування

  • Holdout-тестування перевіряє надійність моделі на окремому наборі даних
  • Оцінює роботу на невчених даних, як під час тренування
  • Виявляє перенавчання або недонавчання

роботи працюють з даними

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

Пошук зсуву моделі

Зсув концепції (concept drift)

  • Зміна взаємозв'язку між ознаками та відгуком
    • Напр., алгоритм аналізу тональності
      • Значення термінів може змінюватися (сказати, що щось "sick", означає добре)

Зсув передбачень (prediction drift)

  • Зміна розподілу передбачень моделі
    • Напр., тимчасовий збій підвищує намір "outage" у вашому чат-боті
    • Формально ніби «нічого не зламалось», але такий зсув може сповільнити відповіді для користувачів
Розроблення моделей машинного навчання для продакшну

Приклад пошуку зсуву моделі

Налаштування:

# Import necessary libraries and split data
X_train, X_test, y_train, y_test = ...

Навчання моделі:

# Train a classifier on the training data
clf = DecisionTreeClassifier(random_state=42)
clf.fit(X_train, y_train)

# Calculate the accuracy on test data
y_pred = clf.predict(X_test)
accuracy = accuracy_score(y_test, y_pred)
print(f"Accuracy: {accuracy}")

Перевірка на зсув згодом:

X_test_drift = X_test + 1.0  # Simulate data drift
# Calculate the accuracy on drifted data
y_pred_drift = clf.predict(X_test_drift)
accuracy_drift = accuracy_score(
    y_test, y_pred_drift)
print(f"Accuracy with drift: {accuracy_drift}")

# Drift detection threshold based on the accuracy
drift_threshold = accuracy * 0.9

# Check for drop in accuracy on the drifted data
if accuracy_drift < drift_threshold:
    print("Concept drift detected!")
else:
    print("No concept drift detected.")
Розроблення моделей машинного навчання для продакшну

Вартість складних моделей vs базових моделей

  • Складні моделі дорожчі й можуть знижувати ефективність
  • Latency — час обробки одного вводу для отримання передбачення
  • Throughput — кількість передбачень за одиницю часу
  • Тестуйте latency і throughput, щоб визначити прийнятну складність моделі
  • Мета — баланс між точністю й ефективністю
Розроблення моделей машинного навчання для продакшну

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

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

Preparing Video For Download...