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

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

Что такое мониторинг моделей?

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

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

Что мы должны отслеживать?

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

  • Работает ли модель так, как мы ожидали (аналогично производительности на этапе обучения)?
  • Решает ли модель правильную задачу?
  • Основана ли модель на правильной концепции (отношения между входом и выходом)?
  • Является ли модель честной и этичной?

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

  • Наши данные еще актуальны?
  • У нас есть дрейф данных?
  • Должны ли мы включать новые функции?
  • Должны ли мы исключить некоторые старые функции?

Как мы должны отслеживать?

Чтобы ответить на эти вопросы, существует два основных подхода к сбору информации: сбор показателей и сбор журналов. В таблице 1 представлены краткие определения и анализ «за» и «против» метрики по сравнению с логарифмом. И метрики, и журналы необходимы для полноценной системы мониторинга. Метрики — это числовые измерения свойства — системы, модели или свойства данных. Обычно мы собираем и храним метрики в формате временных рядов, который подходит для анализа тенденций. Журналы представляют собой подробные записи событий, состоящие как из числовых, так и нечисловых данных. В большинстве случаев мы можем ответить на вопросы ЧТО и КОГДА с помощью метрик. Однако нам нужны журналы, чтобы ответить на вопросы ПОЧЕМУ.

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

Как настроить систему мониторинга моделей?

Система мониторинга состоит из трех основных компонентов, а именно: сборщика метрик/журналов, постоянного хранилища и компонента визуализации/панели мониторинга. Эти компоненты показаны на рис. 4. Метрики извлекаются сборщиком данных или передаются в него. Лучшей стратегией является отслеживание непрерывного переноса заданий. Потому что выталкивание метрик из системы машинного обучения может стать узким местом, в то время как вытягивание не влияет на ход работы. Однако, чтобы сборщик мог извлекать данные, система машинного обучения должна быть оснащена инструментами. Другими словами, система ML должна предоставлять измерения для расчета метрик.

Постоянное хранилище отслеживает данные с течением времени. Нам нужно решить, как долго должны сохраняться метрики и журналы. Метрики — это в основном количества с отметкой времени, к которым мы применяем функции агрегирования, такие как сумма и среднее значение. Следовательно, база данных временных рядов будет наиболее эффективным способом их хранения. Хотя журналы содержат информацию о времени события, мы обычно храним журналы в базе данных документов/объектов NoSQL, что обеспечивает гибкость для информации, которую мы собираем для различных событий (например, MongoDB или Amazon S3).

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

Заключение

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