Платформа машинного обучения как услуга
Несколько недель назад я написал статью о развертывании моделей машинного обучения с помощью Spark, что является отличным способом развертывания моделей машинного обучения, если вы хотите делать прогнозы в пакетном режиме, а не в режиме реального времени.
Развертывание моделей машинного обучения с помощью Spark
Но если вы хотите делать прогнозы в режиме реального времени, то эта схема не идеальна, т.к.
- Прогнозирование занимает секунды и не будет происходить в режиме реального времени.
- Будут ручные развертывания с некоторым временем простоя.
- Пользовательский интерфейс для тестирования этого решения отсутствует.
Развертывание модели машинного обучения в качестве услуги может решить большинство проблем, а прогнозы будут предоставляться в режиме реального времени. Но будут проблемы, такие как масштабируемость, мониторинг и время простоя для сервисов. Хотя есть много провайдеров облачных вычислений, которые могут решить эти проблемы и обеспечить круглосуточную поддержку 7 дней в неделю. Однако, если вы небольшая компания или только начинаете работу с AI/ML, не хотите тратить больше времени на развертывание в облаке или задачи DevOps и вам нужен вариант быстрого развертывания, то разверните свои модели машинного обучения с помощью Flask на Heroku. решит все ваши проблемы.
Heroku с использованием Flask
Heroku — это платформа, готовый к использованию инструмент. Heroku поддерживается AWS, все приложения HEROKU размещаются на AWS. AWS предоставляет инфраструктуру и управляет всей балансировкой нагрузки, использованием ресурсов, сетью, журналом, мониторингом,Heroku выступает в качестве посредника, предоставляя масштабируемую автоматизированную платформу быстрого развертывания со всеми облачными возможностями.. Использование Flask предоставит пользовательский интерфейс для тестирования, который можно интегрировать с приложениями корпоративного уровня.
Изображение предоставлено автором
Шаги по развертыванию на Heroku с помощью Flask
Развертывание на Heroku с помощью Flask состоит из 7 шагов, от создания модели машинного обучения до развертывания. Эти шаги одинаковы для всех моделей машинного обучения, и вы можете использовать их для развертывания любой модели машинного обучения на Heroku.
- Создайте модель ML и замаринуйте ее
- Создайте файл Flask для пользовательского интерфейса и основной файл Python (app.py), который распаковывает модель машинного обучения из шага 1 и делает прогнозы.
- Создайте файл requirements.txt для настройки веб-приложения Flask и всех зависимостей Python.
- Создайте Procfile для запуска команды приложения Flask
- Зафиксируйте файлы для шагов 1, 2, 3 и 4 в репозитории Github.
- Создайте учетную запись/войдите на Heroku, создайте приложение, подключитесь к репозиторию Github и выберите ветку.
- Выберите развертывание вручную (или включите автоматическое развертывание) на Heroku.
Вот и все! !
Вы можете просматривать журналы на панели инструментов Heroku или использовать интерфейс командной строки Heroku. В конце журнала будет указан URL-адрес для доступа к приложению, развернутому в пользовательском интерфейсе. Синтаксис этого URL такойhttps://app-name.herokuapp.com/
Глубокое погружение
Теперь давайте посмотрим на фактическую реализацию кода (на питоне) вышеперечисленных 7 шагов.
существуетшаг 1, мы создаем модель ML и сохраняем ее в файле pickle.
Здесь gbc в строке 3 представляет собой модель классификатора с повышением градиента, обученную для прогнозирования дохода. Если вы хотите увидеть, как я создал эту модель прогнозирования повышения градиента, обратитесь к GitHub.Ссылка на сайт.
существуетШаг 2,Мы создадим файлы flask — index.html и app.py.
**index.html** — это пользовательский интерфейс фляги.документ, используемый для предоставления входных данных (или функций) модели.
app.py, — это основной файл Python, который распаковывает модель повышения градиента на шаге 1, отображает страницу пользовательского интерфейса flask index.html и делает прогнозы на основе ввода пользовательского интерфейса.
medium.com/Media/Удобно 3, а не 3…
существуетна шаге 3, мы создадим файл requirements.txt, чтобы добавить все зависимости приложения flask.
в4На следующем шаге мы создадим Procfile, чтобы указать команду, которую приложение Heroku выполняет при запуске.
в5шаг, мы добавим все файлы из шагов 1-4 в репозиторий Github. Ты сможешьэто здесьНайдите репозиторий Github для прогнозов доходов.
существуетШаг 6, мы войдем в Heroku и создадим новое приложение, вот прогноз доходов-api-heroku.
Изображение предоставлено автором
Затем мы подключим репозиторий GitHub, созданный на шаге 5, к приложению Heroku и выберем ветку.
Изображение предоставлено автором
Наконец вШаг 7, выберите ручное (или автоматическое) развертывание, и вы увидите прокрутку журнала сборки. После развертывания приложения вы получитеURL, и отобразится сообщение об успешном выполнении.
Изображение предоставлено автором
Нажмите «Просмотр», и вы попадете на страницу пользовательского интерфейса Flask с шага 2.
Изображение предоставлено автором
Как только вы заполните все поля и нажмете Predict, вы получите окончательный результат прогноза.
Авторская картина
Журнал Heroku
ты сможешьheroku-cliПросмотрите журнал развертывания приложения Heroku в формате . После того, как вы загрузили cli, откройте командную строку и войдите в Heroku.
Источник изображения: автор
После входа в систему вы можете просмотреть журнал развертывания с помощью следующей команды
журналы героку -приложение .
Изображение предоставлено автором
Вы можете увидеть все загруженные библиотеки сборки и шаги развертывания приложения в журнале. Эти журналы более полезны для отладки, если вы столкнетесь с какими-либо ошибками/сбоями во время развертывания.
Вот и все!С помощью этих простых шагов любую модель машинного обучения можно развернуть на Heroku для прогнозирования в реальном времени.
Ограничивающий фактор
- Стоимость--Почасовая оплата Heroku намного дороже, чем у AWS/Azure. Поэтому, если вы используете несколько крупномасштабных приложений на Heroku, это определенно будет дорогостоящим делом.
- Ограниченная географическая зона -Heroku поддерживает ограниченные географические регионы по сравнению с AWS/Azure.
- Расширение вручную --Heroku не обеспечивает автоматическое масштабирование веб-приложений, но допускает ручное горизонтальное и вертикальное масштабирование.
- Развертывания, связанные с Git —Развертывания в Heroku связаны с Git, что является ограничением, если вы используете другие инструменты контроля версий.
Суммировать
Если вы развертываете приложение небольшого или среднего масштаба, не беспокойтесь об автоматическом масштабировании и просто хотите сосредоточиться на создании приложений ML, а не инфраструктуры, использование Heroku для создания моделей ML — отличный вариант.
Хотя развертывание с помощью Heroku будет стоить больше денег, те же затраты можно сэкономить за счет меньшего количества ресурсов для создания/мониторинга локальной/облачной инфраструктуры и выполнения задач DevOps. Heroku удобен для начинающих, вы можете создать сервер и развернуть свое приложение за считанные секунды. При поддержке AWS Heroku предоставляет все функции облачной платформы, такие как: масштабирование, ведение журнала, мониторинг, настройка и проверка работоспособности. Кроме того, вы получаете оперативную поддержку 24 часа в сутки 7 дней в неделю и минимальные простои без простоев.
Чтобы получить доступ к полному коду прогнозирования в реальном времени с помощью Heroku, обратитесь к GitHub.Ссылка на сайт.
Если вы хотите узнать больше о стратегиях развертывания моделей, см. ------.
Производство моделей машинного обучения
Спасибо за чтение. Если вам понравилась эта история, ставьте лайк, делитесь ею и следите за новостями. Не стесняйтесь обращаться к нам с любыми вопросами/комментариями/отзывами.
Github: GitHub.com/ Вставьте MAK Привет, просто…LinkedIn. Woohoo. LinkedIn.com/in/ Вставить отметку…
Развертывание моделей машинного обучения на Heroku с использованием Flask' первоначально было опубликовано вTowards Data Scienceна Medium люди продолжают беседу, выделяя историю и отвечая на нее.