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

  1. Предположим, вы строите рекомендательную систему на основе ML. Вы спрашиваете конечного пользователя об их предпочтениях и на основе тех, которые вы рекомендуете им фильм и т. д. Хотя базовый анализ можно выполнить в Jupyter Notebookно это не удается, когда вы должны прогнозировать значения на основе на входах от конечного пользователя.
  2. Предположим, вы врач. Вы хотите знать, есть ли у человека хронический гепатит или нет, и, исходя из состояния здоровья пациента, вы хотите знать, будет ли этот пациент жить или нет. Теперь это классическая проблема Классификация. Как у врача, у вас ограниченное время, и ноутбуки для вас неприемлемы. Следовательно, наличие интерфейса для взаимодействия с этой моделью жизненно важно.
  3. Предположим, вы владелец бизнеса. Вы хотите увидеть, как ваши продавцы будут работать в следующем квартале. Вам понадобится какое-то приложение для прогнозирования этих значений.

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

Способы доставки веб-приложений машинного обучения

В наши дни программные приложения обычно доставляются онлайн. С технической точки зрения мы называем это «программное обеспечение как услуга». У вас может быть веб-приложение, которое вы просматриваете, вводите свои входные данные (функции на языке машинного обучения) и получаете свои результаты. Вы также можете получить отчет о различной статистической информации о прогнозе. Точно так же могут быть сценарии, когда интернета нет. Например, банки — типичные рабочие места, где доступ в Интернет ограничен. Или, может быть, в качестве эксперимента или тестирования нам может понадобиться использовать нашу модель без настройки веб-сайта.

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

Представление как веб-приложение

Веб-приложение должно быть размещено на каком-то сервере/облаке. Структура может быть довольно простой. Предположим, ваше фронтенд-приложение может быть построено на ReactJS/Angular JS/Angular/VueJS/или любом другом веб-фреймворке. Теперь вы можете принимать входные данные от приложения переднего плана, и эти входные данные в виде FormData могут обрабатываться на сервере, а результаты могут быть получены.

Для этой цели в Python очень широко используются Streamlit и Flask. Streamlit отлично подходит для тех, у кого нет опыта разработки программного обеспечения. Такие люди могут захотеть быстро настроить веб-приложение.

Открытие как API

Предположим, у вас уже есть продукт и, следовательно, его веб-приложение. Или у вас есть приложение для смартфона (Android/iOS) и вы хотите интегрировать в него функции машинного обучения. Теперь вы не можете изменить всю структуру приложения, поэтому самый быстрый способ — настроить API и предоставить конечные точки для доставки результатов. Например, RestFul API может принимать аргументы и возвращать результаты.

В Python для этой цели широко используются «Hug Framework», «Flask Framework» и «FastAPI».

Создание пакета ML для CLI/скриптов

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

Если вам интересно, где в мире Интернет недоступен; достаточно просто программного проекта Fintech.

Сброс вашей УДИВИТЕЛЬНОЙ модели ML как пакета

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

import joblib
from sklearn.linear_model import LogisticRegression
...
logisticRegression = LogisticRegression()
# Your magic here
...
model_file = open('logistic_reg_model.pkl', 'wb')
joblib.dump(logisticRegression, model_file)
model_file.close()

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

Спасибо за чтение и следите за новостями о машинном обучении. Не стесняйтесь использовать любой код из моего репозитория Github.