Как известно настройка и обучение моделей машинного обучения это только одна из частей цикла разработки, не менее важной частью является развертывание модели для её дальнейшего использования. В этой статье я расскажу о том, как модель машинного обучения может быть развернута в виде Docker микросервиса, а также о том, как можно распараллелить работу микросервиса с помощью распределения нагрузки в несколько потоков через Load balancer. В последнее время Docker набрал большую популярность, однако здесь будет описан только один из видов стратегий развертывания моделей, и в каждом конкретном случае выбор лучшего варианта остаётся за разработчиком.
Flask *
Микрофреймворк для создания сайтов на базе Python
Делаем телеграм бота за 5 минут: быстрый старт с продвинутым шаблоном
В последнее время я сделал насколько много ботов для телеграмма, что крайне преисполнился в том, как их писать, как хостить, да и в принципе выработал красивый шаблон для быстрого их создания.
Потыкать в проект, сделанный на этом шаблоне, можно тут.
Играем с CLIP. Создаем универсальный zero-shot классификатор на Android
TLDR: приложение можно скачать и потестить тут
Эта статья является дополненной и сильно расширенной версией моей статьи в TowardsDataScience о создании приложения, использующем новейшую мультимодальную нейросеть от OpenAI
В чем проблема классификаторов?
Многие заметили, что в последние годы все чаще для обработки изображений используется нейросетевой подход.
Как прикрутить нейросеть к сайту по-быстрому
В данном материале предлагается, приложив небольшие усилия, соединить python 3.7+flask+tensorflow 2.0+keras+небольшие вкрапления js и вывести на web-страницу определенный интерактив. Пользователь, рисуя на холсте, будет отправлять на распознавание цифры, а ранее обученная модель, использующая архитектуру CNN, будет распознавать полученный рисунок и выводить результат. Модель обучена на известном наборе рукописных цифр MNIST, поэтому и распознавать будет только цифры от 0 до 9 включительно. В качестве системы, на которой все это будет крутиться, используется windows 7.
Истории
Автоматическая документация для Flask с использованием OpenAPI
Техническая документация, как известно, крайне важная часть любого проекта. До недавнего времени мы прекрасно жили с таким генератором документаций как Sphinx. Но наступил момент переходить на технологии с бОльшим набором возможностей, поэтому мы приняли решение переписать нашу документацию на более современный стандарт: OpenAPI Specification. Эта статья является скромным гайдом по такому переезду. Она будет интересна Python-разработчикам, особенно тем, которые используют Flask. После ее прочтения вы узнаете, как создать статическую OpenAPI документацию для Flask приложения и развернуть ее в GitLab Pages.
Краткая история о том, как развернуть веб-сервер Flask в docker контейнере
Для чего вообще нужен docker контейнер? Обычно, во время разработки, для каждого проекта вы настраиваете своё окружение. Но вот произошла такая ситуация: что-то случилось с вашим компьютером и приходится переустанавливать операционную систему(ОС). Соответственно, чтобы запустить ваш проект, необходимо настраивать окружение заново. Бывает ещё гигантское количество ситуаций, которые сводятся к одной проблеме - настройка окружения для разработки.
Развертывание нескольких моделей машинного обучения на одном сервере
В коммерческой разработке многие сценарии использования машинного обучения подразумевают мультитенантную архитектуру и требуют обучения отдельной модели для каждого клиента и/или пользователя.
В качестве примера можно рассмотреть прогнозирование закупок и спроса на какие-либо продукты с помощью машинного обучения. Если вы управляете сетью розничных магазинов, вы можете использовать данные истории покупок клиентов и итогового спроса на эти продукты для прогнозирования расходов и объёмов закупок для каждого магазина по отдельности.
Чаще всего в таких случаях для развёртывания моделей пишут службу Flask и помещают её в контейнер Docker. Примеров одномодельных серверов машинного обучения очень много, но когда дело доходит до развёртывания нескольких моделей, у разработчика остаётся не так много доступных вариантов для решения проблемы.
В мультитенантных приложениях количество арендаторов заранее не известно и может быть практически не ограничено — в какой-то момент у вас может быть только один клиент, а в другой момент вы можете обслуживать отдельные модели для каждого пользователя тысячам пользователей. Вот здесь и начинают проявляться ограничения стандартного подхода к развертыванию:
Ещё раз о производительности фреймворков Python для веб разработки
Развертывание интерактивных визуализаций данных в реальном времени на Flask и Bokeh
Сегодня, в преддверии старта нового потока курса «Python для веб-разработки», делимся с вами полезным переводом статьи о небольшой интерактивной визуализации, для исследований данных о фильмах. Автор использует не только Flask и Bokeh, но и задействуя бесплатную облачную платформу баз данных easybase.io. Все подробности и демонстрации вы найдёте под катом.
Реализация аудиоконференций в Telegram + Asterisk
В предыдущей статье я описывал реализацию выбора пользователем места жительства при регистрации в моем telegram боте, который я создавал вдохновившись идеей «Телефонного эфира». В этой же статье я опишу интеграцию бота с Asterisk .
Мониторинг микросервисов Flask с помощью Prometheus
RED метрики для flask приложения без усилий.
Как добавить метрики который давно просят DevOps/SRE за пару строчек кода.
Flask + Dependency Injector — руководство по применению dependency injection
Я создатель Dependency Injector. Это dependency injection фреймворк для Python.
В этом руководстве хочу показать как применять Dependency Injector для разработки Flask приложений.
CI/CD в Github Actions для проекта на Flask+Angular
В этой статье я поделюсь своим опытом настройки CI/CD с использованием панели управления Plesk и Github Actions. Сегодня будем учиться деплоить простенький проект с незамысловатым названием «Helloworld». Он написан на Python-фреймворке Flask, с воркерами на Celery и фронтендом на Angular 8.
Ссылки на репозитории: бэкенд, фронтенд.
В первой части статьи мы посмотрим на наш проект и его части. Во второй — разберемся, как настроить Plesk и установить необходимые расширения и компоненты (БД, RabbitMQ, Redis, Docker и т.д.).
В третьей части мы, наконец, разберемся, как настроить пайплайн для деплоя нашего проекта на сервер в dev- и prod-среду. А потом запустим сайт на сервере.
И да, забыл представиться. Меня зовут Олег Борзов, я техлид в команде CRM для менеджеров ипотечного кредитования в Домклик.
Ближайшие события
Интеграция .pre-commit hook в Django проект
Меня зовут Соболев Андрей и сегодня я вам расскажу как мы приготовили .pre-commit hook на нашем проекте.
Вступление
Для начала пару слов, о том что такое в целом хуки (hooks) и для чего они могут быть нужны. Git «из коробки» предоставляет инструмент, который умеет запускать ваши скрипты при наступлении какого-либо события (к примеру пуш на сервер и т.п.)
.pre-commit это удобная надстройка над дефолтным git pre-commit hook, которая запускает скрипты описанные в .pre-commit-config.yaml перед созданием коммита. В теории звучит просто, перейдем к практике.
Работа с базой данных во Flask: от джуна джуну
Создаем Python Flask сервис с актуальными данными по COVID-19 из Википедии
Наша команда занимается созданием информационного сервиса по отображению глобальных данных для многих стран, городов и территорий — Routitude. К концу февраля этого года стремительное распространение коронавируса по всему миру побудило нас внедрить дополнительный функционал для мониторинга ситуации в наше приложение. Помимо визуализации данных в веб-интерфейсе, основным компонентом реализации этой задачи стал микросервис, написанный на Python с использованием популярного веб-фреймворка Flask.
Сервис регулярно обновляет данные из различных источников и по запросу отдает необходимую информацию для визуализации в веб-интерфейсе. Основным источником данных являются страницы Википедии, посвященные распространению вируса в странах и территориях. Таблицы с показателями на этих страницах оперативно обновляются и отлично подходят в качестве источника данных для сервиса по мониторингу распространения инфекции.
В статье я расскажу про основные компоненты сервиса, от получения и обновления данных до создания API для клиентских запросов. Код проекта доступен в github репозитории.
Весь Хабр в одной базе. Комментарии и веб-приложение
Часть 1 | mega.nz | Онлайн демо | GitHub
Наверное, это продолжение статьи, в которой я парсил Хабр в базу данных. Теперь настало время её применить.
Flask-DJ: Django (mvc) структура для проекта на flask
Всем привет!
Когда я впервые столкнулся с Flask, у меня сразу возник вопрос по построению архитектуры проекта.
Прочитав пару статей на Хабре (https://habr.com/ru/post/275099/ и https://habr.com/ru/post/421887/), я вспомнил свой опыт создания проектов на Django, и решил сделать инструмент, благодаря которому не придется задумываться об архитектуре, но при этом можно будет использовать все возможности Flask.
Пишем сервис одноразовых записок на Python
У некоторых людей возникает необходимость передать небольшие сообщения. Но как это сделать, если вы пользуетесь различными социальными сетями и мессенджерами, в безопасности передачи данных через которые вы сомневаетесь.
Некоторые люди для этого используют сервисы самоуничтожающихся шифрованных записок. Но тут встает вопрос можно ли доверять этим сервисам и действительно ли они уничтожают записки после прочтения.
Для решения этой проблемы мы напишем свой сервис самоуничтожающихся шифрованных записок на языке Python с использованием модуля cryptography и фреймворка Flask и развернем его на облачном сервисе Heroku.
Админка за 5 минут. Фронтэнд — react-admin, бэкэнд — Flask-RESTful
Если нужно на коленке получить быстро админку, где фронтендом будет react-admin, а бэкендом Flask-RESTful api, то ниже минимальный код в несколько десятков строк, чтобы это реализовать.
Вклад авторов
AlekSandrDr 238.2Voldar 94.3saluev 48.0Joes 44.0pcdesign 43.6wiygn 38.4lawxls 35.0olegborzov 32.0p-y-t-h-o-n 32.0magic4x 27.0