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

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

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

Два способа, которыми модель может потерпеть неудачу

‍Модель не дает прогнозов

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

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

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

Прогноз модели не срабатывает

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

Эта проблема имеет две следующие причины:

Ковариативный сдвиг

Распределение входных объектов меняется со временем.

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

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

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

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

Дрейф концепции

Соотношение между входными и выходными данными модели меняется.

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

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

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

Наличие наземной истины

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

Мгновенный

Основная правда доступна немедленно.

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

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

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

Отложенный

Наземная правда откладывается во времени.

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

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

Отсутствующий

Никакой достоверной информации.

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

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

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

Выводы

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

  • код — модель не может делать прогнозы из-за ошибок
  • данные — ковариантный сдвиг, отклонение концепции или ограниченный доступ к истине

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

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

Этот блог изначально был опубликован на https://www.nannyml.com/blog.