Такие инструменты, как Streamlit, FastAPI и Hugging Face, появились как быстрый способ представить функциональные результаты для приложений машинного обучения и не требуют сложных реализаций.
В этом посте вы найдете:
- Краткое введение в прототипирование,
- Инструменты прототипирования,
- Что такое Streamlit, FastAPI и Hugging Face?,
- Пример ML-приложения с Streamlit, FastAPI и Hugging Face и
- Выводы.
В процессе разработки проектов по науке о данных нам всегда нужно представлять результаты наших выводов в определенное время. И иногда у нас могут возникнуть сомнения относительно того, как лучше всего показать эти результаты.
Затем появляются такие инструменты, как Streamlit, FastAPI и Hugging Face, которые позволяют быстро представить функциональные результаты и не требуют сложной реализации.
Что такое прототипирование?
Прототипирование — это процесс разработки идеи, и он используется в разных областях для ее проверки или моделирования перед запуском.
- Прототип — это версия того, каким будет продукт.
- Прототипирование — это повторяющийся процесс разработки идеи.
"Итак, у нас будет несколько прототипов идеи в процессе прототипирования".
Создание прототипа является фундаментальным шагом для любого типа продукта, идеи или услуги, поскольку оно позволяет:
- разработка начальной версии,
- обнаружение недостатков,
- снижение затрат,
- знание опыта пользователей,
- тестирование функций и
- также генерация POC или MVP идеи.
Инструменты прототипирования
Существуют разные инструменты в зависимости от уровня точности или сходства между идеей и конечным продуктом. Эти уровни могут различаться в зависимости от их концепции, эстетики и функции.
- Низкоточное прототипирование — это набросок идеи на бумаге.
- Прототип средней точности может быть создан в программном обеспечении в виде макета, воспроизводящего некоторые основные функции идеи. Некоторыми инструментами для прототипирования являются Figma, Sketch, Miro и InVision.
- Высокоточный прототип может включать некоторый уровень программирования для плавного воспроизведения поведения окончательного решения. Flask и Streamlit — это пара инструментов.
Что такое стримлит?
Streamlit — это бесплатный фреймворк с открытым исходным кодом, полностью написанный на Python. Это позволяет специалистам по данным быстро создавать интерактивные информационные панели и веб-приложения машинного обучения, не требуя опыта веб-разработки.
В последние годы этот фреймворк привлек внимание и популярность среди специалистов по данным и программистов машинного обучения. Его рост обусловлен тем, что он:
- это простой в использовании инструмент,
- необходимы базовые знания Python и
- совместим с такими фреймворками, как:
- Машинное обучение: TensorFlow, PyTorch, Scikit-learn,
- Библиотеки визуализации: Seaborn, Altair, Plotly и
- Другие.
Как это работает?
- Установить Стримлит. Я рекомендую вам использовать Conda и настроить свою среду, но вы можете использовать:
pip install streamlit
- Создайте новый скрипт Python и импортируйте Streamlit с помощью нескольких команд Streamlit:
import streamlit as st
- "Запустить его:
streamlit run <your_script.py>
Как только вы запустите сценарий, локальный сервер Streamlit запустится, и ваше приложение откроется в новой вкладке в веб-браузере по умолчанию.
Или вы можете перейти к http://localhost:8501
Что такое FastAPI?
FastAPI — это современный, быстрый (высокопроизводительный) веб-фреймворк для создания API с помощью Python. Он основан на стандартных подсказках типов Python, что позволяет выполнять автоматическую проверку данных, сериализацию и создание документации.
FastAPI разработан таким образом, чтобы быть простым в использовании и высокоэффективным, предоставляя такие функции, как асинхронная поддержка, внедрение зависимостей и автоматическое создание документации OpenAPI и JSON Schema.
Он завоевал популярность в сообществе Python благодаря простоте использования, производительности и удобным для разработчиков функциям.
Что такое обнять лицо?
Hugging Face — это компания и сообщество с открытым исходным кодом, которое занимается обработкой естественного языка (NLP) и машинным обучением.
Hugging Face предоставляет широкий спектр инструментов, библиотек и ресурсов, которые широко используются исследователями, разработчиками и специалистами по данным для создания, обучения и развертывания моделей НЛП.
Пример ML-приложения
Я использовал предварительно обученную модель ViT для классификации изображений. Эта модель представляет собой доработанную версию google/vit-base-patch16–224-in21k на наборе данных mnist.
Архитектура
Настройка проекта
- Клонировать этот репозиторий
$ git clone [email protected]:mafda/ml_with_fastapi_and_streamlit.git $ cd ml_with_fastapi_and_streamlit
- Запуск приложений
$ docker-compose up
- И перейдите по адресу http://localhost:8501
Полученные результаты
Базовая версия (только Streamlit)
- Изменить ветку
(base)$: git checkout streamlit-basic
- Создайте среду conda
(base)$: conda env create -f environment.yml
- Активировать среду
(base)$: conda activate ml-app
- Бегать
(ml-app)$: streamlit run src/app.py
- И перейдите по адресу http://localhost:8501
Выводы
Streamlit, FastAPI и Hugging Face можно рассматривать как возможность в таких ситуациях, как:
- быстрое прототипирование,
- создание MVP,
- запуск приложения в производство в течение нескольких недель, и
- обмен ссылкой с клиентом или пользователем разрабатываемой системы.
Итак, я думаю, что это может быть хорошим вариантом, когда вы хотите получить прототип вашей панели инструментов / веб-приложения ML и запустить его как можно быстрее.
Рекомендации
сделано с помощью 💙 от mafda.