Мониторинг входных данных производственной модели машинного обучения практически и эффективно в отсутствие достоверных данных

ОБНОВЛЕНИЕ: у меня была возможность представить и записать принципы здесь, на конференции MLOps World NYC 30.03.22. Если вы предпочитаете словесную обработку изложенного ниже материала, вот запись.

В реальных приложениях мониторинга ML мы хотим определить, хорошо ли работает модель ML или нет. Игнорирование плохой производительности модели может привести к плохим или даже предвзятым прогнозам, что может привести к потере доходов и даже PR-огням, которые мы наблюдаем из года в год даже от крупных технологических компаний, от систем распознавания лиц, которые не могут уловить некоторые меньшинства. ненавидеть язык в автозаполнении для поисковых систем.

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

Обзор

Зачем нам нужен дрейф данных?

Стандартный подход к мониторингу моделей основан на показателях производительности, т. е. точности/точности/отзыве/f-оценке, за некоторый период времени или от партии к партии. Чтобы получить эти показатели, нам нужны как прогнозы, так и метки истинности для точек данных, например. модель кредитного риска предсказывает, что человек выплатит свой кредит вовремя в течение 1 года и, следовательно, должен быть одобрен для получения кредитной карты, и мы знаем, выплатил ли этот человек свой кредит вовремя в течение 1 года. У нас уже есть проблема, потому что мы не узнаем правду до 1 года спустя.

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

Что такое дрейф данных?

Дрейф данных принципиально измеряет изменение статистического распределения между двумя распределениями, обычно с одним и тем же признаком, но в разные моменты времени. Например, в одномерном случае, когда мы смотрим на одну входную функцию, мы должны разумно ожидать, что если форма функции значительно изменится между временем обучения и временем прогнозирования, качество выходных данных модели ухудшится.

В качестве игрушечного примера: если мы обучаем модель машинного обучения решать математические задачи только по вопросам алгебры, а вопросы по геометрии внезапно загружаются в модель во время прогнозирования, мы ожидаем, что прогнозы будут довольно плохими, поскольку модель не не обучены вопросам геометрии.

По сути, дрейф данных является прокси для наших классических показателей производительности в отсутствие меток достоверности. Следующий естественный вопрос заключается в том, как формально измерить дрейф данных.

Обзор показателей дрейфа данных

Существует множество различных метрик, которые мы могли бы использовать для количественной оценки дрейфа данных. Здесь мы сосредоточимся на двух популярных семействах метрик: f-дивергенции и метриках проверки гипотез. В первом случае мы рассмотрим KL Divergence и PSI. Для последнего мы рассмотрим статистику тестов Chi-Squared и KS.

Для любых показателей дрейфа P – это обучающие данные (эталонный набор), на которых обучалась модель машинного обучения, а Q – это данные, на которых модель выполняет прогнозы (выводной набор), которые могут быть определены в скользящем временном окне для потоковых моделей или на пакетной основе для пакетных моделей.

КЛ Дивергенция

Если вам нужен краткий обзор, я нашел этот вводный пост очень полезным.

KL Расхождение от P до Q интерпретируется как количество информации, которую мы ожидаем потерять при использовании Q вместо P > для моделирования данных X, дискретизированных по вероятностному пространству K. Дивергенция KL не является симметричной, т. е. значение отличается, если P и Q поменяны местами, и не должно использоваться в качестве показателя расстояния.

Индекс стабильности населения (PSI)

Хотя дивергенция KL хорошо известна, она обычно используется в качестве упорядочивающего штрафного термина в генеративных моделях, таких как VAE. Более подходящей метрикой, которую можно использовать в качестве метрики расстояния, является индекс стабильности населения (PSI), который измеряет потерю данных, которые мы ожидаем потерять, от P до Q а затем из Q обратно в P.

Проверка гипотез

При проверке гипотез используются разные тесты в зависимости от того, является ли функция категориальной или непрерывной.

Для категориального признака с категориями K, т. е. K−1 — это степени свободы, где N_Pk и N_Qk — количество вхождений признака, являющегося k, где 1≤kK, для P и Q соответственно, тогда хи-квадрат тестовая статистика представляет собой сумму стандартизированных квадратов разностей ожидаемых значений между P и Q.

Для непрерывных признаков, где F_P и F_Q являются эмпирическими кумулятивными плотностями, для P и Q соответственно, критерий Колмогорова-Смирнова (KS) является непараметрическим, т.е. , тест, сравнивающий эмпирические кумулятивные функции плотности F_P и F_Q.

Зачем нужны автоматические пороги дрейфа?

Заставлять людей вручную просматривать метрики дрейфа, созданные моделью с течением времени или партиями, очевидно, утомительно и не идеально, и непосредственным вариантом использования метрик дрейфа будет установка предупреждений на основе некоторого порога, например. PSI превышает 0,3 для этой партии и должен создать предупреждение для проверки. Действия по исправлению могут заключаться в проверке того, не поврежден ли конвейер, который передает эту функцию в модель, не было ли недавнего ошибочного кода или изменения расчета, или действительно ли функция сместилась и предполагает, что модель необходимо переобучить.

Но откуда взялся этот .3? Установка произвольно подобранных порогов не является хорошим решением. Если порог слишком высок, оповещения, которые должны быть выведены, теперь игнорируются (больше ложных срабатываний). Если порог слишком низкий, теперь присутствуют предупреждения, которые не должны появляться (больше ложных срабатываний).

Универсальный постоянный порог не является надежным, поскольку этот порог должен зависеть от формы обучающих данных P. Если P является однородным и мы видим унимодальный Q, это значение дрейфа будет значительно меньше, чем если бы P был сильно унимодальным и центрировался в некоторые означают, что они далеки от того же Q, поскольку прежний P, который является однородным, менее надежен, если Q не происходит от P . Пример показан ниже.

Чтобы установить надежные пороговые значения, которые имеют смысл для системы оповещения, мы углубимся в то, как автоматизировать расчет таких пороговых значений. То есть мы хотим рекомендовать пороги дрейфа данных для создания оповещений, чтобы пользователям (а) не приходилось вручную устанавливать оповещения и (б) не нужно было определять, какое пороговое значение является хорошим.

Автоматические пороги дрейфа для метрик проверки гипотез

Для метрик проверки гипотез тривиальным решением будет установка пороговых значений на соответствующих критических значениях для каждого теста с использованием традиционного α = 0,05, т. е. 95% уверенности в том, что любая метрика гипотезы выше соответствующего критического значения предполагает значительный дрейф, где Q P скорее всего ложно.

Однако проверки гипотез имеют ограничения: от величины выборки, влияющей на значимость для критерия хи-квадрат до чувствительности в центре распределения, а не в хвостах для критерия KS.

По этим причинам важно изучить другие классы метрик дрейфа, такие как метрики f-дивергенции, и теперь мы рассмотрим способы автоматизации порогов дрейфа f-дивергенции.

Автоматические пороги дрейфа V1: начальная загрузка

Обзор

(1) Для большого количества симуляций, индексированных по i, для заданного входного признака запустите выборку m раз, где m достаточно велико. , из эталонного набора P и построить распределение вывода Qᵢ*, которое представляет то, что мы ожидали бы, если бы наши данные действительно поступали из P через симуляцию. Затем мы вычисляем и отслеживаем дрейф данных f(P, Qᵢ*) для каждой симуляции.

(2) Мы устанавливаем порог дрейфа данных равным консервативному значению max_i(f(P, Qᵢ*)), которое по сути является критическим значением/отсечкой, где α → 0 в традиционных статистических настройках. , т. е. мы на 99,999 % уверены в том, что значение отклонения данных от фактического Q, т. е. кванта времени или пакета логического вывода, выше порогового значения, означает, что данные логического вывода не были производится из того же базового дистрибутива, что и P. Если получение ложных срабатываний не требует больших затрат, то мы могли бы вместо этого установить порог на 95% процентиль f(P, Qᵢ*) в традиционной односторонней настройке α = 0,05.

Ограничения начальной загрузки

Начальная загрузка привлекательна тем, что она основана на моделировании и не требует распространения, но этот метод не масштабируется из-за двух проблем.

(1) Запуск симуляций для каждой функции в модели требует больших вычислительных ресурсов. В частности, время выполнения для каждой модели будет O(n_features*n_categories_per_feature*n_metrics*n_simulations).

(2) Предположение о стабильности выборки нарушается при меньших размерах выборки.

В качестве игрового примера предположим, что у нас есть красные, белые, синие и оранжевые шарики в P, распределенные равномерно. Давайте теперь представим Q размера 3; невозможно сказать, произошло ли Q от P или нет, поскольку мы не можем представить все четыре цвета. Даже если бы мы взяли пробы из 6 шариков, мы не смогли бы точно аппроксимировать 1/4 для каждой категории, учитывая эти 6 шариков.

Пусть m будет количеством моделируемых точек данных в каждой модели для создания Qᵢ*. В том же игрушечном примере с шариками нестабильность выборки вызывает искусственно завышенную неопределенность (и, следовательно, искусственно завышенные пороги дрейфа данных), когда m низкое, поскольку P не было тщательно отобрано и представлены в Qᵢ*.

Чтобы решить проблему (2), нужно создать смоделированные пороговые кривые для данной функции, варьируя m, но теперь мы усугубили проблему (1), умножив время выполнения на m. . У нас также теперь есть проблемы со сложностью пространства, поскольку теперь нам придется хранить пороговые значения в поиске (базе данных или кеше) для использования в нижестоящих приложениях, таких как служба предупреждений, создающая правила предупреждений, или кеш службы запросов. Отказ от дополнительной памяти и имитация пороговой кривой во время запроса также не вариант, поскольку запрос займет слишком много времени для большинства приложений, с которыми сталкивается пользователь.

Короче говоря, компромисс использования гибкой настройки симуляции не стоит вычислительных затрат при учете корректирующих кривых, которые либо (а) необходимо хранить, что потребует больших затрат на хранение, либо взорвет кеш, или (b) моделировать во время запроса, что слишком медленно для приложений, ориентированных на пользователя.

Автоматические пороги дрейфа V2: статистика закрытой формы

Оказывается, мы можем ограничить пороги дрейфа данных одним махом, используя теорию вероятностей. Мы будем использовать стандартную теорию вероятностей, распределение Дирихле и разложения в ряд Тейлора первого порядка. Помните, что мы по-прежнему рассчитываем пороговые значения для каждой функции.

КЛ Дивергенция

Во-первых, пусть

Ссылочный набор P известен, а логический набор Q неизвестен. Интуитивно это просто означает, что мы наблюдали обучающие данные, используемые при создании нашей модели машинного обучения, и что мы задаем гипотетический вопрос о том, каким может быть дрейф данных для некоторого гипотетического набора логических выводов Q в будущее. Формально,

2-я строка: Линейность ожидания и условная вероятность.

3-я строка: Q∼ Dirchlet(α), т. е. Q моделирует распределение вероятностей и является многомерным обобщением бета-распределения. Таким образом, в этом случае мы можем использовать функцию дигаммы ψ.

α = (α_1, …, α_K) традиционно соответствует наблюдаемым вероятностям в категориях K для признака из Q, смещенным на небольшой константа, т. е. априорные подсчеты. Однако Q неизвестно, так как же нам получить правильные значения? Мы делаем это из P. В конце концов, весь смысл этого утверждения об ожиданиях состоит в том, чтобы количественно оценить средний дрейф, который мы ожидаем увидеть, если QP, и количество выше этого значения в фактический набор выводов означает, что у нас, вероятно, есть значительный дрейф, т. е. QP ложно.

Возвращаясь к α, мы можем использовать байесовскую равномерную априорную Q ∼ Дирихле(1_K) и обновить так, чтобы Q|P ∼ Дирихле(1_K + N_q * p_K), где N_q — количество точек данных в наборе для вывода Q и p_K соответствует известному K-мерному вектору вероятности для признака из P. Это многомерное обобщение бета-биномиальной сопряженности.

Таким образом, мы имеем,

Индекс стабильности населения

PSI становится немного сложнее, и нам нужно превзойти ожидания. Позволять

Затем

Вот шаги:

2-я строка: Линейность ожидания и подстановка результата на KL Divergence выше.

3-я строка: Линейность ожидания и условная вероятность.

4-я строка: Ожидание распределения Дирихле.

5-я строка: аппроксимация дельта-методом (см. приложение).

6-я строка: Ожидание распределения Дирихле.

7-я строка: Упрощение.

Проблемы версии 1 решены!

Обратите внимание, как мы решили две проблемы начальной загрузки.

(1) Нам не нужно беспокоиться о времени выполнения, поскольку эта форма представляет собой одноразовое решение, которое включает только подсчеты, и мы можем использовать приближение к дигамма-функции.

(2) Мы обрабатываем различные размеры выборки, используя настройку Байеса плюс псевдосчет для параметров Q.

Выполнение

Как мы реализуем это динамическое пороговое значение в рабочей среде? Хотя пороговые значения являются динамическими в зависимости от метрики и входящего набора выводов, все приведенные выше ожидания, обусловленные P, могут быть выражены в виде запросов SQL или пользовательских, но простых функций.

Дискретизация всех непрерывных признаков вместо сглаживания дискретных признаков была бы разумным компромиссом: хотя мы можем не уловить полностью непрерывный характер PиQ, мы избежать ресурсоемкой оценки плотности ядра при представлении P и Q в виде непрерывных распределений.

Подождите, а как насчет дисперсии?

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

В другой раз…

Мы также можем использовать разложения ряда Тейлора для верхней границы других показателей, таких как JS Divergence и Hellinger Distance.

Заключение

Вот и все на сегодня! Надеюсь, вы получили некоторое представление о том, как реализовать автоматические пороговые значения с вычислительной и вероятностной точек зрения! Мы внедряем такие системы в Arthur AI, и несколько уравнений могут иметь большое значение для качества обслуживания клиентов.

Удачного мониторинга!

Приложение: аппроксимации дельта-метода

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

log(X) Приближение

Путем разложения в ряд Тейлора первого порядка вокруг среднего значения

Используя это приближение, мы имеем

и

с неравенством Коши-Шварца.

Хлог(Х)

Путем разложения в ряд Тейлора первого порядка вокруг среднего значения

Используя это приближение, мы имеем

и сдача

у нас есть

с неравенством Коши-Шварца.