В Интернете доступно множество материалов для изучения и применения машинного обучения. Наборы данных доступны всем через репозитории, такие как Kaggle и UCI, такие компании, как Amazon, Microsoft и Google, также предоставляют наборы данных.

Что касается алгоритмов и фреймворков машинного и глубокого обучения, то есть scikit-learn, TensorFlow, pytorch и т. д. Список бесконечен. На самом деле Facebook недавно открыл библиотеку под названием Pyrobot, которую можно использовать для создания приложений ИИ для роботов.

Затем идут платформы большой тройки. AWS от Amazon, GCP от Google и Azure от Microsoft. Они дают вам платформу для разработки целых решений ИИ и развертывания на них. Предусмотрена большая гибкость. Вы можете разрабатывать свои собственные модели или просто импортировать модели, созданные этими поставщиками, или покупать их на их торговых площадках.

Все 3 из них также дают вам бесплатные кредиты. Это хорошая отправная точка.

Так чего же не хватает в этом море информации об ИИ? Я думаю, что многие люди до сих пор не очень понимают, как развертывать модели, которые они создали, на своих ноутбуках Jupyter. В лучшем случае они используют сервер Flask и развертывают его как API для обслуживания прогнозов. Но это очень просто. Давайте сегодня сделаем шаг глубже

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

  1. Развертывание в пакетном режиме.
  2. Развертывание в потоковом режиме
  3. Развертывание в режиме реального времени.

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

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

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

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

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

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

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

В следующей статье я сделаю еще один шаг вперед и расскажу, как все это делается на самом деле. А пока счастливого обучения!!