Розробка веб-інтерфейсів для взаємодії з моделлю машинного навчання (ML) є виснажливим завданням. с Стрітліт, розробляти демонстраційні програми для вашого рішення ML легко. Стрітліт це бібліотека Python з відкритим вихідним кодом, яка дозволяє легко створювати веб-програми для машинного навчання та обробки даних і ділитися ними. Як фахівець із обробки даних ви можете продемонструвати свої висновки для набору даних або розгорнути навчену модель. Програми Streamlit корисні для представлення прогресу в проекті вашій команді, отримання та обміну інформацією з вашими менеджерами та навіть отримання відгуків від клієнтів.
З інтегрованим середовищем розробки (IDE). Студія Amazon SageMaker з Лабораторія Юпітера 3, ми можемо створювати, запускати та обслуговувати веб-програми Streamlit із того самого середовища для цілей розробки. У цій публікації описано, як створювати та розміщувати програми Streamlit у Studio безпечним і відтворюваним способом без будь-якої трудомісткої розробки інтерфейсу. Як приклад ми використовуємо звичай Amazon Rekognition демо-версія, яка додаватиме анотації та мітки до завантаженого зображення. Це буде відправною точкою, і його можна узагальнити для демонстрації будь-якої спеціальної моделі ML. Код для цього блогу можна знайти тут GitHub сховище.
Огляд рішення
Нижче наведено діаграму архітектури нашого рішення.
Користувач спочатку отримує доступ до Studio через браузер. Сервер Jupyter, пов’язаний із профілем користувача, працює в примірнику Studio Amazon Elastic Compute Cloud (Amazon EC2). Всередині примірника Studio EC2 існує приклад коду та список залежностей. Користувач може запустити програму Streamlit, app.py, у системному терміналі. Studio запускає інтерфейс JupyterLab на сервері Jupyter, відокремленому від ядер ноутбука. Сервер Jupyter постачається з проксі-сервером і дозволяє нам отримати доступ до нашої програми Streamlit. Після запуску програми користувач може ініціювати окремий сеанс через AWS Jupyter Proxy, налаштувавши URL-адресу.
З точки зору безпеки, AWS Jupyter Proxy розширено автентифікацією AWS. Поки користувач має доступ до облікового запису AWS, ідентифікатора домену Studio та профілю користувача, він може отримати доступ за посиланням.
Створіть Studio за допомогою JupyterLab 3.0
Студія з JupyterLab 3 повинна бути встановлена, щоб це рішення працювало. Старіші версії можуть не підтримувати функції, описані в цій публікації. Для отримання додаткової інформації див Amazon SageMaker Studio і SageMaker Notebook Instance тепер поставляються з ноутбуками JupyterLab 3 для підвищення продуктивності розробників. За замовчуванням Studio постачається з JupyterLab 3. Вам слід перевірити версію та змінити її, якщо ви використовуєте старішу версію. Для отримання додаткової інформації див Версій JupyterLab.
Ви можете налаштувати Studio за допомогою Набір хмарних розробок AWS (AWS CDK); для отримання додаткової інформації див Налаштуйте Amazon SageMaker Studio з Jupyter Lab 3 за допомогою AWS CDK. Крім того, ви можете використовувати консоль SageMaker, щоб змінити параметри домену. Виконайте наступні дії:
- На консолі SageMaker виберіть Домени у навігаційній панелі.
- Виберіть свій домен і виберіть Редагувати.
- для Стандартна версія Jupyter Lab, переконайтеся, що встановлено версію Лабораторія Юпітера 3.0.
(Необов’язково) Створіть спільний простір
Ми можемо використовувати консоль SageMaker або AWS CLI, щоб додати підтримку спільних просторів до наявного домену, виконавши кроки в документах або в цьому блозі. Створення спільного простору в 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-адресу, яку потрібно використовувати для доступу до нашого потокового додатка. Цей сценарій змінює URL-адресу Studio, замінюючи lab?
з proxy/[PORT NUMBER]/
. Відобразиться демонстрація виявлення об’єктів Rekognition, як показано на наступному знімку екрана.
Тепер, коли у нас працює програма Streamlit, ми можемо поділитися цією URL-адресою з усіма, хто має доступ до цього ID домену Studio та профілю користувача. Щоб спростити обмін цими демонстраціями, ми можемо перевірити статус і вивести список усіх запущених програм streamlit, виконавши наступну команду: sh status.sh
Ми можемо використовувати сценарії життєвого циклу або спільні простори, щоб розширити цю роботу. Замість того, щоб вручну запускати сценарії оболонки та встановлювати залежності, використовуйте сценарії життєвого циклу щоб упорядкувати цей процес. Щоб розробити та розширити цю програму спільно з командою та надати доступ до інформаційних панелей колегам, використовуйте спільні простори. Створюючи спільні простори в Studio, користувачі можуть співпрацювати в спільному просторі для розробки програми Streamlit у реальному часі. Усі ресурси в спільному просторі відфільтровано та позначено тегами, що полегшує зосередження на проектах МЛ та керування витратами. Зверніться до наступного коду, щоб створити власні програми в Studio.
Прибирати
Коли ми закінчимо користуватися програмою, ми хочемо звільнити порти для прослуховування. Щоб спростити всі запущені процеси та звільнити їх для використання, ми можемо запустити наш скрипт очищення: sh cleanup.sh
Висновок
У цій публікації ми показали наскрізний приклад розміщення демонстрації Streamlit для завдання виявлення об’єктів за допомогою Amazon Rekognition. Ми детально описали мотиви створення швидких веб-додатків, міркування безпеки та налаштування, необхідні для запуску нашої власної програми Streamlit у Studio. Нарешті, ми змінили шаблон URL-адреси в нашому веб-переглядачі, щоб ініціювати окремий сеанс через AWS Jupyter Proxy.
Ця демонстрація дозволяє завантажувати будь-яке зображення та візуалізувати результати Amazon Rekognition. Результати також обробляються, і ви можете завантажити файл CSV з усіма обмежувальними рамками через додаток. Ви можете розширити цю роботу, щоб анотувати та позначити свій власний набір даних або змінити код, щоб продемонструвати свою власну модель!
Про авторів
Діпіка Хуллар є інженером ML у Лабораторія рішень Amazon ML. Вона допомагає клієнтам інтегрувати рішення ML для вирішення їхніх бізнес-проблем. Зовсім нещодавно вона розробила тренінги та канали висновків для медіа-клієнтів і прогностичні моделі для маркетингу.
Марсело Аберле є інженером ML в організації AWS AI. Він керує зусиллями MLOps у Лабораторія рішень Amazon ML, допомагаючи клієнтам проектувати та впроваджувати масштабовані системи машинного навчання. Його місія полягає в тому, щоб скеровувати клієнтів на шляху корпоративного машинного навчання та прискорювати їх шлях до виробництва.
Яш Шах є науковим менеджером у Лабораторія рішень Amazon ML. Він і його команда вчених-прикладників та інженерів МЛ працюють над різними варіантами використання МЛ у сфері охорони здоров’я, спорту, автомобілебудування та виробництва.
- Розповсюдження контенту та PR на основі SEO. Отримайте посилення сьогодні.
- Платоблокчейн. Web3 Metaverse Intelligence. Розширені знання. Доступ тут.
- джерело: https://aws.amazon.com/blogs/machine-learning/build-streamlit-apps-in-amazon-sagemaker-studio/
- :є
- $UP
- 100
- 7
- a
- вище
- прискорювати
- доступ
- рахунки
- через
- Адміністратори
- AI
- ВСІ
- виділено
- дозволяє
- Amazon
- Amazon EC2
- Amazon Rekognition
- Amazon SageMaker
- Студія Amazon SageMaker
- та
- будь
- додаток
- застосування
- прикладної
- додатка
- архітектура
- ЕСТЬ
- AS
- зовнішній вигляд
- асоційований
- At
- Authentication
- автоматично
- автомобільний
- AWS
- BE
- Переваги
- Блог
- підвищення
- коробки
- браузер
- будувати
- Створюємо
- побудований
- бізнес
- by
- Кеш
- CAN
- випадків
- зміна
- заміна
- перевірка
- Вибирати
- хмара
- код
- співпрацювати
- Приходити
- повний
- завершення
- обчислення
- міркування
- Консоль
- управління
- рентабельним
- витрати
- створювати
- створення
- виготовлений на замовлення
- Клієнти
- дані
- наука про дані
- вчений даних
- дефолт
- запити
- Демос
- розгортання
- дизайн
- докладно
- Виявлення
- розвивати
- Розробник
- розвивається
- розробка
- різний
- Docker
- домен
- вниз
- скачати
- управляти
- динамічно
- кожен
- легше
- легко
- зусилля
- кінець в кінець
- інженер
- Інженери
- підприємство
- Навколишнє середовище
- Навіть
- приклад
- існуючий
- існує
- продовжити
- риси
- зворотний зв'язок
- філе
- Файли
- в кінці кінців
- Перший
- Сфокусувати
- після
- для
- знайдений
- Безкоштовна
- від
- набирає
- отримати
- отримання
- керівництво
- Жорсткий
- жорсткий диск
- Мати
- має
- охорона здоров'я
- корисний
- допомогу
- допомагає
- господар
- хостинг
- Як
- How To
- HTML
- HTTPS
- ID
- зображення
- здійснювати
- поліпшений
- in
- інформація
- Інфраструктура
- ініціювати
- розуміння
- встановлювати
- встановлений
- установка
- екземпляр
- замість
- інтегрувати
- інтегрований
- взаємодіяти
- Інтерфейси
- IT
- подорож
- JPG
- тримати
- lab
- етикетка
- запуск
- провідний
- вивчення
- бібліотека
- Життєвий цикл
- LINK
- список
- Прослуховування
- Довго
- машина
- навчання за допомогою машини
- зробити
- РОБОТИ
- Робить
- управляти
- управління
- менеджер
- Менеджери
- управління
- манера
- вручну
- виробництво
- Маркетинг
- Може..
- Медіа
- Зустрічатися
- пам'ять
- може бути
- мінімальний
- Місія
- ML
- MLOps
- модель
- Моделі
- модифікований
- змінювати
- Модулі
- моніторинг
- більше
- найбільш
- мотиви
- множинний
- навігація
- Необхідність
- потреби
- наступний
- ноутбук
- номер
- об'єкт
- Виявлення об'єктів
- of
- on
- відкрити
- з відкритим вихідним кодом
- організація
- викладені
- контури
- власний
- пакети
- pane
- шлях
- Викрійки
- plato
- Інформація про дані Платона
- PlatoData
- точка
- це можливо
- пошта
- проблеми
- процес
- Оброблено
- процеси
- Production
- профіль
- прогрес
- проект
- проектів
- повноваження
- цілей
- Python
- Швидко
- діапазон
- швидше
- реальний
- реального часу
- нещодавно
- Сховище
- вимагається
- Вимога
- ресурси
- результати
- прогін
- біг
- мудрець
- то ж
- Економія
- масштабованість
- масштабовані
- наука
- вчений
- Вчені
- scripts
- безпечний
- безпеку
- окремий
- служити
- Сесія
- комплект
- налаштування
- установка
- Поділитись
- загальні
- поділ
- Склад
- Повинен
- демонстрації
- показаний
- Шоу
- невеликий
- So
- рішення
- Рішення
- ВИРІШИТИ
- Source
- Простір
- пробіли
- SPORTS
- старт
- Починаючи
- Статус
- Крок
- заходи
- зберігати
- магазинів
- раціоналізувати
- студія
- Успішно
- підтримка
- система
- Systems
- Завдання
- команда
- команди
- термінал
- Що
- Команда
- Джерело
- їх
- Їх
- Ці
- через
- час
- трудомісткий
- до
- навчений
- Навчання
- ui
- завантажено
- URL
- us
- Використання
- використання
- користувач
- користувачі
- перевірити
- версія
- вид
- Web
- веб-додатки
- веб-браузер
- Що
- який
- в той час як
- ВООЗ
- волі
- з
- в
- без
- Work
- робочий
- Ти
- вашу
- зефірнет