5 эффективных стратегий развертывания моделей машинного обучения
29 марта 2023 г.Развертывание любой модели машинного обучения в рабочей среде сопряжено с рядом проблем, в том числе:
- Концепт Drift & Дрейф данных: Дрейф понятий в основном возникает, когда взаимосвязь между обучающей переменной & целевой результат изменяется, тогда как дрейф данных — это изменение распределения данных во времени. И то, и другое может привести к снижению производительности модели.
2. Вопросы разработки программного обеспечения. При развертывании модели машинного обучения необходимо учитывать определенные факторы, например задержку и время ожидания. необходимая пропускная способность, будь то прогнозы в реальном времени или пакетные прогнозы. Как регистрировать результаты для мониторинга & поддержание безопасности & конфиденциальность данных.
Когда мы обучаем машинное обучение с использованием определенного алгоритма, лучший способ развертывания модели в рабочей среде зависит от ряда факторов:
- Приемлемое время простоя нашего решения для машинного обучения.
- Стоимость операции & участие человека в развертывании модели.
- Легкость, с которой мы можем откатить модель в случае дрейфа.
- Нужно ли тестировать рабочий трафик или нет.
Теперь, когда мы поняли, в чем заключаются различные проблемы при развертывании Модели, давайте рассмотрим различные стратегии развертывания.
Стратегии развертывания модели машинного обучения
Восстановить развертывание
- В этой стратегии мы уменьшаем предыдущую модель, а затем увеличиваем масштаб новой версии модели. Поскольку для уменьшения масштаба текущей модели и масштабирования новой версии модели требуется время, метод повторного создания выполняется медленно и приводит к простою решения ML. Поскольку у нас есть только одна версия модели, эту стратегию невероятно просто использовать. Повторное развертывание не является масштабируемым методом и лучше всего подходит для небольших приложений.
* Нам следует использовать повторное развертывание, когда мы можем позволить себе простои продукта или когда мы не хотим, чтобы новое развертывание было обратно совместимым.
* Пример: в приложениях машинного обучения, где мы запускаем прогнозы в виде пакетов.
Теневое развертывание
- Техника теневого развертывания используется, когда у нас уже есть работающая модель машинного обучения. Мы использовали эту технику для запуска новой модели вместе с существующей в производстве. Прогноз из предыдущей модели возвращается в приложение, а данные отклика из новой модели сохраняются для тестирования и сравнения результатов. Нам требуется достаточный мониторинг для доступа к производительности, и мы должны использовать больше серверов для новой службы прогнозирования.
* Нам следует использовать теневое развертывание, когда мы хотим протестировать новую версию на реальных производственных данных. в то же время не нарушайте работу существующих пользователей.
* Пример: в приложениях машинного обучения, где мы хотим прогнозировать эффективность бизнеса или growth, мы можем использовать теневое развертывание, чтобы сравнить прогнозируемое значение из модели & фактический рост.
Постепенное расширение с помощью мониторинга
Следующие 2 стратегии развертывания включают выпуск модели для определенного процента пользователей & затем на основе мониторинга производительности, делая его доступным для 100 % пользователей.
Развертывание Canary
- В Canary Deployment у нас есть старый & новые версии, работающие в производстве, & обслуживание приложения. Основное различие между canary & теневое развертывание заключается в том, что в Shadow данные ответа из новой модели используются для мониторинга производительности, тогда как здесь они используются для обслуживания приложения. Новая версия модели предоставляется минимальному набору пользователей, а затем доступна для всего набора.
* Нам следует использовать Canary Deployment, когда мы хотим протестировать новую версию на реальных производственных данных & в то же время оценить реакцию существующего пользователя на модель. Это позволяет нам выявлять проблемы на ранней стадии, прежде чем они могут привести к серьезным последствиям для приложения без простоев.
* Пример: в приложениях машинного обучения, которые служат рекомендательными системами, такими как контент или продукт. Мы можем сравнить взаимодействие разных пользователей с разными применяемыми моделями & затем определите, какие из них оказались эффективными для предоставления рекомендаций.
Развертывание A/B-тестирования
- Как следует из названия в разделе "Развертывание A/B-тестирования", у нас есть много разных версий модели. Мы делим пользователей на разные группы в зависимости от количества моделей, которые у нас есть & затем выберите лучшую модель на основе производительности и усилителя; взаимодействие пользователя. С помощью A/B-тестирования мы можем быстро отбраковать неэффективные модели без простоев.
* Мы можем использовать развертывание A/B-тестирования, когда у нас есть пара моделей, дающих почти одинаковые результаты. С помощью этого метода мы можем определить лучшую модель, используя производственные данные &; ответ.
* Пример. Подобно Canary Deployment, A/B-тестирование также можно использовать для систем рекомендаций, таких как рекомендации по содержанию или продукту.
Сине-зеленое развертывание
- Синее-зеленое развертывание выполняется с использованием существующей службы прогнозирования. Затем, в качестве промежуточной среды, мы создаем новый сервис прогнозирования, зеленую версию. После завершения тестирования производительности и функциональности в зеленой среде у нас есть маршрутизатор, переключающий трафик со старого на новый. Это влечет за собой дополнительные расходы из-за обслуживания различных настроек. Преимущество сине-зеленого развертывания заключается в возможности простого отката. Если что-то пойдет не так, мы можем просто перезагрузить роутер или переключиться на синюю версию, чтобы перенаправить трафик.
* Мы можем использовать сине-зеленое развертывание, когда приложение не может допустить простоя и требуется обратная совместимость.
* Пример: система прогнозирования в реальном времени, такая как обнаружение мошенничества/аномалий.
Ниже приведена краткая таблица различий, основанная на объяснении каждого метода и четырех основных факторах, которые мы упомянули выше при выборе стратегии развертывания. Я надеюсь, что эта статья поможет вам выбрать правильную стратегию развертывания приложений машинного обучения.
| | Воссоздать | Тень | канарейка | A/B-тестирование | Синий/Зеленый | |----|----|----|----|----|----| | Приводит к простою | Да | Нет | Нет | Нет | Нет | | Возможность отката | Да, но с простоем | Нет необходимости в откате | Да, быстро | Да, быстро | Да, очень быстро | | Тестирование производственного трафика | Нет | Да | Да | Да | Нет | | Дополнительные расходы на развертывание | Нет | Да, для тестирования новой модели с производственными данными | Нет | Нет | Да, необходимо поддерживать две отдельные среды |
н
Также опубликовано здесь
Оригинал