проект машинного обучения в производстве.
В этой статье мы собираемся обсудить в основном развертывание модели машинного обучения с использованием 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
- Pickle: собственная библиотека Python для сохранения (сериализации) и загрузки (де-сериализации) объектов Python в виде файлов на диске.
- Flask: простой в использовании веб-фреймворк на основе Python.
Структура проекта
Этот проект состоит из четырех основных частей:
- iris.py - содержит код для нашей модели машинного обучения для прогнозирования Iris Plant (классификация) по обучающим данным в файле iris.data.
- app.py - содержит API-интерфейсы Flask, которые получают ввод данных Iris через графический интерфейс или вызовы API, вычисляют предопределенное значение на основе нашей модели и возвращают его.
- iris.pkl - содержит модель перед обучением, которая получается после обучения и будет использоваться в app.py для прогнозирования.
- шаблоны - эта папка содержит шаблон 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
- home.html - это корневая страница по умолчанию, которая открывается, когда мы открываем ссылку в браузере. Он содержит форму, через которую мы предоставляем функцию ввода (всего четыре) в текстовом формате, и при нажатии на кнопку отправки он вызывает домашнюю функцию для прогнозирования в app.py.
2. after.html - это страница, вызываемая функцией home в каталоге «/ прогноз», которая отображает прогноз модели.
Хостинг в локальной системе
Схема построения и развертывания модели
Заключение
Развертывание модели - важная часть любого конвейера машинного обучения.
Flask - это простая структура веб-приложений, которую можно легко создать. Размещение и совместное использование моделей машинного обучения может быть очень простым с помощью Flask API.
Для полного кода: - Github
Если вы хотите узнать больше о развертывании моделей, я хотел бы упомянуть этот отличный список воспроизведения по развертыванию модели с использованием фляги и докера на YouTube, автор Криш Наик. Это было то, что мне очень помогло. Проверьте это.
использованная литература
- Https://www.tutorialspoint.com/flask/flask_http_methods.htm
- Https://flask.palletsprojects.com/en/1.1.x/
Спасибо за прочтение. Я хочу писать больше сообщений для новичков в будущем, кстати, это мой первый пост на Medium.
Следуйте за мной в Medium. Как всегда, я приветствую отзывы и конструктивную критику, и с ними можно связаться на Linkedin.
Получите доступ к экспертному обзору - Подпишитесь на DDI Intel