A gépi tanulási (ML) modellekkel való interakcióhoz szükséges webes felületek fejlesztése fárasztó feladat. Val vel Áramlatos, demóalkalmazások fejlesztése ML megoldásához egyszerű. Áramlatos egy nyílt forráskódú Python-könyvtár, amely megkönnyíti webalkalmazások létrehozását és megosztását az ML és adattudomány számára. Adattudósként érdemes bemutatni az eredményeket egy adatkészlethez, vagy bevetni egy képzett modellt. Az egyszerűsített alkalmazások hasznosak a projekt előrehaladásának bemutatásához csapata számára, betekintést nyerhet és megoszthat a vezetőkkel, sőt még visszajelzést is kérhet az ügyfelektől.
Az integrált fejlesztői környezettel (IDE). Amazon SageMaker Studio val vel Jupyter Lab 3, ugyanabból a környezetből készíthetünk, futtathatunk és kiszolgálhatunk Streamlit webalkalmazásokat fejlesztési célokra. Ez a bejegyzés felvázolja, hogyan készíthet és tárolhat Streamlit alkalmazásokat a Studioban biztonságos és reprodukálható módon, időigényes előtér-fejlesztés nélkül. Példaként használunk egy szokást Amazon felismerés demó, amely megjegyzésekkel látja el és felcímkézi a feltöltött képet. Ez kiindulópontként szolgál, és általánosítható bármilyen egyedi ML-modell bemutatására. A blog kódja itt található GitHub tárház.
Megoldás áttekintése
Az alábbiakban a megoldásunk architektúra diagramja látható.
A felhasználó először a böngészőn keresztül éri el a Stúdiót. A felhasználói profilhoz társított Jupyter Server a Studio Amazon Elastic Compute Cloud (Amazon EC2) példányán belül fut. A Studio EC2 példányon belül található a példakód és a függőségek listája. A felhasználó futtathatja a Streamlit alkalmazást (app.py) a rendszerterminálon. A Studio a JupyterLab felhasználói felületet egy Jupyter Serveren futtatja, leválasztva a notebook kernelekről. A Jupyter Server proxyval érkezik, és lehetővé teszi számunkra a Streamlit alkalmazás elérését. Ha az alkalmazás fut, a felhasználó az URL módosításával külön munkamenetet kezdeményezhet az AWS Jupyter Proxy segítségével.
Biztonsági szempontból az AWS Jupyter Proxy AWS-hitelesítéssel bővül. Mindaddig, amíg a felhasználó hozzáfér az AWS-fiókhoz, a Studio-tartományazonosítóhoz és a felhasználói profilhoz, hozzáférhet a hivatkozáshoz.
Hozzon létre Stúdiót a JupyterLab 3.0 segítségével
A megoldás működéséhez telepíteni kell a Studio with JupyterLab 3-at. Előfordulhat, hogy a régebbi verziók nem támogatják az ebben a bejegyzésben felvázolt funkciókat. További információkért lásd: Az Amazon SageMaker Studio és a SageMaker Notebook Instance mostantól JupyterLab 3 noteszgépekkel érkezik a fejlesztők termelékenységének növelése érdekében. Alapértelmezés szerint a Studio a JupyterLab 3-mal érkezik. Ellenőrizze a verziót, és módosítsa, ha régebbi verziót futtat. További információkért lásd: JupyterLab verziószámítás.
A Stúdiót a következővel állíthatja be AWS Cloud Development Kit (AWS CDK); további információkért lásd Állítsa be az Amazon SageMaker Studio-t a Jupyter Lab 3-mal az AWS CDK használatával. Alternatív megoldásként használhatja a SageMaker konzolt a tartománybeállítások módosításához. Hajtsa végre a következő lépéseket:
- A SageMaker konzolon válassza a lehetőséget Domains a navigációs ablaktáblában.
- Válassza ki a domainjét, és válassza ki szerkesztése.
- A A Jupyter Lab alapértelmezett verziója, győződjön meg arról, hogy a verzió be van állítva Jupyter Lab 3.0.
(Opcionális) Hozzon létre egy megosztott teret
Használhatjuk a SageMaker konzolt vagy az AWS parancssori felületet a megosztott terek támogatásához egy meglévő domainhez a dokumentumokban vagy ebben a blogban található lépések követésével. A megosztott terület létrehozása az AWS-ben a következő előnyökkel jár:
- Együttműködés: A megosztott tér lehetővé teszi több felhasználó vagy csapat számára, hogy együttműködjenek egy projekten vagy erőforráskészleten anélkül, hogy adatokat vagy infrastruktúrát kellene megkettőzni.
- Költségmegtakarítás: Ahelyett, hogy minden felhasználó vagy csapat saját erőforrásait hozná létre és kezelné, a megosztott terület költséghatékonyabb lehet, mivel az erőforrások összevonhatók és megoszthatók több felhasználó között.
- Egyszerűsített kezelés: A megosztott térrel a rendszergazdák központilag kezelhetik az erőforrásokat, ahelyett, hogy ugyanazon erőforrások több példányát kellene kezelniük minden felhasználóhoz vagy csapathoz.
- Továbbfejlesztett méretezhetőség: A megosztott terület könnyebben méretezhető fel vagy le, hogy megfeleljen a változó igényeknek, mivel az erőforrások dinamikusan allokálhatók a különböző felhasználók vagy csapatok igényeinek megfelelően.
- Fokozott biztonság: Az erőforrások megosztott térben történő központosításával a biztonság javítható, mivel a hozzáférés-szabályozás és a felügyelet könnyebben és következetesebben alkalmazható.
Telepítse a függőségeket, és klónozza a példát a Studio alkalmazásban
Ezután elindítjuk a Studio-t, és megnyitjuk a rendszerterminált. Példánk klónozásához a SageMaker IDE-t, alkalmazásunk elindításához pedig a rendszerterminált használjuk. A blog kódja itt található GitHub tárház. Kezdjük a tároló klónozásával:
Ezután megnyitjuk a Rendszerterminált.
A klónozás után telepítse a függőségeket a rendszerterminálba a példakód futtatásához a következő parancs futtatásával. Ez először pip telepíti a függőségeket futtatással pip install --no-cache-dir -r requirements.txt
Az no-cache-dir
flag letiltja a gyorsítótárat. A gyorsítótárazás segít a telepítési fájlok tárolásában (.whl
) a pip segítségével telepített modulok közül. A forrásfájlokat is tárolja (.tar.gz
), hogy elkerülje az újraletöltést, ha még nem járt le. Ha nincs hely a merevlemezünkön, vagy ha a lehető legkisebbre akarjuk tartani a Docker-képet, akkor ezt a jelzőt használhatjuk, így a parancs minimális memóriahasználat mellett fut le. Ezután a szkript telepíti a csomagokat iproute
és a jq
, amelyet a következő lépésben használunk.sh setup.sh
Futtassa a Streamlit bemutatót, és hozzon létre megosztható hivatkozást
Az összes függőség sikeres telepítésének ellenőrzéséhez és az Amazon Rekognition bemutatójának megtekintéséhez futtassa a következő parancsot:
Megjelenik az alkalmazást kiszolgáló portszám.
Vegye figyelembe, hogy fejlesztés közben hasznos lehet a szkript automatikus újrafuttatása, amikor app.py
lemezen módosul. Ehhez módosítani tudjuk a runOnSave-et konfigurációs lehetőség hozzáadásával a --server.runOnSave true
zászló a parancsunkhoz:
A következő képernyőkép példát mutat arra, hogy mit kell megjeleníteni a terminálon.
A fenti példából láthatjuk a portszámot, a domain azonosítóját és a stúdió URL-jét, amelyen az alkalmazásunkat futtatjuk. Végül láthatjuk az URL-t, amelyet használnunk kell az egyszerűsített alkalmazásunk eléréséhez. Ez a szkript módosítja a Studio URL-címét, lecseréli lab?
val vel proxy/[PORT NUMBER]/
. Megjelenik a Rekognition Object Detection Demo, amint az a következő képernyőképen látható.
Most, hogy a Streamlit alkalmazás működik, megoszthatjuk ezt az URL-t bárkivel, aki hozzáfér ehhez a Studio-domainazonosítóhoz és felhasználói profilhoz. A bemutatók megosztásának megkönnyítése érdekében a következő paranccsal ellenőrizhetjük az állapotot, és listázhatjuk az összes futó streamlit alkalmazást: sh status.sh
Életciklus-szkripteket vagy megosztott tereket használhatunk a munka kiterjesztésére. A héjszkriptek kézi futtatása és a függőségek telepítése helyett használja a életciklus szkriptek hogy egyszerűsítse ezt a folyamatot. Az alkalmazás egy csapattal történő fejlesztéséhez és kiterjesztéséhez, valamint az irányítópultok megosztásához használja megosztott terek. Ha megosztott tereket hoz létre a Studio alkalmazásban, a felhasználók együttműködhetnek a megosztott területen, hogy valós időben fejleszthessenek Streamlit alkalmazást. A megosztott térben lévő összes erőforrás szűrve és címkézve van, így könnyebb az ML projektekre összpontosítani és a költségeket kezelni. Tekintse meg a következő kódot saját alkalmazások készítéséhez a Studioban.
Razzia
Miután befejeztük az alkalmazás használatát, szeretnénk felszabadítani a lehallgató portokat. Az összes folyamat leegyszerűsítéséhez és felhasználásra való felszabadításához futtathatjuk a tisztító szkriptünket: sh cleanup.sh
Következtetés
Ebben a bejegyzésben egy teljes körű példát mutattunk be Streamlit demó tárolására egy objektumészlelési feladathoz az Amazon Rekognition használatával. Részletesen ismertettük a gyors webalkalmazások készítésének motivációit, a biztonsági szempontokat és a saját Streamlit alkalmazásunk Studio-beli futtatásához szükséges beállításokat. Végül módosítottuk az URL-mintát a webböngészőnkben, hogy külön munkamenetet kezdeményezzünk az AWS Jupyter Proxyn keresztül.
Ez a demó lehetővé teszi bármilyen kép feltöltését és az Amazon Rekognition kimeneteinek megjelenítését. Az eredmények feldolgozása is megtörténik, és az alkalmazáson keresztül letölthet egy CSV-fájlt az összes határolókerettel. Kibővítheti ezt a munkát saját adatkészletének megjegyzéseivel és címkézésével, vagy módosíthatja a kódot, hogy bemutassa egyéni modelljét!
A szerzőkről
Dipika Khullar ML mérnök a Amazon ML Solutions Lab. Segít az ügyfeleknek az ML megoldások integrálásában üzleti problémáik megoldása érdekében. Legutóbb képzési és következtetési folyamatokat épített ki a médiaügyfelek számára, valamint prediktív modelleket a marketing számára.
Marcelo Aberle ML mérnök az AWS AI szervezetben. Ő vezeti az MLOps erőfeszítéseit Amazon ML Solutions Lab, segítve az ügyfeleket a méretezhető ML rendszerek tervezésében és megvalósításában. Küldetése, hogy eligazítsa az ügyfeleket a vállalati ML útjukon, és felgyorsítsa az ML termelési folyamatot.
Yash Shah tudományos menedzser a Amazon ML Solutions Lab. Alkalmazott tudósokból és ML mérnökökből álló csapatával számos ML felhasználási eseten dolgozik az egészségügyben, a sportban, az autóiparban és a gyártásban.
- SEO által támogatott tartalom és PR terjesztés. Erősödjön még ma.
- Platoblockchain. Web3 metaverzum intelligencia. Felerősített tudás. Hozzáférés itt.
- Forrás: https://aws.amazon.com/blogs/machine-learning/build-streamlit-apps-in-amazon-sagemaker-studio/
- :is
- $ UP
- 100
- 7
- a
- felett
- gyorsul
- hozzáférés
- Fiók
- át
- adminisztrátorok
- AI
- Minden termék
- elkülönített
- lehetővé teszi, hogy
- amazon
- Amazon EC2
- Amazon felismerés
- Amazon SageMaker
- Amazon SageMaker Studio
- és a
- bárki
- app
- alkalmazások
- alkalmazott
- alkalmazások
- építészet
- VANNAK
- AS
- megjelenés
- társult
- At
- Hitelesítés
- automatikusan
- autóipari
- AWS
- BE
- Előnyök
- Blog
- fellendítésére
- dobozok
- böngésző
- épít
- Épület
- épült
- üzleti
- by
- Gyorsítótár
- TUD
- esetek
- változik
- változó
- ellenőrizze
- A pop-art design, négy időzóna kijelzése egyszerre és méretének arányai azok az érvek, amelyek a NeXtime Time Zones-t kiváló választássá teszik. Válassza a
- felhő
- kód
- együttműködik
- hogyan
- teljes
- befejezés
- Kiszámít
- megfontolások
- Konzol
- ellenőrzések
- költséghatékony
- kiadások
- teremt
- létrehozása
- szokás
- Ügyfelek
- dátum
- adat-tudomány
- adattudós
- alapértelmezett
- igények
- Demo
- telepíteni
- Design
- részletes
- Érzékelés
- Fejleszt
- Fejlesztő
- fejlesztése
- Fejlesztés
- különböző
- Dokkmunkás
- domain
- le-
- letöltés
- hajtás
- dinamikusan
- minden
- könnyebb
- könnyen
- erőfeszítések
- végtől végig
- mérnök
- Mérnökök
- Vállalkozás
- Környezet
- Még
- példa
- létező
- létezik
- terjed
- Jellemzők
- Visszacsatolás
- filé
- Fájlok
- Végül
- vezetéknév
- Összpontosít
- következő
- A
- talált
- Ingyenes
- ból ből
- egyre
- kap
- szerzés
- útmutató
- Kemény
- merevlemez
- Legyen
- tekintettel
- egészségügyi
- hasznos
- segít
- segít
- vendéglátó
- tárhely
- Hogyan
- How To
- HTML
- HTTPS
- ID
- kép
- végre
- javított
- in
- információ
- Infrastruktúra
- kezdeményez
- meglátások
- telepíteni
- telepítve
- telepítése
- példa
- helyette
- integrálni
- integrált
- kölcsönhatásba
- interfészek
- IT
- utazás
- jpg
- Tart
- labor
- Címke
- indít
- vezető
- tanulás
- könyvtár
- életciklus
- LINK
- Lista
- Kihallgatás
- Hosszú
- gép
- gépi tanulás
- csinál
- KÉSZÍT
- Gyártás
- kezelése
- vezetés
- menedzser
- Menedzserek
- kezelése
- mód
- kézzel
- gyártási
- Marketing
- Lehet..
- Média
- Találkozik
- Memory design
- esetleg
- minimális
- Küldetés
- ML
- MLOps
- modell
- modellek
- módosított
- módosítása
- Modulok
- ellenőrzés
- több
- a legtöbb
- motivációk
- többszörös
- Navigáció
- Szükség
- igények
- következő
- jegyzetfüzet
- szám
- tárgy
- Objektumfelismerés
- of
- on
- nyitva
- nyílt forráskódú
- szervezet
- vázolt
- körvonalak
- saját
- csomagok
- üvegtábla
- ösvény
- Mintás
- Plató
- Platón adatintelligencia
- PlatoData
- pont
- lehetséges
- állás
- problémák
- folyamat
- Feldolgozott
- Folyamatok
- Termelés
- profil
- Haladás
- program
- projektek
- meghatalmazott
- célokra
- Piton
- Quick
- hatótávolság
- Inkább
- igazi
- real-time
- nemrég
- raktár
- kötelező
- követelmények
- Tudástár
- Eredmények
- futás
- futás
- sagemaker
- azonos
- Megtakarítás
- skálázhatóság
- skálázható
- Tudomány
- Tudós
- tudósok
- szkriptek
- biztonság
- biztonság
- különálló
- szolgál
- ülés
- készlet
- beállítások
- felépítés
- Megosztás
- megosztott
- megosztás
- Héj
- kellene
- kirakat
- mutatott
- Műsorok
- kicsi
- So
- megoldások
- Megoldások
- SOLVE
- forrás
- Hely
- terek
- Sport
- kezdet
- Kezdve
- Állapot
- Lépés
- Lépései
- tárolni
- árnyékolók
- áramvonal
- stúdió
- sikeresen
- támogatás
- rendszer
- Systems
- Feladat
- csapat
- csapat
- terminál
- hogy
- A
- The Source
- azok
- Őket
- Ezek
- Keresztül
- idő
- időigényes
- nak nek
- kiképzett
- Képzések
- ui
- feltöltve
- URL
- us
- Használat
- használ
- használó
- Felhasználók
- ellenőrzése
- változat
- Megnézem
- háló
- webes alkalmazások
- webböngésző
- Mit
- ami
- míg
- WHO
- lesz
- val vel
- belül
- nélkül
- Munka
- dolgozó
- te
- A te
- zephyrnet