проект машинного обучения в производстве.

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

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

Введение в Flask API

Flask - это облегченная микросхема Интерфейс шлюза веб-сервера (WSGI), написанная на Python. Это означает, что flask предоставляет нам инструменты, библиотеки и технологии, которые позволяют нам создавать веб-приложения. Это веб-приложение может быть некоторыми веб-страницами, блогом или нашим веб-приложением для прогнозирования модели машинного обучения. Flask - это промежуточный носитель для связи нашей модели с интерфейсной веб-страницей для прогнозирования, как показано на изображении ниже.

Предпосылки

Мы предполагаем, что все мы знаем об обучении моделей в jupyter notebook. Этот пост предназначен только для того, чтобы дать представление о развертывании модели машинного обучения в производственной среде с использованием Flask API.

Библиотеки, требующие развертывания в модели:

pip install pickle-mixin
pip install Flask
  1. Pickle: собственная библиотека Python для сохранения (сериализации) и загрузки (де-сериализации) объектов Python в виде файлов на диске.
  2. Flask: простой в использовании веб-фреймворк на основе Python.

Структура проекта

Этот проект состоит из четырех основных частей:

  1. iris.py - содержит код для нашей модели машинного обучения для прогнозирования Iris Plant (классификация) по обучающим данным в файле iris.data.
  2. app.py - содержит API-интерфейсы Flask, которые получают ввод данных Iris через графический интерфейс или вызовы API, вычисляют предопределенное значение на основе нашей модели и возвращают его.
  3. iris.pkl - содержит модель перед обучением, которая получается после обучения и будет использоваться в app.py для прогнозирования.
  4. шаблоны - эта папка содержит шаблон HTML, позволяющий пользователю вводить функции ввода и отображать прогнозируемые выходные данные на веб-странице.

Набор данных

Модельное обучение

Сначала мы читаем данные через файл CSV, и у нас есть четыре входных функции и три возможные выходные переменные, поэтому мы помечаем их как кодирование для обучения. После этого мы используем SVC (классификацию векторов поддержки) для обучения модели и сохраняем модель (iri.pkl) с помощью pickle. Для вашей проблемы это может быть иначе, для понимания мы взяли простой пример.

FLask API

  • Здесь мы инициализируем наше приложение flask, вызывая Flask (__ name__) и загружая модель с помощью pickle.
  • «@ App.route (‘ / ’)» здесь мы инициализируем корневой каталог нашего флеш-приложения и в нем мы определяем функцию, которая будет вызываться в этом корневом каталоге.
  • «@ App.route ('/ expect', methods = ['POST'])» здесь мы определяем домашнюю функцию, в которой мы получаем данные с внешней HTML-страницы с помощью request.form [''] и прогнозируем вывод, а затем отправляем его обратно. на HTML-страницу для визуализации прогнозов.

По умолчанию маршрут Flask отвечает на запросы GET. Однако это предпочтение можно изменить, предоставив аргумент метода декоратору route ().

Чтобы продемонстрировать использование метода POST в маршрутизации URL-адресов, сначала давайте создадим HTML-форму и воспользуемся методом POST для отправки данных формы по URL-адресу.

Следующий скрипт запускает флеш-сервер на локальном хосте и порте по умолчанию (5000), создавая URL: https://127.0.0.1: 5000 /

Просто вставьте https://127.0.0.1:5000/ в браузер и нажмите клавишу ВВОД, чтобы увидеть, как сервер работает.

HTML-шаблон

templates folder
 |
 +-- home.html
 |    
 +-- after.html
  1. home.html - это корневая страница по умолчанию, которая открывается, когда мы открываем ссылку в браузере. Он содержит форму, через которую мы предоставляем функцию ввода (всего четыре) в текстовом формате, и при нажатии на кнопку отправки он вызывает домашнюю функцию для прогнозирования в app.py.

2. after.html - это страница, вызываемая функцией home в каталоге «/ прогноз», которая отображает прогноз модели.

Хостинг в локальной системе

Схема построения и развертывания модели

Заключение

Развертывание модели - важная часть любого конвейера машинного обучения.

Flask - это простая структура веб-приложений, которую можно легко создать. Размещение и совместное использование моделей машинного обучения может быть очень простым с помощью Flask API.

Для полного кода: - Github

Если вы хотите узнать больше о развертывании моделей, я хотел бы упомянуть этот отличный список воспроизведения по развертыванию модели с использованием фляги и докера на YouTube, автор Криш Наик. Это было то, что мне очень помогло. Проверьте это.

использованная литература

  1. Https://www.tutorialspoint.com/flask/flask_http_methods.htm
  2. Https://flask.palletsprojects.com/en/1.1.x/

Спасибо за прочтение. Я хочу писать больше сообщений для новичков в будущем, кстати, это мой первый пост на Medium.



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

Получите доступ к экспертному обзору - Подпишитесь на DDI Intel