0Pricing
Learn AI with Python · Урок

Мониторинг производительности модели в продуктивной среде

Обнаружение дрейфа данных, признаки ухудшения модели, триггеры переобучения, библиотека evidently

«Мониторинг производительности модели в продуктивной среде» — бесплатный урок Learn AI with Python на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Learn AI with Python, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Learn AI with Python содержит 4 уроков всего.

Зачем нужен мониторинг в рабочей среде?

Модель, хорошо работавшая при запуске, может незаметно ухудшаться по мере изменения окружающего мира. Мониторинг заранее обнаруживает этот дрейф, пока он незаметно не ухудшил бизнес-метрики, и помогает понять, когда нужно переобучить модель.

Дрейф данных и дрейф концепции

  • Дрейф данных: изменяется распределение входных данных (например, меняется состав клиентов).
  • Дрейф концепции: изменяется связь между входными данными и целевой переменной (например, меняются признаки, предсказывающие отток клиентов).

Оба вида дрейфа снижают точность, но мониторинг обнаруживает их разными способами.

PSI для обнаружения дрейфа данных

Индекс стабильности совокупности (PSI) сравнивает распределение признака сейчас с базовым распределением. Разбейте оба распределения на интервалы, а затем просуммируйте по ним (now% - base%) * ln(now% / base%).

Интерпретация значений PSI

Практические ориентиры: PSI < 0.1 — значимого сдвига нет, 0.1-0.25 — умеренный сдвиг (требуется проверка), > 0.25 — значительный сдвиг (вероятно, нужно переобучение). PSI вычисляется отдельно для каждого признака.

import numpy as np

def psi(base, now, bins=10):
    edges = np.percentile(base, np.linspace(0, 100, bins + 1))
    b_pct = np.histogram(base, edges)[0] / len(base) + 1e-6
    n_pct = np.histogram(now, edges)[0] / len(now) + 1e-6
    return np.sum((n_pct - b_pct) * np.log(n_pct / b_pct))

Проверка KS для распределений

Критерий Колмогорова—Смирнова (KS) сравнивает два непрерывных распределения. Малое значение p означает, что распределение в рабочей среде существенно отличается от распределения при обучении, что сигнализирует о дрейфе.

from scipy.stats import ks_2samp

stat, pvalue = ks_2samp(train_feature, prod_feature)
if pvalue < 0.05:
    print("Distribution drift detected")

PSI и KS

  • PSI: одно понятное число, удобное для панелей мониторинга и пороговых значений.
  • KS: статистическая проверка гипотез со значением p, более строгая для непрерывных признаков.

Многие команды приводят обе метрики рядом.

Что такое Evidently?

Evidently — это библиотека с открытым исходным кодом, автоматизирующая создание отчётов о дрейфе и качестве. Вместо того чтобы вручную программировать каждую метрику, Вы собираете готовые проверки и получаете отчёт в формате HTML/JSON.

# pip install evidently
from evidently.report import Report
from evidently.metric_preset import DataDriftPreset

Создание отчёта DataDriftPreset

DataDriftPreset выполняет полный набор проверок дрейфа по всем столбцам, сравнивая эталонный набор данных (для обучения) с текущими данными (из рабочей среды).

report = Report(metrics=[DataDriftPreset()])
report.run(
    reference_data=train_df,
    current_data=prod_df
)
report.save_html("drift_report.html")

Программное извлечение результатов

Экспортируйте отчёт в виде словаря, чтобы передать его логике оповещений и запускать мониторинг автоматически по расписанию.

result = report.as_dict()
drift_share = result["metrics"][0]["result"]["dataset_drift"]
print("Dataset drift flag:", drift_share)

Оповещение о снижении точности

Если у Вас есть истинные метки, отслеживайте точность в рабочей среде и отправляйте оповещение, когда она опускается ниже порога. Это самый прямой сигнал о том, что переобучение уже необходимо.

THRESHOLD = 0.85

if live_accuracy < THRESHOLD:
    send_alert(f"Accuracy dropped to {live_accuracy:.2f}")

Замыкание цикла

Хороший мониторинг приводит к действиям: обнаружить дрейф -> отправить оповещение -> запустить конвейер переобучения (ваш файл сборки и реестр из предыдущих уроков) -> развернуть новую версию. Мониторинг без плана реагирования — это всего лишь шум.

Быстрая проверка

Проверьте свои знания о мониторинге.

Повторение

Вы отслеживали рабочие модели: PSI и проверка KS обнаруживают дрейф данных, Evidently автоматизирует отчёты с помощью DataDriftPreset, а при падении точности ниже порога Вы отправляете оповещение, после чего запускаете переобучение. На этом курс по эксплуатации моделей машинного обучения завершён. Следующий курс: обслуживание моделей ИИ с помощью FastAPI.

Часто задаваемые вопросы

Урок «Мониторинг производительности модели в продуктивной среде» бесплатный?

Да — полный текст урока «Мониторинг производительности модели в продуктивной среде» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Learn AI with Python, подпишись на CoddyKit PRO. Курс Learn AI with Python содержит 4 уроков всего.

Чему я научусь в уроке «Мониторинг производительности модели в продуктивной среде»?

Обнаружение дрейфа данных, признаки ухудшения модели, триггеры переобучения, библиотека evidently Ты практикуешь Learn AI with Python с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Learn AI with Python?

Предыдущий опыт не требуется. Learn AI with Python на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.

Сколько времени занимает урок «Мониторинг производительности модели в продуктивной среде»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Learn AI with Python?

Да. Каждый урок Learn AI with Python включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Отслеживание экспериментов с MLflow
  2. Реестр моделей и управление версиями
  3. Создание воспроизводимых конвейеров машинного обучения
  4. Мониторинг производительности модели в продуктивной среде
← Назад к Learn AI with Python