Такие инструменты, как 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

Полученные результаты



Базовая версия (только 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

Выводы

Streamlit, FastAPI и Hugging Face можно рассматривать как возможность в таких ситуациях, как:

  • быстрое прототипирование,
  • создание MVP,
  • запуск приложения в производство в течение нескольких недель, и
  • обмен ссылкой с клиентом или пользователем разрабатываемой системы.

Итак, я думаю, что это может быть хорошим вариантом, когда вы хотите получить прототип вашей панели инструментов / веб-приложения ML и запустить его как можно быстрее.

Рекомендации

сделано с помощью 💙 от mafda.