Настоящий успех моделей машинного обучения наступает тогда, когда они переходят из безопасных убежищ Proof of Concept (POC) и Minimum Viable Prototype (MVP) в большой плохой мир производственной среды. Самые благонамеренные и технически совершенные модели могут не принести желаемых бизнес-результатов в производственной среде из-за плохого планирования и инфраструктуры. В этой статье рассказывается о моем опыте развертывания моделей машинного обучения, чтобы определить ключевые функциональные возможности, необходимые для успешного развертывания модели машинного обучения. Пожалуйста, укажите комментарии, если я что-то пропустил.

Создание производственной параллельной среды

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

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

Развертывание нескольких моделей в производстве

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

Модель и предсказание происхождения

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

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

Мониторинг конвейера данных

Мониторинг конвейера данных включает два действия:

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

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

Следите за состоянием модели

Мониторинг всех прогнозов модели, а также способность скользить и нарезать прогнозы модели очень важны и должны иметь возможность гарантировать, что вы всегда на высоте в развертывании машинного обучения. Запись прогнозов модели в базу данных, такую ​​как Elastic Search, обеспечивает простое решение для использования Kibana для создания информационных панелей для просмотра производительности модели. Такие информационные панели должны включать показатели точности, отзыва и точности для модели.

Автоматизированное построение моделей

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