Хорошо, до сих пор мы видели, как создавать модели машинного обучения, мы изучили множество наборов данных, а также получили ценную информацию из этих наборов данных. Это ценно и показало, как можно проводить исследовательский анализ данных. Но мы еще не закончили, пока не используем эти модели в любом приложении. Давайте посмотрим на это на примерах:
- Предположим, вы строите рекомендательную систему на основе ML. Вы спрашиваете конечного пользователя об их предпочтениях и на основе тех, которые вы рекомендуете им фильм и т. д. Хотя базовый анализ можно выполнить в Jupyter Notebook…но это не удается, когда вы должны прогнозировать значения на основе на входах от конечного пользователя.
- Предположим, вы врач. Вы хотите знать, есть ли у человека хронический гепатит или нет, и, исходя из состояния здоровья пациента, вы хотите знать, будет ли этот пациент жить или нет. Теперь это классическая проблема Классификация. Как у врача, у вас ограниченное время, и ноутбуки для вас неприемлемы. Следовательно, наличие интерфейса для взаимодействия с этой моделью жизненно важно.
- Предположим, вы владелец бизнеса. Вы хотите увидеть, как ваши продавцы будут работать в следующем квартале. Вам понадобится какое-то приложение для прогнозирования этих значений.
Из приведенных выше примеров мы видим, что нам нужно эффективно выставлять эти модели, чтобы сделать их полезными. В этом посте давайте рассмотрим, как делиться этими моделями в приложениях.
Способы доставки веб-приложений машинного обучения
В наши дни программные приложения обычно доставляются онлайн. С технической точки зрения мы называем это «программное обеспечение как услуга». У вас может быть веб-приложение, которое вы просматриваете, вводите свои входные данные (функции на языке машинного обучения) и получаете свои результаты. Вы также можете получить отчет о различной статистической информации о прогнозе. Точно так же могут быть сценарии, когда интернета нет. Например, банки — типичные рабочие места, где доступ в Интернет ограничен. Или, может быть, в качестве эксперимента или тестирования нам может понадобиться использовать нашу модель без настройки веб-сайта.
Таким образом, чтобы удовлетворить все эти сценарии, приложения машинного обучения можно создавать с использованием трех идей:
Представление как веб-приложение
Веб-приложение должно быть размещено на каком-то сервере/облаке. Структура может быть довольно простой. Предположим, ваше фронтенд-приложение может быть построено на 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.