Разработка веб-интерфейсов для взаимодействия с моделью машинного обучения (ML) — утомительная задача. С стримлит, разработка демонстрационных приложений для вашего решения машинного обучения проста. стримлит — это библиотека Python с открытым исходным кодом, упрощающая создание и совместное использование веб-приложений для машинного обучения и обработки данных. Как специалист по данным, вы можете захотеть продемонстрировать свои выводы для набора данных или развернуть обученную модель. Приложения Streamlit полезны для представления прогресса проекта вашей команде, получения информации и обмена ею с вашими менеджерами и даже для получения отзывов от клиентов.
С интегрированной средой разработки (IDE) от Студия Amazon SageMaker Лаборатория Юпитера 3, мы можем создавать, запускать и обслуживать веб-приложения Streamlit в той же среде для целей разработки. В этом посте рассказывается, как создавать и размещать приложения Streamlit в Studio безопасным и воспроизводимым образом без трудоемкой разработки внешнего интерфейса. В качестве примера используем пользовательский Апостол demo, которое будет аннотировать и помечать загруженное изображение. Это послужит отправной точкой, и ее можно обобщить для демонстрации любой пользовательской модели машинного обучения. Код для этого блога можно найти в этом Репозиторий GitHub.
Обзор решения
Ниже представлена схема архитектуры нашего решения.
Сначала пользователь получает доступ к Studio через браузер. Сервер Jupyter, связанный с профилем пользователя, работает внутри экземпляра Studio Amazon Elastic Compute Cloud (Amazon EC2). Внутри экземпляра Studio EC2 находится пример кода и список зависимостей. Пользователь может запустить приложение Streamlit, app.py, в системном терминале. Studio запускает пользовательский интерфейс JupyterLab на сервере Jupyter, отделенном от ядер ноутбука. Сервер Jupyter поставляется с прокси-сервером и позволяет нам получить доступ к нашему приложению Streamlit. После запуска приложения пользователь может инициировать отдельный сеанс через прокси-сервер AWS Jupyter, изменив URL-адрес.
С точки зрения безопасности прокси-сервер AWS Jupyter дополнен аутентификацией AWS. Если у пользователя есть доступ к учетной записи AWS, идентификатору домена Studio и профилю пользователя, он может получить доступ к ссылке.
Создать студию с помощью JupyterLab 3.0
Чтобы это решение работало, необходимо установить Studio с JupyterLab 3. Старые версии могут не поддерживать функции, описанные в этом посте. Для получения дополнительной информации см. Amazon SageMaker Studio и SageMaker Notebook Instance теперь поставляются с ноутбуками JupyterLab 3 для повышения производительности труда разработчиков.. По умолчанию Studio поставляется с JupyterLab 3. Вы должны проверить версию и изменить ее, если используете более старую версию. Для получения дополнительной информации см. Версии JupyterLab.
Вы можете настроить Studio с помощью Комплект для разработки облачных сервисов AWS (АМС ЦДК); для получения дополнительной информации см. Настройте Amazon SageMaker Studio с Jupyter Lab 3 с помощью AWS CDK. Кроме того, вы можете использовать консоль SageMaker для изменения настроек домена. Выполните следующие шаги:
- На консоли SageMaker выберите Домены в навигационной панели.
- Выберите свой домен и выберите Редактировать.
- Что касается Версия Jupyter Lab по умолчанию, убедитесь, что установлена версия Лаборатория Юпитера 3.0.
(Необязательно) Создайте общее пространство
Мы можем использовать консоль SageMaker или интерфейс командной строки AWS, чтобы добавить поддержку общих пространств в существующий домен, выполнив действия, описанные в документации или в этом блоге. Создание общего пространства в AWS имеет следующие преимущества:
- Совместная работа. Общее пространство позволяет нескольким пользователям или группам совместно работать над проектом или набором ресурсов без дублирования данных или инфраструктуры.
- Экономия затрат: вместо того, чтобы каждый пользователь или команда создавала свои собственные ресурсы и управляла ими, общее пространство может быть более рентабельным, поскольку ресурсы можно объединять и совместно использовать для нескольких пользователей.
- Упрощенное управление: благодаря общему пространству администраторы могут централизованно управлять ресурсами, вместо того чтобы управлять несколькими экземплярами одних и тех же ресурсов для каждого пользователя или группы.
- Улучшенная масштабируемость. Общее пространство можно легко увеличивать или уменьшать в соответствии с изменяющимися требованиями, поскольку ресурсы можно распределять динамически для удовлетворения потребностей различных пользователей или групп.
- Повышенная безопасность. Благодаря централизации ресурсов в общем пространстве можно повысить безопасность, так как управление доступом и мониторинг могут применяться более легко и согласованно.
Установите зависимости и клонируйте пример в Studio
Далее запускаем Studio и открываем системный терминал. Мы используем IDE SageMaker для клонирования нашего примера и системный терминал для запуска нашего приложения. Код для этого блога можно найти в этом Репозиторий GitHub. Начнем с клонирования репозитория:
Далее мы открываем системный терминал.
После клонирования в системном терминале установите зависимости для запуска кода нашего примера, выполнив следующую команду. Это сначала установит зависимости, запустив pip install --no-cache-dir -r requirements.txt
, no-cache-dir
флаг отключит кеш. Кэширование помогает хранить установочные файлы (.whl
) модулей, которые вы устанавливаете через pip. Он также хранит исходные файлы (.tar.gz
), чтобы избежать повторной загрузки, когда срок их действия еще не истек. Если на нашем жестком диске нет места или если мы хотим, чтобы образ Docker был как можно меньше, мы можем использовать этот флаг, чтобы команда выполнялась до завершения с минимальным использованием памяти. Далее скрипт установит пакеты iproute
и jq
, который будет использоваться на следующем шаге.sh setup.sh
Запустите демоверсию Streamlit и создайте общую ссылку
Чтобы убедиться, что все зависимости успешно установлены, и просмотреть демонстрацию Amazon Rekognition, выполните следующую команду:
Отобразится номер порта, на котором размещено приложение.
Обратите внимание, что при разработке может быть полезно автоматически перезапускать скрипт, когда app.py
модифицируется на диске. Чтобы сделать, чтобы мы могли изменить runOnSave вариант конфигурации добавив --server.runOnSave true
отметьте нашу команду:
На следующем снимке экрана показан пример того, что должно отображаться на терминале.
В приведенном выше примере мы видим номер порта, идентификатор домена и URL-адрес студии, на котором мы запускаем наше приложение. Наконец, мы можем увидеть URL-адрес, который нам нужно использовать для доступа к нашему приложению Streamlit. Этот скрипт изменяет URL-адрес Studio, заменяя lab?
proxy/[PORT NUMBER]/
. Отобразится демонстрация обнаружения объектов Rekognition, как показано на следующем снимке экрана.
Теперь, когда у нас работает приложение Streamlit, мы можем поделиться этим URL-адресом со всеми, у кого есть доступ к этому идентификатору домена Studio и профилю пользователя. Чтобы упростить обмен этими демонстрациями, мы можем проверить статус и вывести список всех запущенных приложений Streamlit, выполнив следующую команду: sh status.sh
Мы можем использовать сценарии жизненного цикла или общие пространства, чтобы расширить эту работу. Вместо того, чтобы вручную запускать сценарии оболочки и устанавливать зависимости, используйте сценарии жизненного цикла чтобы упорядочить этот процесс. Чтобы разработать и расширить это приложение вместе с командой и поделиться панелями мониторинга с коллегами, используйте общие пространства. Создавая общие пространства в Studio, пользователи могут сотрудничать в общем пространстве для разработки приложения Streamlit в режиме реального времени. Все ресурсы в общем пространстве фильтруются и помечаются тегами, что упрощает концентрацию на проектах машинного обучения и управление расходами. Используйте следующий код для создания собственных приложений в Studio.
уборка
Как только мы закончим использовать приложение, мы хотим освободить прослушивающие порты. Чтобы запустить потоковые процессы и освободить их для использования, мы можем запустить наш скрипт очистки: sh cleanup.sh
Заключение
В этом посте мы показали сквозной пример размещения демонстрации Streamlit для задачи обнаружения объектов с помощью Amazon Rekognition. Мы подробно рассказали о мотивах создания быстрых веб-приложений, соображениях безопасности и настройке, необходимых для запуска нашего собственного приложения Streamlit в Studio. Наконец, мы изменили шаблон URL в нашем веб-браузере, чтобы инициировать отдельный сеанс через прокси-сервер AWS Jupyter.
Эта демонстрация позволяет загружать любое изображение и визуализировать выходные данные Amazon Rekognition. Результаты также обрабатываются, и вы можете скачать CSV-файл со всеми ограничивающими прямоугольниками через приложение. Вы можете расширить эту работу, чтобы аннотировать и пометить свой собственный набор данных, или изменить код, чтобы продемонстрировать свою пользовательскую модель!
Об авторах
Дипика Хуллар является инженером по машинному обучению в Лаборатория решений Amazon ML. Она помогает клиентам интегрировать решения машинного обучения для решения своих бизнес-задач. Совсем недавно она построила конвейеры обучения и логического вывода для клиентов СМИ, а также модели прогнозирования для маркетинга.
Марсело Аберле является инженером по машинному обучению в организации AWS AI. Он возглавляет усилия MLOps в Лаборатория решений Amazon ML, помогая клиентам разрабатывать и внедрять масштабируемые системы машинного обучения. Его миссия состоит в том, чтобы направлять клиентов на пути к корпоративному машинному обучению и ускорить переход от машинного обучения к производству.
Яш-Шах является научным менеджером в Лаборатория решений Amazon ML. Он и его команда ученых-прикладников и инженеров машинного обучения работают над рядом вариантов использования машинного обучения в здравоохранении, спорте, автомобилестроении и производстве.
- SEO-контент и PR-распределение. Получите усиление сегодня.
- Платоблокчейн. Интеллект метавселенной Web3. Расширение знаний. Доступ здесь.
- Источник: https://aws.amazon.com/blogs/machine-learning/build-streamlit-apps-in-amazon-sagemaker-studio/
- :является
- $UP
- 100
- 7
- a
- выше
- ускорять
- доступ
- Учетная запись
- через
- администраторы
- AI
- Все
- выделено
- позволяет
- Amazon
- Amazon EC2
- Апостол
- Создатель мудреца Амазонки
- Студия Amazon SageMaker
- и
- кто угодно
- приложение
- Приложения
- прикладной
- Программы
- архитектура
- МЫ
- AS
- внешний вид
- связанный
- At
- Аутентификация
- автоматически
- автомобильный
- AWS
- BE
- Преимущества
- Блог
- повышение
- коробки
- браузер
- строить
- Строительство
- построенный
- бизнес
- by
- Кэш
- CAN
- случаев
- изменение
- изменения
- проверка
- Выберите
- облако
- код
- сотрудничать
- как
- полный
- завершение
- Вычисление
- соображения
- Консоли
- контрольная
- рентабельным
- Расходы
- Создайте
- Создающий
- изготовленный на заказ
- Клиенты
- данным
- наука о данных
- ученый данных
- По умолчанию
- запросы
- Демос
- развертывание
- Проект
- подробный
- обнаружение
- развивать
- Застройщик
- развивающийся
- Развитие
- различный
- Docker
- домен
- вниз
- скачать
- управлять
- динамично
- каждый
- легче
- легко
- усилия
- впритык
- инженер
- Инженеры
- Предприятие
- Окружающая среда
- Даже
- пример
- существующий
- существует
- продлить
- Особенности
- Обратная связь
- Файл
- Файлы
- в заключение
- Во-первых,
- Фокус
- после
- Что касается
- найденный
- Бесплатно
- от
- получение
- получить
- получающий
- инструкция
- Жесткий
- жесткий диск
- Есть
- имеющий
- здравоохранение
- полезный
- помощь
- помогает
- кашель
- хостинг
- Как
- How To
- HTML
- HTTPS
- ID
- изображение
- осуществлять
- улучшенный
- in
- информация
- Инфраструктура
- инициировать
- размышления
- устанавливать
- установлен
- Установка
- пример
- вместо
- интегрировать
- интегрированный
- взаимодействовать
- интерфейсы
- IT
- путешествие
- JPG
- Сохранить
- лаборатория
- этикетка
- запуск
- ведущий
- изучение
- Библиотека
- Жизненный цикл
- LINK
- Список
- Listening
- Длинное
- машина
- обучение с помощью машины
- сделать
- ДЕЛАЕТ
- Создание
- управлять
- управление
- менеджер
- Менеджеры
- управления
- способ
- вручную
- производство
- Маркетинг
- Май..
- Медиа
- Встречайте
- Память
- может быть
- минимальный
- Наша миссия
- ML
- млн операций в секунду
- модель
- Модели
- модифицировало
- изменять
- Модули
- Мониторинг
- БОЛЕЕ
- самых
- мотивации
- с разными
- Навигация
- Необходимость
- потребности
- следующий
- ноутбук
- номер
- объект
- Обнаружение объекта
- of
- on
- открытый
- с открытым исходным кодом
- организация
- изложенные
- контуры
- собственный
- пакеты
- хлеб
- путь
- шаблон
- Платон
- Платон Интеллектуальные данные
- ПлатонДанные
- Точка
- возможное
- После
- проблемам
- процесс
- Обработанный
- Процессы
- Производство
- Профиль
- Прогресс
- Проект
- проектов
- полномочие
- целей
- Питон
- САЙТ
- ассортимент
- скорее
- реальные
- реального времени
- недавно
- хранилище
- обязательный
- Требования
- Полезные ресурсы
- Итоги
- Run
- Бег
- sagemaker
- то же
- экономия
- Масштабируемость
- масштабируемые
- Наука
- Ученый
- Ученые
- скрипты
- безопасный
- безопасность
- отдельный
- служить
- Сессия
- набор
- настройки
- установка
- Поделиться
- общие
- разделение
- Оболочка
- должен
- демонстрации
- показанный
- Шоу
- небольшой
- So
- Решение
- Решения
- РЕШАТЬ
- Источник
- Space
- пространства
- Спорт
- Начало
- Начало
- Статус:
- Шаг
- Шаги
- магазин
- магазины
- упорядочить
- студия
- Успешно
- поддержка
- система
- системы
- Сложность задачи
- команда
- команды
- Терминал
- который
- Ассоциация
- Источник
- их
- Их
- Эти
- Через
- время
- кропотливый
- в
- специалистов
- Обучение
- ui
- загружено
- URL
- us
- Применение
- использование
- Информация о пользователе
- пользователей
- проверить
- версия
- Вид
- Web
- веб-приложений
- веб-браузер
- Что
- , которые
- в то время как
- КТО
- будете
- в
- без
- Работа
- работает
- Ты
- ВАШЕ
- зефирнет