Изменения

Перейти к: навигация, поиск

Жизненный цикл модели машинного обучения

7186 байт добавлено, 00:41, 10 февраля 2020
Нет описания правки
==Развертывание==
[[Файл:Deployment lifecycle.png|450px|thumb|right| Цикл развертывания]] Развертывание моделей машинного обучения или простое внедрение моделей в производство означает доступность ваших моделей для других ваших бизнес-систем. Развертывая модели, другие системы могут отправлять им данные и получать их прогнозы, которые, в свою очередь, заполняются в системах компании. Благодаря развертыванию модели машинного обучения компания сможет в полной мере воспользоваться созданной моделью машинного обучения. Основная задача, решаемая на этом этапе - ввод модели в эксплуатацию. Необходимо развернуть модель и конвейер в рабочую или близкую к ней среду, чтобы приложения могли к ней обращаться.Создав набор эффективно работающих моделей, требуется ввести их в эксплуатацию для взаимодействия с другими системами компании. В зависимости от бизнес-требований прогнозы выполняются в режиме реального времени или в стандартном режиме. Для развертывания модели, необходимо предоставить их с помощью открытого API-интерфейса. Интерфейс упрощает использование модели различными приложениями, например:* веб-сайты в Интернете; * электронные таблицы; * Панели мониторинга бизнес-приложения; * серверные приложения.Также необходимо понять, собираетесь ли компания использовать Платформу как Сервис (Platform as a Service-PaaS) или Инфраструктуру как Сервис (Infrastructure as a Service-IaaS). PaaS может быть полезен для создания прототипов и компаний с меньшим трафиком. В конце концов, по мере роста бизнеса и / или увеличения трафика компании придется использовать IaaS с большей сложностью. Есть множество решений от больших компаний (AWS, Google, Microsoft). Если приложения контейнеризованы, развертывание на большинстве платформ / инфраструктур будет проще. Контейнезирование также дает возможность использовать платформу оркестровки контейнеров (теперь Kubernetes является стандартом) для быстрого масштабирования количества контейнеров по мере изменения спроса. Убедитесь, что развертывание происходит через платформу непрерывного развертывания(Continuous Deployment platform). ==Тестирование и мониторинг== На данном этапе осуществляется тестирование, мониторинг и контролирование модели. В основном тесты моделей машинного обучения делятся на следующие части:  ===Дифференциальные тесты=== Происходит сравниваете средние / на строку прогнозы, данные новой моделью, и прогнозы, данные старой моделью для стандартного набора тестовых данных. Необходимо настроить чувствительность этих тестов в зависимости от варианта использования модели. Эти тесты могут быть жизненно важны для обнаружения моделей, которые выглядят рабочими, например, когда устаревший набор данных использовался в обучении или функция была случайно удалена из кода. Эти виды проблем, связанных с ML, не приведут к провалу традиционных тестов.. ===Контрольные тесты=== Тесты сравнивают время, затрачиваемое либо на обучение, либо на предоставление прогнозов из модели от одной версии к другой. Они мешают вводить неэффективные добавления кода в ваши ML-приложения. Опять же, это то, что трудно уловить с помощью традиционных тестов (хотя некоторые инструменты статического анализа кода помогут).  ===Нагрузочные / стресс-тесты=== Это не совсем ML-специфичные тесты, но с учетом необычно больших требований к ЦП / памяти в некоторых ML-приложениях такие тесты особенно стоит выполнять. ===A/B-тестирование=== Еще один популярный способ тестирования - A/B-тестирование. Этот метод также называется сплит-тестированием (от англ. split testing — раздельное тестирование). A/B-тестирование позволяет оценивать количественные показатели работы двух вариантов модели, а также сравнивать их между собой. Чтобы получить статистически значимый результат, очень важно исключить влияние моделей друг на друга.  Все вышеперечисленные тесты намного проще с контейнеризованными приложениями, так как это делает раскрутку реалистичного производственного стека тривиальной.   Мониторинг и оповещение могут быть особенно важны при развертывании моделей. По мере усложнения системы потребуются возможности мониторинга и оповещения, чтобы сообщать, когда прогнозы для конкретной системы выходят за пределы ожидаемого диапазона. Мониторинг и оповещение также могут быть связаны с косвенными проблемами, например, при обучении новой сверточной нейронной сети расходовать ежемесячный бюджет AWS за 30 минут. Также понадобятся панели управления, позволяющие быстро проверить развернутые версии моделей.
51
правка

Навигация