Интеграция модели

Завершено

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

Развертывание модели в конечной точке

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

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

При развертывании модели в конечной точке есть два варианта:

  • Получение прогнозов в режиме реального времени
  • Получение пакетных прогнозов

Получение прогнозов в режиме реального времени

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

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

Представьте, что у вас есть веб-сайт, содержащий каталог продуктов:

  1. Клиент выбирает продукт на своем веб-сайте, например рубашку.
  2. В зависимости от выбора клиента модель немедленно рекомендует другие элементы из каталога продуктов. На веб-сайте отображаются рекомендации модели.

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

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

Получение пакетных прогнозов

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

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

Представьте, что вы визуализируете все исторические данные о продажах в отчете. Вы хотите включить прогнозируемые продажи в тот же отчет.

Схема с отчетом с несколькими графами. Один график — это линейчатая диаграмма с синей стрелкой с выделением прогнозируемых значений.

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

Выбор между развертыванием в режиме реального времени или пакетной службой

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

  • Как часто должны создаваться прогнозы?
  • Как скоро будут нужны результаты?
  • Следует ли создавать прогнозы по отдельности или в пакетах?
  • Сколько вычислительной мощности требуется для выполнения модели?

Определение необходимой частоты оценки

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

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

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

Как правило, существует два типа вариантов использования:

  1. Вам нужна модель для оценки новых данных, как только она появится.
  2. Вы можете запланировать или активировать модель для оценки новых данных, собранных с течением времени.

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

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

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

Определите количество прогнозов

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

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

На основе этих данных можно прогнозировать отток клиентов: будет ли клиент покупать из вашего веб-магазина снова или нет.

Обучив модель, можно решить, нужно ли создавать прогнозы:

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

При работе с файлами можно также создавать отдельные или пакетные прогнозы. Например, при работе с моделью компьютерного зрения может потребоваться отдельно оценить один образ или коллекцию изображений в одном пакете.

Учитывайте затраты на вычисления

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

Если вам нужны прогнозы в режиме реального времени, вам потребуется вычисление, которое всегда доступно и может возвращать результаты (почти сразу). Технологии контейнеров, такие как экземпляр контейнеров Azure (ACI) и Служба Azure Kubernetes (AKS), идеально подходят для таких сценариев, так как они предоставляют упрощенную инфраструктуру для развернутой модели.

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

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

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