Tworzenie interfejsów internetowych do interakcji z modelem uczenia maszynowego (ML) jest żmudnym zadaniem. Z Strumieniowe, tworzenie aplikacji demonstracyjnych dla Twojego rozwiązania uczenia maszynowego jest łatwe. Strumieniowe to biblioteka języka Python typu open source, która ułatwia tworzenie i udostępnianie aplikacji internetowych do uczenia maszynowego i nauki o danych. Jako analityk danych możesz chcieć zaprezentować swoje ustalenia dotyczące zestawu danych lub wdrożyć przeszkolony model. Usprawnione aplikacje są przydatne do prezentowania postępów w projekcie zespołowi, pozyskiwania i udostępniania spostrzeżeń menedżerom, a nawet uzyskiwania informacji zwrotnych od klientów.
Dzięki zintegrowanemu środowisku programistycznemu (IDE) firmy Studio Amazon SageMaker w Laboratorium Jupytera 3, możemy tworzyć, uruchamiać i obsługiwać aplikacje internetowe Streamlit w tym samym środowisku do celów programistycznych. W tym poście opisano, jak tworzyć i hostować aplikacje Streamlit w Studio w bezpieczny i powtarzalny sposób bez czasochłonnego programowania front-end. Jako przykład używamy zwyczaju Amazon Rekognition demo, które opatrzy adnotacją i etykietą przesłany obraz. Będzie to służyć jako punkt wyjścia i można go uogólnić, aby zademonstrować dowolny niestandardowy model uczenia maszynowego. Kod tego bloga można znaleźć w this Repozytorium GitHub.
Omówienie rozwiązania
Poniżej znajduje się schemat architektury naszego rozwiązania.
Użytkownik najpierw uzyskuje dostęp do Studio przez przeglądarkę. Serwer Jupyter powiązany z profilem użytkownika działa w instancji Studio Amazon Elastic Compute Cloud (Amazon EC2). Wewnątrz instancji Studio EC2 istnieje przykładowy kod i lista zależności. Użytkownik może uruchomić aplikację Streamlit, app.py, w terminalu systemowym. Studio uruchamia interfejs użytkownika JupyterLab na serwerze Jupyter, oddzielony od jądra notebooka. Serwer Jupyter jest dostarczany z serwerem proxy i umożliwia nam dostęp do naszej aplikacji Streamlit. Po uruchomieniu aplikacji użytkownik może zainicjować oddzielną sesję za pośrednictwem serwera proxy AWS Jupyter, dostosowując adres URL.
Od strony bezpieczeństwa AWS Jupyter Proxy jest rozszerzony o uwierzytelnianie AWS. Jeśli użytkownik ma dostęp do konta AWS, identyfikatora domeny Studio i profilu użytkownika, może uzyskać dostęp do łącza.
Utwórz Studio przy użyciu JupyterLab 3.0
Aby to rozwiązanie działało, musi być zainstalowane Studio z JupyterLab 3. Starsze wersje mogą nie obsługiwać funkcji opisanych w tym poście. Aby uzyskać więcej informacji, patrz Amazon SageMaker Studio i SageMaker Notebook Instance są teraz wyposażone w notebooki JupyterLab 3, aby zwiększyć produktywność programistów. Domyślnie Studio jest dostarczane z JupyterLab 3. Powinieneś sprawdzić wersję i zmienić ją, jeśli używasz starszej wersji. Aby uzyskać więcej informacji, patrz Wersjonowanie JupyterLab.
Możesz skonfigurować Studio za pomocą Zestaw programistyczny AWS Cloud (CDK AWS); aby uzyskać więcej informacji, patrz Skonfiguruj Amazon SageMaker Studio z Jupyter Lab 3 przy użyciu AWS CDK. Alternatywnie możesz użyć konsoli SageMaker do zmiany ustawień domeny. Wykonaj następujące kroki:
- W konsoli SageMaker wybierz domeny w okienku nawigacji.
- Wybierz swoją domenę i wybierz Edytuj.
- W razie zamówieenia projektu Domyślna wersja Jupyter Lab, upewnij się, że wersja jest ustawiona na Laboratorium Jupytera 3.0.
(Opcjonalnie) Utwórz przestrzeń współdzieloną
Możemy użyć konsoli SageMaker lub AWS CLI, aby dodać obsługę współdzielonych przestrzeni do istniejącej domeny, wykonując czynności opisane w dokumentacji lub na tym blogu. Tworzenie współdzielonej przestrzeni w AWS ma następujące zalety:
- Współpraca: wspólna przestrzeń umożliwia wielu użytkownikom lub zespołom współpracę nad projektem lub zestawem zasobów bez konieczności powielania danych lub infrastruktury.
- Oszczędność kosztów: Zamiast tworzenia i zarządzania własnymi zasobami przez każdego użytkownika lub zespół, współdzielona przestrzeń może być bardziej opłacalna, ponieważ zasoby można łączyć i udostępniać wielu użytkownikom.
- Uproszczone zarządzanie: dzięki przestrzeni współdzielonej administratorzy mogą centralnie zarządzać zasobami, zamiast zarządzać wieloma instancjami tych samych zasobów dla każdego użytkownika lub zespołu.
- Ulepszona skalowalność: współdzieloną przestrzeń można łatwiej skalować w górę lub w dół, aby sprostać zmieniającym się wymaganiom, ponieważ zasoby można przydzielać dynamicznie w celu zaspokojenia potrzeb różnych użytkowników lub zespołów.
- Większe bezpieczeństwo: centralizacja zasobów we wspólnej przestrzeni umożliwia poprawę bezpieczeństwa, ponieważ kontrole dostępu i monitorowanie mogą być stosowane łatwiej i spójniej.
Zainstaluj zależności i sklonuj przykład w Studio
Następnie uruchamiamy Studio i otwieramy terminal systemowy. Używamy SageMaker IDE do klonowania naszego przykładu i terminala systemowego do uruchamiania naszej aplikacji. Kod tego bloga można znaleźć w this Repozytorium GitHub. Zaczynamy od sklonowania repozytorium:
Następnie otwieramy Terminal systemowy.
Po sklonowaniu w terminalu systemowym zainstaluj zależności, aby uruchomić nasz przykładowy kod, uruchamiając następujące polecenie. To najpierw pip zainstaluje zależności, uruchamiając pip install --no-cache-dir -r requirements.txt
, no-cache-dir
flag wyłączy pamięć podręczną. Buforowanie pomaga przechowywać pliki instalacyjne (.whl
) modułów instalowanych przez pip. Przechowuje również pliki źródłowe (.tar.gz
), aby uniknąć ponownego pobierania, gdy nie wygasły. Jeśli na naszym dysku twardym nie ma miejsca lub jeśli chcemy, aby obraz Dockera był jak najmniejszy, możemy użyć tej flagi, aby polecenie zostało wykonane do końca przy minimalnym zużyciu pamięci. Następnie skrypt zainstaluje pakiety iproute
i jq
, który zostanie użyty w następnym kroku.sh setup.sh
Uruchom Streamlit Demo i utwórz link do udostępniania
Aby sprawdzić, czy wszystkie zależności zostały pomyślnie zainstalowane i wyświetlić demo Amazon Rekognition, uruchom następujące polecenie:
Zostanie wyświetlony numer portu hostującego aplikację.
Należy pamiętać, że podczas opracowywania pomocne może być automatyczne ponowne uruchomienie skryptu when app.py
jest modyfikowany na dysku. Aby to zrobić, abyśmy mogli zmodyfikować plik runOnSave opcja konfiguracji dodając --server.runOnSave true
flaga na naszą komendę:
Poniższy zrzut ekranu pokazuje przykład tego, co powinno być wyświetlane na terminalu.
Z powyższego przykładu widzimy numer portu, identyfikator domeny i adres URL studia, na którym uruchamiamy naszą aplikację. Wreszcie możemy zobaczyć adres URL, którego potrzebujemy, aby uzyskać dostęp do naszej strumieniowej aplikacji. Ten skrypt modyfikuje adres URL Studio, zastępując go lab?
w proxy/[PORT NUMBER]/
. Zostanie wyświetlona demonstracja wykrywania obiektów rozpoznawania, jak pokazano na poniższym zrzucie ekranu.
Teraz, gdy aplikacja Streamlit działa, możemy udostępnić ten adres URL każdemu, kto ma dostęp do tego identyfikatora domeny Studio i profilu użytkownika. Aby ułatwić udostępnianie tych wersji demonstracyjnych, możemy sprawdzić stan i wyświetlić listę wszystkich uruchomionych aplikacji streamlit, uruchamiając następujące polecenie: sh status.sh
Możemy użyć skryptów cyklu życia lub współdzielonych przestrzeni, aby rozszerzyć tę pracę. Zamiast ręcznie uruchamiać skrypty powłoki i instalować zależności, użyj skrypty cyklu życia usprawnić ten proces. Aby rozwijać i rozszerzać tę aplikację w zespole i udostępniać pulpity nawigacyjne współpracownikom, użyj wspólne przestrzenie. Tworząc przestrzenie współdzielone w Studio, użytkownicy mogą współpracować w przestrzeni współdzielonej w celu tworzenia aplikacji Streamlit w czasie rzeczywistym. Wszystkie zasoby w przestrzeni współdzielonej są filtrowane i oznaczane, co ułatwia skupienie się na projektach ML i zarządzanie kosztami. Zapoznaj się z poniższym kodem, aby utworzyć własne aplikacje w Studio.
Oczyszczanie
Po zakończeniu korzystania z aplikacji chcemy zwolnić porty nasłuchowe. Aby usprawnić wszystkie uruchomione procesy i zwolnić je do użytku, możemy uruchomić nasz skrypt czyszczący: sh cleanup.sh
Wnioski
W tym poście pokazaliśmy kompleksowy przykład hostowania demonstracji Streamlit dla zadania wykrywania obiektów przy użyciu usługi Amazon Rekognition. Szczegółowo omówiliśmy motywacje do tworzenia szybkich aplikacji internetowych, kwestie bezpieczeństwa i konfigurację wymaganą do uruchomienia naszej własnej aplikacji Streamlit w Studio. Na koniec zmodyfikowaliśmy wzorzec adresu URL w naszej przeglądarce internetowej, aby zainicjować oddzielną sesję za pośrednictwem serwera proxy AWS Jupyter.
Ta demonstracja umożliwia przesłanie dowolnego obrazu i wizualizację wyników z Amazon Rekognition. Wyniki są również przetwarzane i możesz pobrać plik CSV ze wszystkimi ramkami ograniczającymi za pośrednictwem aplikacji. Możesz rozszerzyć tę pracę, aby dodawać adnotacje i etykietować własny zestaw danych lub zmodyfikować kod, aby zaprezentować swój niestandardowy model!
O autorach
Dipika Khullar jest inżynierem ML w Laboratorium rozwiązań Amazon ML. Pomaga klientom integrować rozwiązania ML w celu rozwiązywania ich problemów biznesowych. Ostatnio budowała potoki szkoleniowe i wnioskowania dla klientów mediów oraz modele predykcyjne dla marketingu.
Marcelo Aberle jest inżynierem ML w organizacji AWS AI. Kieruje działaniami MLOps w Laboratorium rozwiązań Amazon ML, pomagając klientom projektować i wdrażać skalowalne systemy uczenia maszynowego. Jego misją jest prowadzenie klientów w ich podróży ML w przedsiębiorstwie i przyspieszenie ich ścieżki ML do produkcji.
Yash Shah jest kierownikiem naukowym w Laboratorium rozwiązań Amazon ML. On i jego zespół naukowców stosowanych i inżynierów ML pracują nad szeregiem przypadków użycia ML w opiece zdrowotnej, sporcie, motoryzacji i produkcji.
- Dystrybucja treści i PR oparta na SEO. Uzyskaj wzmocnienie już dziś.
- Platoblockchain. Web3 Inteligencja Metaverse. Wzmocniona wiedza. Dostęp tutaj.
- Źródło: https://aws.amazon.com/blogs/machine-learning/build-streamlit-apps-in-amazon-sagemaker-studio/
- :Jest
- $W GÓRĘ
- 100
- 7
- a
- powyżej
- przyśpieszyć
- dostęp
- Konto
- w poprzek
- Administratorzy
- AI
- Wszystkie kategorie
- przydzielony
- pozwala
- Amazonka
- Amazon EC2
- Amazon Rekognition
- Amazon Sage Maker
- Studio Amazon SageMaker
- i
- ktoś
- Aplikacja
- aplikacje
- stosowany
- mobilne i webowe
- architektura
- SĄ
- AS
- aspekt
- powiązany
- At
- Uwierzytelnianie
- automatycznie
- motoryzacyjny
- AWS
- BE
- Korzyści
- Blog
- podnieść
- Skrzynki
- przeglądarka
- budować
- Budowanie
- wybudowany
- biznes
- by
- Cache
- CAN
- Etui
- zmiana
- wymiana pieniędzy
- ZOBACZ
- Dodaj
- Chmura
- kod
- współpracować
- jak
- kompletny
- ukończenia
- obliczać
- Rozważania
- Konsola
- kontroli
- opłacalne
- Koszty:
- Stwórz
- Tworzenie
- zwyczaj
- Klientów
- dane
- nauka danych
- naukowiec danych
- Domyślnie
- wymagania
- Demos
- rozwijać
- Wnętrze
- szczegółowe
- Wykrywanie
- rozwijać
- Deweloper
- rozwijanie
- oprogramowania
- różne
- Doker
- domena
- na dół
- pobieranie
- napęd
- dynamicznie
- każdy
- łatwiej
- z łatwością
- starania
- koniec końców
- inżynier
- Inżynierowie
- Enterprise
- Środowisko
- Parzyste
- przykład
- Przede wszystkim system został opracowany
- istnieje
- rozciągać się
- Korzyści
- informacja zwrotna
- filet
- Akta
- W końcu
- i terminów, a
- Skupiać
- następujący
- W razie zamówieenia projektu
- znaleziono
- Darmowy
- od
- zyskuje
- otrzymać
- miejsce
- poprowadzi
- Ciężko
- dysk twardy
- Have
- mający
- opieki zdrowotnej
- pomocny
- pomoc
- pomaga
- gospodarz
- Hosting
- W jaki sposób
- How To
- HTML
- HTTPS
- ID
- obraz
- wdrożenia
- ulepszony
- in
- Informacja
- Infrastruktura
- zainicjować
- spostrzeżenia
- zainstalować
- zainstalowany
- Instalacja
- przykład
- zamiast
- integrować
- zintegrowany
- interakcji
- interfejsy
- IT
- podróż
- jpg
- Trzymać
- laboratorium
- Etykieta
- uruchomić
- prowadzący
- nauka
- Biblioteka
- wifecycwe
- LINK
- Lista
- Słuchanie
- długo
- maszyna
- uczenie maszynowe
- robić
- WYKONUJE
- Dokonywanie
- zarządzanie
- i konserwacjami
- kierownik
- Zarządzający
- zarządzający
- sposób
- ręcznie
- produkcja
- Marketing
- Może..
- Media
- Poznaj nasz
- Pamięć
- może
- minimalny
- Misja
- ML
- MLOps
- model
- modele
- zmodyfikowano
- modyfikować
- Moduły
- monitorowanie
- jeszcze
- większość
- motywacje
- wielokrotność
- Nawigacja
- Potrzebować
- wymagania
- Następny
- notatnik
- numer
- przedmiot
- Wykrywanie obiektów
- of
- on
- koncepcja
- open source
- organizacja
- opisane
- wytyczne
- własny
- Pakiety
- chleb
- ścieżka
- Wzór
- plato
- Analiza danych Platona
- PlatoDane
- punkt
- możliwy
- Post
- problemy
- wygląda tak
- Obrobiony
- procesów
- Produkcja
- Profil
- Postęp
- projekt
- projektowanie
- pełnomocnik
- cele
- Python
- Szybki
- zasięg
- raczej
- real
- w czasie rzeczywistym
- niedawno
- składnica
- wymagany
- wymagania
- Zasoby
- Efekt
- run
- bieganie
- sagemaker
- taki sam
- Oszczędności
- Skalowalność
- skalowalny
- nauka
- Naukowiec
- Naukowcy
- skrypty
- bezpieczne
- bezpieczeństwo
- oddzielny
- służyć
- Sesja
- zestaw
- w panelu ustawień
- ustawienie
- Share
- shared
- dzielenie
- Powłoka
- powinien
- prezentacja
- pokazane
- Targi
- mały
- So
- rozwiązanie
- Rozwiązania
- ROZWIĄZANIA
- Źródło
- Typ przestrzeni
- obowiązuje
- SPORTOWE
- początek
- Startowy
- Rynek
- Ewolucja krok po kroku
- Cel
- sklep
- sklep
- opływowy
- studio
- Z powodzeniem
- wsparcie
- system
- systemy
- Zadanie
- zespół
- Zespoły
- terminal
- że
- Połączenia
- Źródło
- ich
- Im
- Te
- Przez
- czas
- czasochłonne
- do
- przeszkolony
- Trening
- ui
- przesłanych
- URL
- us
- Stosowanie
- posługiwać się
- Użytkownik
- Użytkownicy
- zweryfikować
- wersja
- Zobacz i wysłuchaj
- sieć
- Aplikacje internetowe
- przeglądarka internetowa
- Co
- który
- Podczas
- KIM
- będzie
- w
- w ciągu
- bez
- Praca
- pracujący
- You
- Twój
- zefirnet