Å utvikle nettgrensesnitt for å samhandle med en maskinlæringsmodell (ML) er en kjedelig oppgave. Med Strømbelyst, er det enkelt å utvikle demoapplikasjoner for din ML-løsning. Strømbelyst er et åpen kildekode Python-bibliotek som gjør det enkelt å lage og dele nettapper for ML og datavitenskap. Som dataforsker kan det være lurt å vise frem funnene dine for et datasett, eller distribuere en opplært modell. Strømbelyste applikasjoner er nyttige for å presentere fremgang på et prosjekt for teamet ditt, få og dele innsikt til lederne dine, og til og med få tilbakemeldinger fra kunder.
Med det integrerte utviklingsmiljøet (IDE) av Amazon SageMaker Studio med Jupyter Lab 3, kan vi bygge, kjøre og betjene Streamlit-nettapper fra det samme miljøet for utviklingsformål. Dette innlegget skisserer hvordan du bygger og er vert for Streamlit-apper i Studio på en sikker og reproduserbar måte uten noen tidkrevende frontend-utvikling. Som et eksempel bruker vi en skikk Amazon-anerkjennelse demo, som vil kommentere og merke et opplastet bilde. Dette vil tjene som et utgangspunkt, og det kan generaliseres til å demonstrere hvilken som helst tilpasset ML-modell. Koden til denne bloggen finner du i denne GitHub repository.
Løsningsoversikt
Følgende er arkitekturdiagrammet for løsningen vår.
En bruker får først tilgang til Studio gjennom nettleseren. Jupyter-serveren knyttet til brukerprofilen kjører inne i Studio Amazon Elastic Compute Cloud (Amazon EC2)-forekomsten. Inne i Studio EC2-forekomsten finnes eksempelkoden og avhengighetslisten. Brukeren kan kjøre Streamlit-appen, app.py, i systemterminalen. Studio kjører JupyterLab UI i en Jupyter Server, frakoblet fra bærbare kjerner. Jupyter Server kommer med en proxy og lar oss få tilgang til vår Streamlit-app. Når appen kjører, kan brukeren starte en separat økt gjennom AWS Jupyter Proxy ved å justere URL-en.
Fra et sikkerhetsaspekt er AWS Jupyter Proxy utvidet med AWS-autentisering. Så lenge en bruker har tilgang til AWS-kontoen, Studio-domene-IDen og brukerprofilen, kan de få tilgang til koblingen.
Lag Studio ved å bruke JupyterLab 3.0
Studio med JupyterLab 3 må være installert for at denne løsningen skal fungere. Eldre versjoner støtter kanskje ikke funksjonene som er beskrevet i dette innlegget. For mer informasjon, se Amazon SageMaker Studio og SageMaker Notebook Instance kommer nå med JupyterLab 3 bærbare PC-er for å øke utviklerproduktiviteten. Som standard kommer Studio med JupyterLab 3. Du bør sjekke versjonen og endre den hvis du kjører en eldre versjon. For mer informasjon, se JupyterLab versjonering.
Du kan sette opp Studio ved å bruke AWS skyutviklingssett (AWS CDK); for mer informasjon, se Sett opp Amazon SageMaker Studio med Jupyter Lab 3 ved å bruke AWS CDK. Alternativt kan du bruke SageMaker-konsollen til å endre domeneinnstillingene. Fullfør følgende trinn:
- Velg på SageMaker-konsollen Domener i navigasjonsruten.
- Velg ditt domene og velg Rediger.
- Til Standard Jupyter Lab-versjon, sørg for at versjonen er satt til Jupyter Lab 3.0.
(Valgfritt) Opprett et delt område
Vi kan bruke SageMaker-konsollen eller AWS CLI for å legge til støtte for delte områder til et eksisterende domene ved å følge trinnene i dokumentene eller i denne bloggen. Å opprette en delt plass i AWS har følgende fordeler:
- Samarbeid: Et delt område lar flere brukere eller team samarbeide om et prosjekt eller sett med ressurser, uten å måtte duplisere data eller infrastruktur.
- Kostnadsbesparelser: I stedet for at hver bruker eller team oppretter og administrerer sine egne ressurser, kan et delt område være mer kostnadseffektivt, ettersom ressurser kan samles og deles mellom flere brukere.
- Forenklet administrasjon: Med en delt plass kan administratorer administrere ressurser sentralt, i stedet for å måtte administrere flere forekomster av de samme ressursene for hver bruker eller team.
- Forbedret skalerbarhet: En delt plass kan lettere skaleres opp eller ned for å møte endrede krav, ettersom ressurser kan allokeres dynamisk for å møte behovene til forskjellige brukere eller team.
- Forbedret sikkerhet: Ved å sentralisere ressurser i et delt rom, kan sikkerheten forbedres, ettersom tilgangskontroller og overvåking kan brukes enklere og konsekvent.
Installer avhengigheter og klon eksemplet på Studio
Deretter starter vi Studio og åpner systemterminalen. Vi bruker SageMaker IDE for å klone eksemplet vårt og systemterminalen for å starte appen vår. Koden til denne bloggen finner du i denne GitHub repository. Vi starter med å klone depotet:
Deretter åpner vi systemterminalen.
Når den er klonet, installerer du avhengigheter i systemterminalen for å kjøre eksempelkoden vår ved å kjøre følgende kommando. Dette vil først pip-installere avhengighetene ved å kjøre pip install --no-cache-dir -r requirements.txt
. De no-cache-dir
flagget vil deaktivere cachen. Bufring hjelper med å lagre installasjonsfilene (.whl
) av modulene du installerer gjennom pip. Den lagrer også kildefilene (.tar.gz
) for å unngå å laste ned på nytt når de ikke har utløpt. Hvis det ikke er plass på harddisken vår eller hvis vi ønsker å holde et Docker-bilde så lite som mulig, kan vi bruke dette flagget slik at kommandoen kjører til fullføring med minimal minnebruk. Deretter vil skriptet installere pakker iproute
og jq
, som vil bli brukt i det følgende trinnet.sh setup.sh
Kjør Streamlit Demo og Lag Delbar Link
For å bekrefte at alle avhengigheter er installert og for å se Amazon Rekognition-demoen, kjør følgende kommando:
Portnummeret som er vert for appen vil vises.
Merk at mens du utvikler, kan det være nyttig å automatisk kjøre skriptet på nytt når app.py
er modifisert på disken. For å gjøre det, så kan vi endre runOnSave konfigurasjonsalternativ ved å legge til --server.runOnSave true
flagg til vår kommando:
Følgende skjermbilde viser et eksempel på hva som skal vises på terminalen.
Fra eksemplet ovenfor ser vi portnummeret, domene-ID-en og studio-URLen vi kjører appen vår på. Til slutt kan vi se URL-en vi må bruke for å få tilgang til vår strømbelyste app. Dette skriptet endrer Studio URL, erstatter lab?
med proxy/[PORT NUMBER]/
. Demoen for gjenkjenning av gjenkjennelsesobjekter vil vises, som vist i følgende skjermbilde.
Nå som vi har Streamlit-appen som fungerer, kan vi dele denne URL-en med alle som har tilgang til denne Studio-domene-IDen og brukerprofilen. For å gjøre det enklere å dele disse demoene, kan vi sjekke statusen og liste opp alle kjørende strømbelyste apper ved å kjøre følgende kommando: sh status.sh
Vi kan bruke livssyklusskript eller delte områder for å utvide dette arbeidet. I stedet for å kjøre skallskriptene manuelt og installere avhengigheter, bruk livssyklusskript å effektivisere denne prosessen. For å utvikle og utvide denne appen med et team og dele dashbord med jevnaldrende, bruk delte rom. Ved å opprette delte rom i Studio kan brukere samarbeide i det delte rommet for å utvikle en Streamlit-app i sanntid. Alle ressurser i en delt plass filtreres og merkes, noe som gjør det enklere å fokusere på ML-prosjekter og administrere kostnader. Se følgende kode for å lage dine egne applikasjoner i Studio.
Opprydding
Når vi er ferdige med å bruke appen, ønsker vi å frigjøre lytteportene. For å få alle prosessene til å kjøre strømbelyst og frigjøre dem for bruk kan vi kjøre oppryddingsskriptet vårt: sh cleanup.sh
konklusjonen
I dette innlegget viste vi et ende-til-ende eksempel på å være vert for en Streamlit-demo for en objektdeteksjonsoppgave ved hjelp av Amazon Rekognition. Vi beskrev motivene for å bygge raske nettapplikasjoner, sikkerhetshensyn og oppsett som kreves for å kjøre vår egen Streamlit-app i Studio. Til slutt endret vi URL-mønsteret i nettleseren vår for å starte en egen økt gjennom AWS Jupyter Proxy.
Denne demoen lar deg laste opp hvilket som helst bilde og visualisere utdataene fra Amazon Rekognition. Resultatene behandles også, og du kan laste ned en CSV-fil med alle avgrensningsboksene gjennom appen. Du kan utvide dette arbeidet til å kommentere og merke ditt eget datasett, eller endre koden for å vise frem din egendefinerte modell!
Om forfatterne
Dipika Khullar er ML-ingeniør i Amazon ML Solutions Lab. Hun hjelper kunder med å integrere ML-løsninger for å løse deres forretningsproblemer. Senest har hun bygget opplærings- og inferenspipelines for mediekunder og prediktive modeller for markedsføring.
Marcelo Aberle er en ML-ingeniør i AWS AI-organisasjonen. Han leder MLOps innsats ved Amazon ML Solutions Lab, hjelper kunder med å designe og implementere skalerbare ML-systemer. Hans oppgave er å veilede kunder på deres ML-reise for bedrifter og akselerere deres ML-vei til produksjon.
Yash Shah er Science Manager i Amazon ML Solutions Lab. Han og teamet hans av anvendte forskere og ML-ingeniører jobber med en rekke ML-brukssaker fra helsevesen, sport, bilindustri og produksjon.
- SEO-drevet innhold og PR-distribusjon. Bli forsterket i dag.
- Platoblokkkjede. Web3 Metaverse Intelligence. Kunnskap forsterket. Tilgang her.
- kilde: https://aws.amazon.com/blogs/machine-learning/build-streamlit-apps-in-amazon-sagemaker-studio/
- :er
- $OPP
- 100
- 7
- a
- ovenfor
- akselerere
- adgang
- Logg inn
- tvers
- administratorer
- AI
- Alle
- allokert
- tillater
- Amazon
- Amazon EC2
- Amazon-anerkjennelse
- Amazon SageMaker
- Amazon SageMaker Studio
- og
- noen
- app
- søknader
- anvendt
- apps
- arkitektur
- ER
- AS
- aspektet
- assosiert
- At
- Autentisering
- automatisk
- automotive
- AWS
- BE
- Fordeler
- Blogg
- øke
- bokser
- nett~~POS=TRUNC leseren~~POS=HEADCOMP
- bygge
- Bygning
- bygget
- virksomhet
- by
- Cache
- CAN
- saker
- endring
- endring
- sjekk
- Velg
- Cloud
- kode
- samarbeide
- Kom
- fullføre
- ferdigstillelse
- Beregn
- betraktninger
- Konsoll
- kontroller
- kostnadseffektiv
- Kostnader
- skape
- Opprette
- skikk
- Kunder
- dato
- datavitenskap
- dataforsker
- Misligholde
- krav
- Demonstrasjoner
- utplassere
- utforming
- detaljert
- Gjenkjenning
- utvikle
- Utvikler
- utvikle
- Utvikling
- forskjellig
- Docker
- domene
- ned
- nedlasting
- stasjonen
- dynamisk
- hver enkelt
- enklere
- lett
- innsats
- ende til ende
- ingeniør
- Ingeniører
- Enterprise
- Miljø
- Selv
- eksempel
- eksisterende
- finnes
- utvide
- Egenskaper
- tilbakemelding
- filet
- Filer
- Endelig
- Først
- Fokus
- etter
- Til
- funnet
- Gratis
- fra
- få
- få
- få
- veilede
- Hard
- harddisk
- Ha
- å ha
- helsetjenester
- nyttig
- hjelpe
- hjelper
- vert
- Hosting
- Hvordan
- Hvordan
- HTML
- HTTPS
- ID
- bilde
- iverksette
- forbedret
- in
- informasjon
- Infrastruktur
- initiere
- innsikt
- installere
- installerte
- installere
- f.eks
- i stedet
- integrere
- integrert
- samhandle
- grensesnitt
- IT
- reise
- jpg
- Hold
- lab
- Etiketten
- lansere
- ledende
- læring
- Bibliotek
- Livssyklus
- LINK
- Liste
- Lytting
- Lang
- maskin
- maskinlæring
- gjøre
- GJØR AT
- Making
- administrer
- ledelse
- leder
- Ledere
- administrerende
- måte
- manuelt
- produksjon
- Marketing
- Kan..
- Media
- Møt
- Minne
- kunne
- minimal
- Oppdrag
- ML
- MLOps
- modell
- modeller
- modifisert
- modifisere
- Moduler
- overvåking
- mer
- mest
- motivasjon
- flere
- Navigasjon
- Trenger
- behov
- neste
- bærbare
- Antall
- objekt
- Objektdeteksjon
- of
- on
- åpen
- åpen kildekode
- organisasjon
- skissert
- skisserer
- egen
- pakker
- brød
- banen
- Mønster
- plato
- Platon Data Intelligence
- PlatonData
- Point
- mulig
- Post
- problemer
- prosess
- Bearbeidet
- Prosesser
- Produksjon
- Profil
- Progress
- prosjekt
- prosjekter
- proxy
- formål
- Python
- Rask
- område
- heller
- ekte
- sanntids
- nylig
- Repository
- påkrevd
- Krav
- Ressurser
- Resultater
- Kjør
- rennende
- sagemaker
- samme
- Besparelser
- skalerbarhet
- skalerbar
- Vitenskap
- Forsker
- forskere
- skript
- sikre
- sikkerhet
- separat
- betjene
- Session
- sett
- innstillinger
- oppsett
- Del
- delt
- deling
- Shell
- bør
- presentere
- vist
- Viser
- liten
- So
- løsning
- Solutions
- LØSE
- kilde
- Rom
- mellomrom
- Sports
- Begynn
- Start
- status
- Trinn
- Steps
- oppbevare
- butikker
- effektivisere
- studio
- vellykket
- støtte
- system
- Systemer
- Oppgave
- lag
- lag
- terminal
- Det
- De
- Kilden
- deres
- Dem
- Disse
- Gjennom
- tid
- tidkrevende
- til
- trent
- Kurs
- ui
- lastet opp
- URL
- us
- bruk
- bruke
- Bruker
- Brukere
- verifisere
- versjon
- Se
- web
- nettapplikasjoner
- nettleser
- Hva
- hvilken
- mens
- HVEM
- vil
- med
- innenfor
- uten
- Arbeid
- arbeid
- Du
- Din
- zephyrnet