Dezvoltarea interfețelor web pentru a interacționa cu un model de învățare automată (ML) este o sarcină obositoare. Cu Iluminat în flux, dezvoltarea aplicațiilor demonstrative pentru soluția dvs. ML este ușoară. Iluminat în flux este o bibliotecă Python open-source care facilitează crearea și partajarea aplicațiilor web pentru ML și știința datelor. În calitate de om de știință de date, poate doriți să vă prezentați concluziile pentru un set de date sau să implementați un model instruit. Aplicațiile Streamlit sunt utile pentru a prezenta echipei dvs. progresul unui proiect, pentru a obține și a partaja informații managerilor dvs. și chiar pentru a obține feedback de la clienți.
Cu mediul de dezvoltare integrat (IDE) al Amazon SageMaker Studio cu Jupyter Lab 3, putem construi, rula și servi aplicații web Streamlit din același mediu în scopuri de dezvoltare. Această postare prezintă cum să construiți și să găzduiți aplicații Streamlit în Studio într-o manieră sigură și reproductibilă, fără nicio dezvoltare front-end care necesită timp. De exemplu, folosim un obicei Amazon Rekognition demo, care va adnota și va eticheta o imagine încărcată. Acesta va servi ca punct de plecare și poate fi generalizat pentru a demonstra orice model ML personalizat. Codul pentru acest blog poate fi găsit în acesta GitHub depozit.
Prezentare generală a soluțiilor
Mai jos este diagrama arhitecturii soluției noastre.
Un utilizator accesează mai întâi Studio prin browser. Serverul Jupyter asociat cu profilul utilizatorului rulează în cadrul instanței Studio Amazon Elastic Compute Cloud (Amazon EC2). În interiorul instanței Studio EC2 există codul exemplu și lista de dependențe. Utilizatorul poate rula aplicația Streamlit, app.py, în terminalul de sistem. Studio rulează interfața de utilizare JupyterLab într-un server Jupyter, decuplat de nucleele de notebook. Serverul Jupyter vine cu un proxy și ne permite să accesăm aplicația noastră Streamlit. Odată ce aplicația rulează, utilizatorul poate iniția o sesiune separată prin AWS Jupyter Proxy ajustând adresa URL.
Din punct de vedere al securității, proxy-ul AWS Jupyter este extins prin autentificare AWS. Atâta timp cât un utilizator are acces la contul AWS, ID-ul domeniului Studio și profilul de utilizator, acesta poate accesa linkul.
Creați Studio folosind JupyterLab 3.0
Studio cu JupyterLab 3 trebuie instalat pentru ca această soluție să funcționeze. Este posibil ca versiunile mai vechi să nu accepte funcțiile prezentate în această postare. Pentru mai multe informații, consultați Amazon SageMaker Studio și SageMaker Notebook Instance vin acum cu notebook-uri JupyterLab 3 pentru a crește productivitatea dezvoltatorilor. În mod implicit, Studio vine cu JupyterLab 3. Ar trebui să verificați versiunea și să o schimbați dacă rulați o versiune mai veche. Pentru mai multe informații, consultați Versiune JupyterLab.
Puteți configura Studio folosind Kit AWS Cloud Development (AWS CDK); pentru mai multe informații, consultați Configurați Amazon SageMaker Studio cu Jupyter Lab 3 folosind AWS CDK. Alternativ, puteți utiliza consola SageMaker pentru a modifica setările domeniului. Parcurgeți următorii pași:
- Pe consola SageMaker, alegeți domenii în panoul de navigare.
- Selectați domeniul dvs. și alegeți Editati.
- Pentru Versiunea implicită Jupyter Lab, asigurați-vă că versiunea este setată la Jupyter Lab 3.0.
(Opțional) Creați un spațiu comun
Putem folosi consola SageMaker sau AWS CLI pentru a adăuga suport pentru spații partajate la un domeniu existent, urmând pașii din documente sau din acest blog. Crearea unui spațiu partajat în AWS are următoarele beneficii:
- Colaborare: Un spațiu partajat permite mai multor utilizatori sau echipe să colaboreze la un proiect sau un set de resurse, fără a fi nevoie să dubleze date sau infrastructură.
- Economii de costuri: în loc ca fiecare utilizator sau echipă să-și creeze și să-și gestioneze propriile resurse, un spațiu comun poate fi mai rentabil, deoarece resursele pot fi puse în comun și partajate între mai mulți utilizatori.
- Administrare simplificată: Cu un spațiu partajat, administratorii pot gestiona resursele central, în loc să fie nevoiți să gestioneze mai multe instanțe ale acelorași resurse pentru fiecare utilizator sau echipă.
- Scalabilitate îmbunătățită: un spațiu comun poate fi mărit sau redus mai ușor pentru a satisface cerințele în schimbare, deoarece resursele pot fi alocate dinamic pentru a răspunde nevoilor diferiților utilizatori sau echipe.
- Securitate sporită: prin centralizarea resurselor într-un spațiu comun, securitatea poate fi îmbunătățită, deoarece controalele și monitorizarea accesului pot fi aplicate mai ușor și mai consecvent.
Instalați dependențe și clonați exemplul pe Studio
Apoi, lansăm Studio și deschidem terminalul de sistem. Folosim IDE-ul SageMaker pentru a clona exemplul nostru și terminalul de sistem pentru a lansa aplicația noastră. Codul pentru acest blog poate fi găsit în acesta GitHub depozit. Începem cu clonarea depozitului:
Apoi, deschidem terminalul de sistem.
Odată clonat, în terminalul de sistem instalați dependențe pentru a rula codul nostru exemplu, rulând următoarea comandă. Acest lucru va instala mai întâi dependențele prin rulare pip install --no-cache-dir -r requirements.txt
. no-cache-dir
flag va dezactiva memoria cache. Memorarea în cache ajută la stocarea fișierelor de instalare (.whl
) a modulelor pe care le instalați prin pip. De asemenea, stochează fișierele sursă (.tar.gz
) pentru a evita re-descărcarea atunci când acestea nu au expirat. Dacă nu există spațiu pe hard disk sau dacă dorim să păstrăm o imagine Docker cât mai mică posibil, putem folosi acest indicator, astfel încât comanda să ruleze până la finalizare cu o utilizare minimă a memoriei. În continuare, scriptul va instala pachete iproute
și jq
, care va fi folosit în pasul următor.sh setup.sh
Rulați Streamlit Demo și creați un link care poate fi partajat
Pentru a verifica că toate dependențele sunt instalate cu succes și pentru a vedea demonstrația Amazon Rekognition, rulați următoarea comandă:
Va fi afișat numărul portului care găzduiește aplicația.
Rețineți că în timpul dezvoltării, ar putea fi util să rulați din nou automat scriptul când app.py
este modificat pe disc. Pentru a face, astfel încât să putem modifica runOnSave opțiunea de configurare prin adăugarea --server.runOnSave true
flag la comanda noastră:
Următoarea captură de ecran arată un exemplu de ceea ce ar trebui să fie afișat pe terminal.
Din exemplul de mai sus vedem numărul portului, ID-ul domeniului și adresa URL a studioului pe care rulăm aplicația. În cele din urmă, putem vedea adresa URL pe care trebuie să o folosim pentru a accesa aplicația noastră streamlit. Acest script modifică URL-ul Studio, înlocuiește lab?
cu proxy/[PORT NUMBER]/
. Va fi afișată demonstrația Rekognition Object Detection, așa cum se arată în următoarea captură de ecran.
Acum că avem aplicația Streamlit în funcțiune, putem partaja această adresă URL cu oricine are acces la acest ID de domeniu Studio și la acest profil de utilizator. Pentru a ușura partajarea acestor demonstrații, putem verifica starea și lista toate aplicațiile streamlit care rulează, rulând următoarea comandă: sh status.sh
Putem folosi scripturi ciclului de viață sau spații partajate pentru a extinde această activitate. În loc să rulați manual scripturile shell și să instalați dependențe, utilizați scripturi de ciclu de viață pentru a eficientiza acest proces. Pentru a dezvolta și extinde această aplicație cu o echipă și a partaja tablouri de bord cu colegii, utilizați spații comune. Prin crearea de spații partajate în Studio, utilizatorii pot colabora în spațiul comun pentru a dezvolta o aplicație Streamlit în timp real. Toate resursele dintr-un spațiu partajat sunt filtrate și etichetate, ceea ce facilitează concentrarea asupra proiectelor ML și gestionarea costurilor. Consultați următorul cod pentru a vă crea propriile aplicații în Studio.
A curăța
După ce am terminat de folosit aplicația, vrem să eliberăm porturile de ascultare. Pentru a îmbunătăți toate procesele și pentru a le elibera pentru utilizare, putem rula scriptul nostru de curățare: sh cleanup.sh
Concluzie
În această postare, am arătat un exemplu complet de găzduire a unei demonstrații Streamlit pentru o sarcină de detectare a obiectelor folosind Amazon Rekognition. Am detaliat motivațiile pentru construirea de aplicații web rapide, considerentele de securitate și configurarea necesară pentru a rula propria noastră aplicație Streamlit în Studio. În cele din urmă, am modificat modelul URL în browserul nostru web pentru a iniția o sesiune separată prin AWS Jupyter Proxy.
Această demonstrație vă permite să încărcați orice imagine și să vizualizați rezultatele de la Amazon Rekognition. Rezultatele sunt, de asemenea, procesate și puteți descărca un fișier CSV cu toate casetele de delimitare prin intermediul aplicației. Puteți extinde această activitate pentru a adnota și a eticheta propriul set de date sau puteți modifica codul pentru a vă prezenta modelul personalizat!
Despre Autori
Dipika Khullar este inginer ML în Laboratorul Amazon ML Solutions. Ea îi ajută pe clienți să integreze soluții ML pentru a-și rezolva problemele de afaceri. Cel mai recent, ea a construit canale de instruire și inferență pentru clienții media și modele predictive pentru marketing.
Marcelo Aberle este inginer ML în organizația AWS AI. El conduce eforturile MLOps la Laboratorul Amazon ML Solutions, ajutând clienții să proiecteze și să implementeze sisteme ML scalabile. Misiunea lui este de a ghida clienții în călătoria lor ML pentru întreprinderi și de a-și accelera calea ML către producție.
Yash Shah este manager de știință în Laboratorul Amazon ML Solutions. El și echipa sa de oameni de știință aplicați și ingineri ML lucrează la o serie de cazuri de utilizare ML din domeniul sănătății, sport, auto și producție.
- Distribuție de conținut bazat pe SEO și PR. Amplifică-te astăzi.
- Platoblockchain. Web3 Metaverse Intelligence. Cunoștințe amplificate. Accesați Aici.
- Sursa: https://aws.amazon.com/blogs/machine-learning/build-streamlit-apps-in-amazon-sagemaker-studio/
- :este
- $UP
- 100
- 7
- a
- mai sus
- accelera
- acces
- Cont
- peste
- administratori
- AI
- TOATE
- alocate
- permite
- Amazon
- Amazon EC2
- Amazon Rekognition
- Amazon SageMaker
- Amazon SageMaker Studio
- și
- oricine
- aplicaţia
- aplicatii
- aplicat
- Apps
- arhitectură
- SUNT
- AS
- aspect
- asociate
- At
- Autentificare
- în mod automat
- auto
- AWS
- BE
- Beneficiile
- Blog
- a stimula
- Dulapuri
- browser-ul
- construi
- Clădire
- construit
- afaceri
- by
- Cache
- CAN
- cazuri
- Schimbare
- schimbarea
- verifica
- Alege
- Cloud
- cod
- colabora
- cum
- Completă
- completare
- Calcula
- Considerații
- Consoleze
- controale
- cost-eficiente
- Cheltuieli
- crea
- Crearea
- personalizat
- clienţii care
- de date
- știința datelor
- om de știință de date
- Mod implicit
- cererile
- Demos
- implementa
- Amenajări
- detaliat
- Detectare
- dezvolta
- Dezvoltator
- în curs de dezvoltare
- Dezvoltare
- diferit
- Docher
- domeniu
- jos
- Descarca
- conduce
- dinamic
- fiecare
- mai ușor
- cu ușurință
- Eforturile
- un capăt la altul
- inginer
- inginerii
- Afacere
- Mediu inconjurator
- Chiar
- exemplu
- existent
- există
- extinde
- DESCRIERE
- feedback-ul
- Fișier
- Fişiere
- În cele din urmă
- First
- Concentra
- următor
- Pentru
- găsit
- Gratuit
- din
- câștigă
- obține
- obtinerea
- ghida
- Greu
- unitate hard disk
- Avea
- având în
- de asistență medicală
- util
- ajutor
- ajută
- gazdă
- găzduire
- Cum
- Cum Pentru a
- HTML
- HTTPS
- ID
- imagine
- punerea în aplicare a
- îmbunătățit
- in
- informații
- Infrastructură
- iniția
- perspective
- instala
- instalat
- Instalarea
- instanță
- in schimb
- integra
- integrate
- interacţiona
- interfeţe
- IT
- călătorie
- jpg
- A pastra
- de laborator
- Etichetă
- lansa
- conducere
- învăţare
- Bibliotecă
- ciclu de viață
- LINK
- Listă
- Ascultare
- Lung
- maşină
- masina de învățare
- face
- FACE
- Efectuarea
- administra
- administrare
- manager
- Manageri
- de conducere
- manieră
- manual
- de fabricaţie
- Marketing
- Mai..
- Mass-media
- Întâlni
- Memorie
- ar putea
- minim
- Misiune
- ML
- MLOps
- model
- Modele
- modificată
- modifica
- Module
- Monitorizarea
- mai mult
- cele mai multe
- motivații
- multiplu
- Navigare
- Nevoie
- nevoilor
- următor
- caiet
- număr
- obiect
- Detectarea obiectelor
- of
- on
- deschide
- open-source
- organizație
- a subliniat
- contururi
- propriu
- ofertele
- pâine
- cale
- Model
- Plato
- Informații despre date Platon
- PlatoData
- Punct
- posibil
- Post
- probleme
- proces
- Procesat
- procese
- producere
- Profil
- Progres
- proiect
- Proiecte
- împuternicit
- scopuri
- Piton
- Rapid
- gamă
- mai degraba
- real
- în timp real
- recent
- depozit
- necesar
- Cerinţe
- Resurse
- REZULTATE
- Alerga
- funcţionare
- sagemaker
- acelaşi
- Economie
- scalabilitate
- scalabil
- Ştiinţă
- Om de stiinta
- oamenii de stiinta
- script-uri
- sigur
- securitate
- distinct
- servi
- sesiune
- set
- setări
- configurarea
- Distribuie
- comun
- partajarea
- Coajă
- să
- prezenta
- indicat
- Emisiuni
- mic
- So
- soluţie
- soluţii
- REZOLVAREA
- Sursă
- Spaţiu
- spații
- Sportul
- Începe
- Pornire
- Stare
- Pas
- paşi
- stoca
- magazine
- simplifica
- studio
- Reușit
- a sustine
- sistem
- sisteme
- Sarcină
- echipă
- echipe
- Terminal
- acea
- Sursa
- lor
- Lor
- Acestea
- Prin
- timp
- consumă timp
- la
- dresat
- Pregătire
- ui
- încărcat
- URL-ul
- us
- Folosire
- utilizare
- Utilizator
- utilizatorii
- verifica
- versiune
- Vizualizare
- web
- aplicații web
- browser web
- Ce
- care
- în timp ce
- OMS
- voi
- cu
- în
- fără
- Apartamente
- de lucru
- Tu
- Ta
- zephyrnet