Вступление
Развертывание моделей машинного обучения остается серьезной проблемой. Несмотря на то, что внедрение модели машинного обучения в рабочую среду является одним из наиболее важных шагов при создании приложения для машинного обучения, существует не так много руководств, показывающих, как это сделать. Поэтому в этой статье я расскажу, как создать модель машинного обучения, создав нормальный веб-сайт с использованием веб-микро-инфраструктуры Flask.
Введение в Amazon Web Services (AWS)
Что такое AWS? - Amazon Web Services (AWS) - это облачный сервис от Amazon, который предоставляет услуги в виде стандартных блоков. Эти строительные блоки можно использовать для создания и развертывания приложений любого типа в облаке.
Эти службы или строительные блоки предназначены для работы друг с другом, в результате чего создаются сложные и хорошо масштабируемые приложения.
Введение в Flask
Что такое Flask?
Flask - это веб-фреймворк. Это означает, что flask предоставляет вам инструменты, библиотеки и технологии, позволяющие создавать веб-приложения. Это веб-приложение может представлять собой несколько веб-страниц, блог, вики или иметь такое же большое значение, как веб-приложение-календарь или коммерческий веб-сайт.
Flask входит в категорию микро-фреймворка. Микро-фреймворк обычно представляет собой фреймворк, практически не зависящий от внешних библиотек. В этом есть свои плюсы и минусы. Плюсы заключаются в том, что фреймворк легкий, существует небольшая зависимость от обновления и отслеживания ошибок безопасности, минусы в том, что через некоторое время вам придется выполнять больше работы самостоятельно или самостоятельно увеличивать список зависимостей, добавляя плагины. В случае Flask его зависимости:
- Werkzeug служебная библиотека WSGI.
- jinja2, который является его механизмом шаблонов.
7 простых шагов для создания модели машинного обучения в AWS:
- Создайте модель на своем локальном компьютере и сохраните модель и другие ключевые переменные, связанные с моделью, в файлах pickle (файлы .pkl).
- Запустите микроэкземпляр на AWS.
- Подключитесь к экземпляру AWS.
- Переместите файлы в экземпляр AWS-EC2
- Установите все необходимые пакеты на экземпляр AWS.
- Запустите app.py в окне AWS.
- Проверьте вывод в браузере.
Требуется программное обеспечение: (Anaconda)
Чтобы загрузить Anaconda, перейдите по ссылкам, приведенным ниже:
Windows 64 бит, Windows 32 бит, Mac, Linux 64 бит, Linux 32 бит
Получение данных
В качестве примера я взял набор данных Amazon Fine Food Reviews. Набор данных Amazon Fine Food Reviews состоит из обзоров качественных продуктов с Amazon.
Источник: https://www.kaggle.com/amanai/amazon-fine-food-review-sentiment-analysis
Обзор набора данных
Количество отзывов: 568 454
Количество пользователей: 256 059
Количество товаров: 74 258
Интервал времени: октябрь 1999 г. - октябрь 2012 г.
Количество атрибутов / столбцов в данных: 10
Давайте запустим код на нашем локальном компьютере
Позвольте мне сначала показать вам структуру папок и файлы внутри:
Шаг 1. Откройте запрос Anaconda:
Шаг 2: перейдите в каталог кода.
Шаг 3: запустите python app.py
Шаг 4: браузер: http: // localhost: 8080 / index
Снимок командной строки:
Снимки веб-страниц:
Для положительного отзыва:
Для отрицательного отзыва:
Давайте разберемся с кодом
- index.html: Он используется для создания простой веб-страницы, где мы предоставляем Review_text в качестве входных данных, и при нажатии кнопки Отправить мы получаем получение прогноза. Здесь мы указываем имя функции (прогноз ()) в теге действия формы.
2. app.py: здесь мы пишем код для создания API с помощью Flask.
Эта часть кода сканирует URL-адрес (http: // localhost: 8080 /), и если в конце найдет «/», он просто напечатает «Привет Мир ».
Эта часть кода сканирует URL-адрес (http: // localhost: 8080 / index) и, если в конце находит «/ index», отображает HTML-контент и когда он находит ('/ предсказать', методы = ['POST']) в части HTML-формы и выполняет функцию предсказать ().
Развертывание приложения на Amazon Web Server (AWS)
Поскольку мы знаем, что если мы запустим какое-либо приложение на нашей локальной машине, другие люди не смогут получить к нему доступ, но если мы развернем или разместим его на облачных серверах, то мы сможем поддерживать работу экземпляра все время, и люди могут получить к нему доступ в любое время. Итак, теперь давайте посмотрим, как развернуть модель машинного обучения в AWS.
Запустить микроэкземпляр на AWS
Создайте учетную запись AWS:
https://aws.amazon.com, https://portal.aws.amazon.com/billing/signup#/start
Логин:
https://console.aws.amazon.com
3. После входа:
4. Запустите экземпляр «EC2»
5. Выберите «Ubuntu Free Tire»
6. Нажмите «Выбрать»
7. Выберите «t2.micro« Допустимый уровень бесплатного пользования.
8. Нажмите «Просмотреть и запустить».
9. Нажмите "Запустить".
10. Нажмите «Загрузить пару ключей» и сохраните «.pem-файл», затем нажмите «Запустить экземпляр».
11. Вы увидите этот экран, вы успешно запустили экземпляр «EC2», теперь нам нужно запустить в нем «Flask API».
12. Заключительный шаг :
13. Выберите «Сеть и безопасность» - ›Группы безопасности, а затем нажмите« Создать группу безопасности ».
14. Затем добавьте конкретную группу безопасности в сетевой интерфейс.
15. Подключитесь к своему экземпляру AWS.
Следуйте инструкциям на рисунке ниже, чтобы подключиться к вашему экземпляру
16. Переместите файлы в экземпляр AWS EC2:
Откройте командную строку и введите команду ниже, чтобы скопировать файлы в экземпляр.
scp -r -i for_live.pem ./AFR ubuntu@ec2–13–59–191–237.us-east-2.compute.amazonaws.com
17. Установите все пакеты, необходимые для экземпляра AWS EC2.
sudo apt-get install python3-pip
pip3 install ‹каждый из следующих пакетов›
Необходимые пакеты:
pip3, pandas, numpy, sklearn, beautifulsoup4, lxml, flask, re
18. Запустите app.py в окне AWS.
19. Проверьте вывод в браузере.
Заключение
Создание модели машинного обучения - важная часть проекта машинного обучения, и Flask можно использовать для создания веб-сайта с помощью всего нескольких строк кода.
Просто выполните все шаги, чтобы внедрить модель машинного обучения в AWS.
Где найти мой код?
GITHUB: https://github.com/SubhamIO/Build-and-Deploy-an-Machine-Learning-Model-using-AWS-and-API-s
использованная литература
- https://pymbook.readthedocs.io/en/latest/flask.html
- https://www.geeksforgeeks.org/ssh-command-in-linux-with-examples/
- https://www.geeksforgeeks.org/scp-command-in-linux-with-examples/
- https://www.edureka.co/blog/what-is-aws/