Содержание

  1. Представляем MLOps
  2. Компоненты MLOps
  3. Введение в дрейф данных и дрейф концепций
  4. Типы заносов
  5. Методы обнаружения дрейфа
  6. Действия при возникновении дрейфа
  7. Способы справиться с дрейфом в производстве

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

Представляем MLOps

MLOps — это сокращение от Machine Learning Operations. MLOps — это базовый компонент инженерии машинного обучения, который фокусируется на оптимизации процесса развертывания моделей машинного обучения, а также их последующем обслуживании и мониторинге. MLOps — это ценный метод для разработки и улучшения качества решений для машинного обучения и искусственного интеллекта. Интегрируя процедуры непрерывной интеграции и развертывания (CI/CD) с адекватным мониторингом, проверкой и управлением моделями машинного обучения, специалисты по данным и инженеры по машинному обучению могут сотрудничать и ускорять разработку и производство моделей, используя стратегию MLOps.

Потребность в MLOps очевидна сейчас, поскольку коммерциализировать решения для машинного обучения сложно. Жизненный цикл машинного обучения включает в себя множество сложных компонентов, включая сбор данных, подготовку данных, обучение модели, настройку модели, развертывание модели, мониторинг модели, объяснимость и многое другое. Это также требует взаимодействия между командами и передачи полномочий, от проектирования данных до науки о данных и проектирования машинного обучения. Для поддержания всех этих процессов синхронизированными и работающими в унисон требуется высокая операционная строгость. MLOps помогает в экспериментах, итерациях и постоянном улучшении жизненного цикла машинного обучения.

Некоторые из преимуществ MLOps:

a) Эффективность: MLOps позволяет специалистам по работе с данными быстрее разрабатывать модели, предлагать более качественные модели машинного обучения, а также быстрее развертывать и создавать модели.

b) Масштабируемость: MLOps также обеспечивает высокую масштабируемость и управление, позволяя наблюдать, контролировать, управлять и отслеживать тысячи моделей для непрерывной интеграции, непрерывной доставки и непрерывного развертывания. MLOps, в частности, обеспечивает повторяемость конвейеров машинного обучения, обеспечивая более тесное сотрудничество между группами обработки данных, уменьшая конфликты с DevOps и ИТ и ускоряя скорость выпуска.

c) Снижение риска: модели машинного обучения часто требуют нормативного контроля и проверки дрейфа, а MLOps обеспечивает большую прозрачность и более быстрое реагирование на такие запросы, а также более высокое соответствие правилам организации или отрасли.

Компоненты MLOps

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

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

Обучение и настройка модели. Для обучения и повышения производительности модели используйте популярные инструменты с открытым исходным кодом, такие как scikit-learn, TensorFlow и PyTorch. Используйте автоматизированные методы машинного обучения, такие как AutoML, для выполнения пробных запусков и создания кода, пригодного для проверки и развертывания, в качестве более простого варианта.

Проверка и управление моделью — включает в себя отслеживание происхождения и версий модели, а также управление объектами модели и переходами на протяжении всего их существования. Используя платформу MLOps с открытым исходным кодом, такую ​​как MLflow, вы можете обнаруживать, совместно использовать и совместно работать над моделями ML.

Вывод модели и обслуживание. Управляйте частотой обновления модели, временем запроса на вывод и другими особенностями тестирования и контроля качества. Чтобы автоматизировать рабочий процесс подготовки к производству, используйте технологии CI/CD.

Развертывание и мониторинг моделей. Автоматизируйте разрешения и создание кластера, чтобы зарегистрированные модели были готовы к работе. Разрешить включение конечных точек модели REST API.

Автоматизированное переобучение модели. Создавайте предупреждения и автоматизируйте действия по устранению дрейфа модели из-за расхождений в данных обучения и логического вывода.

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

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

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

2. Сбор данных: мы собираем изображения сумок, часов и обуви различных брендов, а также собираем цены на эти товары. Мы также сосредоточимся на подготовке чистого набора данных для работы на этом этапе.

3. Моделирование: мы продолжим писать код для различных сверточных нейронных сетей, чтобы классифицировать бренд продукта и написать код для регрессии изображений. Предположим, что DenseNet201 работает лучше всех моделей. Затем мы проверим результаты и проверим, как модель работает с различными подмножествами наших данных, и мы обнаружим, что модель не может хорошо работать с сумками Louis Vitton. Вместо того, чтобы переходить к развертыванию, мы вернемся к сбору данных о сумках Louis Vitton и проверим производительность модели. После этого, если нас устраивает производительность модели, мы приступим к ее развертыванию.

4. Развертывание: после развертывания модель какое-то время работает нормально, но во время мониторинга точность падает. Это может произойти из-за Data Drift (в этой статье мы подробно обсудим Data Drift/Concept Drift позже). Тем не менее, мы можем вернуться к этапу моделирования или сбора данных, так как он работает не очень хорошо.

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

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

Давайте рассмотрим сценарий, в котором вы разработали модель, которая предсказывает цену и марку изображения продукта, и она имеет отличную производительность. Для простоты метрикой производительности является точность классификации, RMSE для регрессии, и ваша модель имеет точность 89% со RMSE 400 $. Однако через несколько месяцев после развертывания ваша модель работает плохо. Производительность упала до 70%, а RMSE значительно увеличился. Означает ли это, что наша модель неверна? Не обязательно; Дрейф данных вызывает эту ситуацию.

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

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

1. Неадекватная выборка обучающих данных

2. Основная деловая ситуация изменилась.

Типы заносов

Дрейф класса: дрейф класса происходит, когда апостериорные вероятности класса P(Y | X) колеблются. Это также известно как дрейф фактической концепции или сдвиг априорной вероятности. Например, проблемы со здоровьем пациентов могут меняться со временем, что приводит к изменению набора атрибутов здоровья, связанных с целевой переменной. Дрейф класса далее подразделяется на две категории в зависимости от степени дрейфа. Масштаб дрейфа, также известный как серьезность дрейфа, представляет собой долю области X, для которой изменяется P(Y | X). Масштаб дрейфа влияет на то, насколько легко определить изменения в потоке и какую часть модели необходимо обновить. Дрейф подпонятий, также известный как пересекающийся дрейф, происходит, когда область дрейфа ограничена подпространством X. Например, поток данных, связанный с записями вирусов, может иметь, среди прочего, класс «вирус». Если будет разработана новая форма вируса, условные вероятности появления класса вируса изменятся, но только для тех контекстов, которые относятся к новой форме вируса. Пока это происходит, случаи, связанные с другими формами вируса, могут оставаться такими же и могут продолжаться так же, как и раньше. Дрейф полной концепции, также известный как серьезный дрейф, происходит, когда изменяется апостериорное распределение классов для всех категорий объектов.

Дрейф ковариат: в литературе дрейф ковариат, также известный как дрейф виртуального понятия, происходит, когда распределение неклассовых свойств, P(X), меняется со временем. Рассмотрим компанию, которая прогнозирует поведение клиентов на основе социально-экономических данных. Демография клиентской базы может меняться со временем, что приводит к изменению вероятности каждого демографического элемента.

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

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

Частота дрейфа.Частота, с которой происходит дрейф понятий в течение определенного периода, называется частотой дрейфа. Высокая частота предполагает, что дрейф свежих идей начинается в течение короткого периода времени друг от друга, тогда как низкая частота показывает, что дрейф происходит через длительные интервалы.

Длительность дрейфа: когда поток с концептом X резко трансформируется в концепт X+y, это резкий дрейф. Крах рынка — реальный пример внезапного дрейфа. Почти мгновенно в потоке фондового рынка цены на акции изменятся и будут следовать модели, отличной от той, что была раньше. Блип-дрейф — это частный случай резкого дрейфа в сочетании с очень короткой продолжительностью концепции. При дрейфе вспышек концепция всплеска заменяет доминирующую концепцию на очень короткий период — например, в ситуации, подобной распродаже в Черную пятницу. Существует также расширенный дрифт. Рецессия — реальный пример длительного дрейфа. В отличие от рыночного краха, стоимость акций в начале рецессии будет постепенно колебаться с течением времени. В конце концов, движения всех цен на акции будут следовать иной схеме, чем до начала кризиса.

Дрейфовый переход. Если происходит постепенный переход от концепции X к концепции X+y в течение заданного периода времени, мы называем это постепенным дрейфом. Если после каждого шага расстояние между концепцией X и концепцией X+y уменьшается, если наблюдается устойчивое продвижение к новой концепции, мы называем это постепенным дрейфом. Более того, вероятностный дрейф возникает, когда сосуществуют две чередующиеся концепции, причем одна изначально преобладает, а другая постепенно берет на себя управление. Когда узел сенсорной сети заменяется, поток испытывает вероятностный дрейф. Узел не может быть переключен мгновенно; сменный узел необходимо проверить, чтобы убедиться в его работоспособности. В результате два узла будут включаться и выключаться по мере выполнения тестов. Что касается потока сенсорной сети, то с этого узла поступают образцы из двух отдельных концепций, одна из неисправного узла, а другая из нового узла. Вероятность появления данных из нового узла в потоке будет увеличиваться, пока не останется только концепция из нового узла.

Повторение дрейфа. Если конкретная ранее существовавшая концепция неоднократно влияет на текущую концепцию, это будет называться повторением дрейфа. Приложение для телефона может быть реальным примером повторяющегося дрейфа. Когда человек использует определенную программу дома, он может использовать ее не так, как на работе. Концепции, которые будут повторяться, будут использоваться дома и в бизнесе. Эти принципы использования приложений повторялись каждый раз, когда пользователь приходил домой или на работу. Циклический дрейф — это форма повторяющегося дрейфа, возникающая, когда два или более понятия повторяются в определенном порядке. Циклические дрейфы могут иметь фиксированную продолжительность, если цикл повторяется в течение фиксированной или переменной продолжительности. Когда для завершения цикла требуется постоянная продолжительность времени, это называется дрейфом циклической концепции фиксированной частоты. Например, цикл времен года должен завершиться за 365,24 дня. Циклический дрейф с фиксированной продолжительностью концепции происходит, когда каждый период стабильности длится определенный период времени. Циклический дрейф с фиксированной продолжительностью дрейфа происходит, когда каждый эпизод дрейфа длится определенное время. Циклический дрейф с фиксированным началом концепции происходит, когда начало стабильного периода происходит в определенный момент каждого цикла.

Методы обнаружения дрейфа

А) Статистические подходы

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

  1. Метод Пейджа-Хинкли

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

2. Тест Колмогорова-Смирнова

Все мы знаем о Т-критерии Стьюдента, который говорит нам, насколько вероятны выборки из одного и того же распределения. T-критерий Стьюдента дает нам P-значение, с помощью которого мы либо отвергаем нулевую гипотезу, либо не можем отвергнуть нулевую гипотезу. Недостатком использования Т-критерия Стьюдента является то, что он требует нормального распределения выборок, что не всегда имеет место при работе с реальными данными. Тест Колмогорова-Смирнова (тест КС) немного сложнее и может обнаруживать закономерности, которые не может найти Т-тест Стьюдента. Тест KS — это непараметрический тест на равенство непрерывных/прерывистых одномерных распределений вероятностей, который можно использовать для сравнения выборки с эталонным распределением вероятностей, являющимся тестом KS для одной выборки. Два образца также можно проверить с помощью двухвыборочного теста KS.

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

PSI — это одночисловая мера того, насколько популяция переместилась с течением времени или между двумя отдельными выборками популяции. Это достигается путем группирования двух распределений и сравнения процентного содержания элементов в каждом сегменте, что дает одно значение, которое можно использовать для определения того, насколько различаются совокупности. Ниже приведены частые интерпретации результатов PSI:
а) PSI 0,1 указывает на то, что существенного смещения населения не произошло.
b) PSI 0,2 указывает на то, что изменение населения низкое.
c) PSI более 0,2 указывает на значительный сдвиг населения.

4. Дивергенция Кульбака-Лейблера (KL)

Дивергенция Кульбака-Лейблера (сокращенно KL) представляет собой расстояние между приближенным распределением Q и истинным распределением P. Рассмотрим два распределения вероятностей P и Q в некотором пространстве X. Дивергенция Кульбака-Лейблера определяется как

5. Расхождение Дженсена-Шеннона

Расхождение Дженсена-Шеннона, сокращенно расхождение JS, представляет собой еще один подход к количественной оценке различий (или сходства) между двумя распределениями вероятностей. Он использует расхождение KL для получения симметричной нормализованной оценки. Это указывает на то, что отклонение P от Q такое же, как отклонение Q от P.

6. Расстояние Вассерштейна

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

B) Модельный подход

Модельный подход, основанный на машинном обучении, также может использоваться для выявления дрейфа данных между двумя популяциями. Мы должны классифицировать данные, используемые для создания текущей модели в производстве, как 0, а данные в реальном времени как 1. Теперь мы должны построить модель и оценить результаты. Если модель имеет высокую точность, она может легко различать два набора данных. В результате мы можем заключить, что произошел дрейф данных и что модель необходимо пересмотреть. С другой стороны, если точность модели составляет около 0,5, это так же хорошо, как случайное предположение. Это указывает на то, что существенного сдвига данных не произошло, и мы можем приступить к использованию модели.

C) Адаптивное скользящее окно

Техника Adaptive Windowing (ADWIN) использует метод скользящего окна для выявления дрейфа концепций. Размер окна фиксирован, и ADWIN перемещает фиксированное окно, чтобы обнаружить любые изменения во вновь поступающих данных. Когда два подокна в новых наблюдениях имеют разные средства, более старое подокно отбрасывается. Определяемый пользователем порог указывается при обнаружении дрейфа для срабатывания предупреждения. Аварийный сигнал выдается, если абсолютная разница между двумя средними значениями, рассчитанными по двум подокнам, превышает пороговое значение. Эта стратегия работает только с одномерными данными.

Действия при возникновении дрейфа

  1. Проверка качества данных

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

2. Расследовать:

Во время расследования мы просто пытаемся ответить на вопрос; Откуда сдвиг? Цель состоит в том, чтобы понять, что происходит, и интерпретировать дрейф, изучив изменения данных, которые могут его вызвать.

3. Переобучите модель:

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

4. Перестроить модель

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

5. Приостановить модель и отступить

Один из простых подходов — остановить модель. Когда возникает дрейф, мы можем прекратить использование модели и подождать, пока мы не решим дрейф. Тем временем мы также можем переключиться на другую модель. Если модель плохо работает с одним сегментом данных, мы можем приостановить выполнение этой функции. За исключением этого сегмента, любое другое подмножество данных будет работать нормально.

Способы справиться с дрейфом в производстве

Идеальная концептуальная система обработки дрейфа должна быть способна выполнять следующие функции:

а) быстро адаптироваться к изменению концепции,

б) быть устойчивым к шуму, отличая его от дрейфа концепции, и

c) Замечать и устранять серьезные дрейфы в производительности модели.

  1. Пошаговое обучение

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

2. Периодическое переобучение модели

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

3. Работа с выборкой данных

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

4. Обучение ансамблю

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

Спасибо!

В заключение мы увидели важность MLOps, компонентов MLOps и того, как они взаимодействуют друг с другом. Мы обсудили различные типы дрейфа данных/понятий. Хотя обнаружить дрейфы сложно, важно настроить системы мониторинга для максимально быстрого обнаружения таких дрейфов. Я надеюсь, что у вас есть хорошее представление о том, что мы обсуждали в этой статье. Как говорит Эндрю Н.Г., ваша работа до первого развертывания составляет всего 50% от общей работы, и, следовательно, MLOps становится неотъемлемой частью систем машинного обучения.

Вот мой дескриптор LinkedIn!

Рекомендации

https://databricks.com/glossary/mlops

https://machinelearningmastery.com/divergence-between-probability-distributions/