Razvijanje spletnih vmesnikov za interakcijo z modelom strojnega učenja (ML) je dolgočasna naloga. z Poenostavljeno, je razvoj predstavitvenih aplikacij za vašo rešitev ML enostaven. Poenostavljeno je odprtokodna knjižnica Python, ki olajša ustvarjanje in skupno rabo spletnih aplikacij za strojno učenje in podatkovno znanost. Kot podatkovni znanstvenik boste morda želeli predstaviti svoje ugotovitve za nabor podatkov ali uvesti usposobljen model. Aplikacije Streamlit so uporabne za predstavitev napredka pri projektu vaši ekipi, pridobivanje in deljenje vpogledov vašim vodjem ter celo pridobivanje povratnih informacij od strank.
Z integriranim razvojnim okoljem (IDE) of Amazon SageMaker Studio z Jupyter Lab 3, lahko gradimo, izvajamo in strežemo spletne aplikacije Streamlit iz istega okolja za razvojne namene. Ta objava opisuje, kako zgraditi in gostiti aplikacije Streamlit v Studiu na varen in ponovljiv način brez zamudnega razvoja na sprednji strani. Kot primer uporabimo običaj Amazonsko ponovno vžiganje demo, ki bo naloženo sliko označil in označil. To bo služilo kot izhodišče in ga je mogoče posplošiti za predstavitev katerega koli modela ML po meri. Kodo za ta blog lahko najdete tukaj GitHub repozitorij.
Pregled rešitev
Sledi diagram arhitekture naše rešitve.
Uporabnik najprej dostopa do Studia prek brskalnika. Strežnik Jupyter, povezan z uporabniškim profilom, deluje znotraj instance Studio Amazon Elastic Compute Cloud (Amazon EC2). Znotraj instance Studio EC2 obstaja primer kode in seznam odvisnosti. Uporabnik lahko zažene aplikacijo Streamlit, app.py, v sistemskem terminalu. Studio izvaja uporabniški vmesnik JupyterLab v strežniku Jupyter, ločen od jeder prenosnika. Strežnik Jupyter ima proxy in nam omogoča dostop do naše aplikacije Streamlit. Ko se aplikacija zažene, lahko uporabnik sproži ločeno sejo prek AWS Jupyter Proxy s prilagoditvijo URL-ja.
Z varnostnega vidika je AWS Jupyter Proxy razširjen z avtentikacijo AWS. Dokler ima uporabnik dostop do računa AWS, ID-ja domene Studio in uporabniškega profila, lahko dostopa do povezave.
Ustvarite Studio z uporabo JupyterLab 3.0
Za delovanje te rešitve mora biti nameščen Studio z JupyterLab 3. Starejše različice morda ne podpirajo funkcij, opisanih v tej objavi. Za več informacij glejte Amazon SageMaker Studio in SageMaker Notebook Instance sta zdaj opremljena z prenosniki JupyterLab 3 za povečanje produktivnosti razvijalcev. Studio ima privzeto JupyterLab 3. Preverite različico in jo spremenite, če uporabljate starejšo različico. Za več informacij glejte JupyterLab Versioning.
Studio lahko nastavite z uporabo Komplet za razvoj oblaka AWS (AWS CDK); za več informacij glejte Nastavite Amazon SageMaker Studio z Jupyter Lab 3 z uporabo AWS CDK. Lahko pa uporabite konzolo SageMaker, da spremenite nastavitve domene. Izvedite naslednje korake:
- Na konzoli SageMaker izberite Domene v podoknu za krmarjenje.
- Izberite svojo domeno in izberite Uredi.
- za Privzeta različica Jupyter Lab, se prepričajte, da je različica nastavljena na Jupyter Lab 3.0.
(Izbirno) Ustvarite skupni prostor
S konzolo SageMaker ali AWS CLI lahko dodamo podporo za skupne prostore v obstoječo domeno, tako da sledimo korakom v dokumentih ali v tem blogu. Ustvarjanje skupnega prostora v AWS ima naslednje prednosti:
- Sodelovanje: Skupni prostor omogoča več uporabnikom ali skupinam, da sodelujejo pri projektu ali nizu virov, ne da bi morali podvajati podatke ali infrastrukturo.
- Prihranek pri stroških: Namesto, da vsak uporabnik ali ekipa ustvarja in upravlja svoje lastne vire, je skupni prostor lahko bolj stroškovno učinkovit, saj lahko vire združi in deli več uporabnikov.
- Poenostavljeno upravljanje: s skupnim prostorom lahko skrbniki centralno upravljajo vire, namesto da bi morali upravljati več primerkov istih virov za vsakega uporabnika ali ekipo.
- Izboljšana razširljivost: prostor v skupni rabi je mogoče lažje razširiti navzgor ali navzdol, da bi zadostil spreminjajočim se zahtevam, saj je mogoče vire dinamično dodeljevati za potrebe različnih uporabnikov ali skupin.
- Izboljšana varnost: S centralizacijo virov v skupnem prostoru je mogoče varnost izboljšati, saj je mogoče lažje in dosledneje uporabljati nadzor dostopa in spremljanje.
Namestite odvisnosti in klonirajte primer v Studio
Nato zaženemo Studio in odpremo sistemski terminal. Uporabljamo SageMaker IDE za kloniranje našega primera in sistemski terminal za zagon naše aplikacije. Kodo za ta blog lahko najdete tukaj GitHub repozitorij. Začnemo s kloniranjem repozitorija:
Nato odpremo sistemski terminal.
Ko je kloniran, v sistemskem terminalu namestite odvisnosti za zagon naše vzorčne kode, tako da zaženete naslednji ukaz. To bo najprej namestilo odvisnosti z zagonom pip install --no-cache-dir -r requirements.txt
. no-cache-dir
bo onemogočila predpomnilnik. Predpomnjenje pomaga shraniti namestitvene datoteke (.whl
) modulov, ki jih namestite prek pip. Shranjuje tudi izvorne datoteke (.tar.gz
), da se izognete ponovnemu prenosu, ko še niso potekle. Če na našem trdem disku ni prostora ali če želimo ohraniti čim manjšo sliko Dockerja, lahko uporabimo to zastavico, da se ukaz izvede do konca z minimalno porabo pomnilnika. Nato bo skript namestil pakete iproute
in jq
, ki bo uporabljen v naslednjem koraku.sh setup.sh
Zaženite Streamlit Demo in ustvarite povezavo za skupno rabo
Če želite preveriti, ali so vse odvisnosti uspešno nameščene, in si ogledati predstavitev Amazon Rekognition, zaženite naslednji ukaz:
Prikazana bo številka vrat, ki gostijo aplikacijo.
Upoštevajte, da bi bilo med razvijanjem morda koristno samodejno znova zagnati skript, ko app.py
je spremenjen na disku. Narediti, tako da lahko spremenimo runOnSave možnost konfiguracije z dodajanjem --server.runOnSave true
zastavica našemu ukazu:
Naslednji posnetek zaslona prikazuje primer, kaj naj bo prikazano na terminalu.
Iz zgornjega primera vidimo številko vrat, ID domene in URL studia, na katerem izvajamo našo aplikacijo. Končno lahko vidimo URL, ki ga moramo uporabiti za dostop do naše poenostavljene aplikacije. Ta skript spreminja URL Studio in nadomešča lab?
z proxy/[PORT NUMBER]/
. Prikazana bo predstavitev zaznavanja predmeta prepoznavanja, kot je prikazano na naslednjem posnetku zaslona.
Zdaj, ko aplikacija Streamlit deluje, lahko ta URL delimo z vsemi, ki imajo dostop do tega ID-ja domene Studio in uporabniškega profila. Da bi olajšali skupno rabo teh predstavitev, lahko preverimo stanje in navedemo vse delujoče aplikacije streamlit tako, da zaženemo naslednji ukaz: sh status.sh
Za razširitev tega dela lahko uporabimo skripte življenjskega cikla ali skupne prostore. Namesto ročnega zagona lupinskih skriptov in nameščanja odvisnosti uporabite skripti življenjskega cikla za poenostavitev tega postopka. Če želite to aplikacijo razviti in razširiti z ekipo ter deliti nadzorne plošče z enakovrednimi, uporabite skupni prostori. Z ustvarjanjem skupnih prostorov v Studiu lahko uporabniki sodelujejo v skupnem prostoru za razvoj aplikacije Streamlit v realnem času. Vsi viri v skupnem prostoru so filtrirani in označeni, kar olajša osredotočanje na projekte ML in upravljanje stroškov. Za izdelavo lastnih aplikacij v Studiu si oglejte naslednjo kodo.
Pospravi
Ko končamo z uporabo aplikacije, želimo sprostiti vrata za poslušanje. Da bi vse procese, ki se izvajajo, poenostavili in jih sprostili za uporabo, lahko zaženemo naš skript za čiščenje: sh cleanup.sh
zaključek
V tej objavi smo prikazali primer od konca do konca gostovanja predstavitve Streamlit za nalogo zaznavanja predmetov z uporabo Amazon Rekognition. Podrobno smo opisali motive za izdelavo hitrih spletnih aplikacij, varnostne pomisleke in nastavitev, ki je potrebna za zagon lastne aplikacije Streamlit v Studiu. Nazadnje smo spremenili vzorec URL-ja v našem spletnem brskalniku, da sproži ločeno sejo prek posrednika AWS Jupyter.
Ta predstavitev vam omogoča nalaganje katere koli slike in vizualizacijo izhodov iz Amazon Rekognition. Rezultati so tudi obdelani in prek aplikacije lahko prenesete datoteko CSV z vsemi omejevalnimi okvirji. To delo lahko razširite na pripombe in oznake lastnega nabora podatkov ali spremenite kodo, da predstavite svoj model po meri!
O avtorjih
Dipika Khullar je inženir ML v Amazon ML Solutions Lab. Strankam pomaga pri integraciji rešitev ML za reševanje njihovih poslovnih težav. Pred kratkim je zgradila cevovode za usposabljanje in sklepanje za medijske stranke ter napovedne modele za trženje.
Marcelo Aberle je inženir ML v organizaciji AWS AI. Vodi prizadevanja MLOps pri Amazon ML Solutions Lab, ki strankam pomaga oblikovati in izvajati razširljive sisteme ML. Njegovo poslanstvo je usmerjati stranke na njihovi poti ML v podjetju in pospešiti njihovo pot ML do proizvodnje.
Jaš šah je vodja znanosti v Amazon ML Solutions Lab. On in njegova ekipa uporabnih znanstvenikov in inženirjev ML delajo na različnih primerih uporabe ML iz zdravstva, športa, avtomobilizma in proizvodnje.
- Distribucija vsebine in PR s pomočjo SEO. Okrepite se še danes.
- Platoblockchain. Web3 Metaverse Intelligence. Razširjeno znanje. Dostopite tukaj.
- vir: https://aws.amazon.com/blogs/machine-learning/build-streamlit-apps-in-amazon-sagemaker-studio/
- : je
- $GOR
- 100
- 7
- a
- nad
- pospeši
- dostop
- Račun
- čez
- administratorji
- AI
- vsi
- dodeljenih
- omogoča
- Amazon
- Amazon EC2
- Amazonsko ponovno vžiganje
- Amazon SageMaker
- Amazon SageMaker Studio
- in
- kdo
- aplikacija
- aplikacije
- uporabna
- aplikacije
- Arhitektura
- SE
- AS
- vidik
- povezan
- At
- Preverjanje pristnosti
- samodejno
- avtomobilska
- AWS
- BE
- Prednosti
- Blog
- povečanje
- škatle
- brskalnik
- izgradnjo
- Building
- zgrajena
- poslovni
- by
- Cache
- CAN
- primeri
- spremenite
- spreminjanje
- preveriti
- Izberite
- Cloud
- Koda
- sodelovati
- kako
- dokončanje
- dokončanje
- Izračunajte
- premislekov
- Konzole
- Nadzor
- stroškovno učinkovito
- stroški
- ustvarjajo
- Ustvarjanje
- po meri
- Stranke, ki so
- datum
- znanost o podatkih
- podatkovni znanstvenik
- privzeto
- zahteve
- Predstavitve
- razporedi
- Oblikovanje
- podrobno
- Odkrivanje
- Razvoj
- Razvojni
- razvoju
- Razvoj
- drugačen
- Lučki delavec
- domena
- navzdol
- prenesi
- pogon
- dinamično
- vsak
- lažje
- enostavno
- prizadevanja
- konec koncev
- inženir
- Inženirji
- Podjetje
- okolje
- Tudi
- Primer
- obstoječih
- obstaja
- razširiti
- Lastnosti
- povratne informacije
- file
- datoteke
- končno
- prva
- Osredotočite
- po
- za
- je pokazala,
- brezplačno
- iz
- pridobivanje
- dobili
- pridobivanje
- vodi
- Trdi
- trdi disk
- Imajo
- ob
- zdravstveno varstvo
- pomoč
- pomoč
- Pomaga
- gostitelj
- gostovanje
- Kako
- Kako
- HTML
- HTTPS
- ID
- slika
- izvajati
- izboljšalo
- in
- Podatki
- Infrastruktura
- sproži
- vpogledi
- namestitev
- nameščen
- Namestitev
- primer
- Namesto
- integrirati
- integrirana
- interakcijo
- vmesniki
- IT
- Potovanje
- jpg
- Imejte
- lab
- label
- kosilo
- vodi
- učenje
- Knjižnica
- življenski krog
- LINK
- Seznam
- Poslušanje
- Long
- stroj
- strojno učenje
- Znamka
- IZDELA
- Izdelava
- upravljanje
- upravljanje
- upravitelj
- Vodje
- upravljanje
- Način
- ročno
- proizvodnja
- Trženje
- Maj ..
- mediji
- Srečati
- Spomin
- morda
- minimalna
- Mission
- ML
- MLOps
- Model
- modeli
- spremembe
- spremenite
- Moduli
- spremljanje
- več
- Najbolj
- motivacije
- več
- ostalo
- Nimate
- potrebe
- Naslednja
- prenosnik
- Številka
- predmet
- Zaznavanje objektov
- of
- on
- odprite
- open source
- Organizacija
- opisano
- obrisi
- lastne
- pakete
- podokno
- pot
- Vzorec
- platon
- Platonova podatkovna inteligenca
- PlatoData
- Točka
- mogoče
- Prispevek
- Težave
- Postopek
- Predelano
- Procesi
- proizvodnja
- profil
- Napredek
- Projekt
- projekti
- proxy
- namene
- Python
- Hitri
- območje
- precej
- pravo
- v realnem času
- Pred kratkim
- Skladišče
- obvezna
- Zahteve
- viri
- Rezultati
- Run
- tek
- sagemaker
- Enako
- Prihranki
- Prilagodljivost
- razširljive
- Znanost
- Znanstvenik
- Znanstveniki
- skripte
- zavarovanje
- varnost
- ločena
- služijo
- Zasedanje
- nastavite
- nastavitve
- nastavitev
- Delite s prijatelji, znanci, družino in partnerji :-)
- deli
- delitev
- Shell
- shouldnt
- predstavitev
- pokazale
- Razstave
- majhna
- So
- Rešitev
- rešitve
- SOLVE
- vir
- Vesolje
- prostori
- Šport
- Začetek
- Začetek
- Status
- Korak
- Koraki
- trgovina
- trgovine
- racionalizirati
- studio
- Uspešno
- podpora
- sistem
- sistemi
- Naloga
- skupina
- Skupine
- terminal
- da
- O
- Vir
- njihove
- Njih
- te
- skozi
- čas
- zamudno
- do
- usposobljeni
- usposabljanje
- ui
- naložili
- URL
- us
- Uporaba
- uporaba
- uporabnik
- Uporabniki
- preverjanje
- različica
- Poglej
- web
- spletne aplikacije
- spletni brskalnik
- Kaj
- ki
- medtem
- WHO
- bo
- z
- v
- brez
- delo
- deluje
- Vi
- Vaša rutina za
- zefirnet