Почему целостность данных является ключом к мониторингу машинного обучения

Приложения машинного обучения (ML) построены на данных: большие объемы данных передаются в системы машинного обучения, чтобы обучать модели на исторических примерах и делать высококачественные прогнозы в режиме реального времени. Тем не менее, многие проекты машинного обучения ухудшаются или терпят неудачу, в значительной степени из-за того, что целостность данных трудно поддерживать.

Почему данные не работают

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

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

Что такое целостность данных машинного обучения

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

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

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

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

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

Есть несколько способов обработки плохих производственных данных, но многие из них могут создать свои собственные проблемы.

  1. Отменить запросы на вывод. Если данные неверны, обслуживающая система может пропустить прогноз, чтобы избежать ошибки или сделать неточный прогноз. Хотя это может быть решением, когда модель принимает большое количество некритических решений (например, рекомендации по продукту), это не вариант, когда она принимает важные для бизнеса или жизни решения (например, в сфере здравоохранения). В таких случаях необходима резервная система принятия решений для обеспечения результата. Однако эти системы резервного копирования могут еще больше усложнить решение.
  2. Вменять или прогнозировать отсутствующие значения - если значение отсутствует, его можно заменить оценочным значением с помощью простого статистического показателя, такого как среднее значение признака, или более сложного прогнозируемого значения, основанного на других входных данных модели. Ключевой проблемой этого подхода является то, что он скрывает проблемы, стоящие за проблемой данных. Последовательная замена неверных данных может изменить ожидаемое распределение функций (также известное как дрейф данных), что приведет к ухудшению модели. Дрейф в результате такой замены данных может быть очень трудным для обнаружения, что со временем медленно влияет на производительность модели.
  3. Установить значения по умолчанию - когда значение выходит за пределы допустимого диапазона, его можно заменить известным максимальным или низким или уникальным значением, например замена очень высокого или низкого возраста ближайшим известным минимальным или максимальным значением. Это также может вызвать постепенный дрейф со временем, влияющий на производительность.
  4. Получение недостающих данных. В некоторых критически важных случаях использования, таких как кредитование, команды машинного обучения также имеют возможность получить недостающие данные, чтобы заполнить пробел. Это не типично для подавляющего большинства случаев использования.
  5. Ничего не делать. Это самый простой и, вероятно, лучший подход в зависимости от важности вашего варианта использования. Это позволяет неверным данным появляться в восходящем или нисходящем потоке, чтобы можно было решить проблему, стоящую за ними. Вероятно, что большинство механизмов вывода могут выдать ошибку в зависимости от алгоритма машинного обучения, используемого для обучения модели. Прогноз, сделанный на основе неверных данных, может отображаться как выброс либо выходных данных, либо затронутых входных данных, помогая выявить проблему.

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

Примеры проблем целостности данных

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

Как выявить проблемы с целостностью данных

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

Как оценить и устранить проблемы с целостностью данных

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

Итак, как оцениваются проблемы с данными?

1. Локальный анализ. Для этого анализа Explainable AI помогает понять влияние нарушений данных, чтобы их можно было быстро найти первопричиной - особенно в контексте все более широкого распространения моделей черного ящика. Однако воссоздание всех факторов, которые привели к проблеме, может занять много времени, особенно если данные или модель с тех пор изменились. Рассматриваемые данные, возможно, не были сохранены с входным запросом и, возможно, потребуется воссоздать. Также может быть трудно воспроизвести результаты, если модель не была должным образом версирована.

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

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

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

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