Örömmel jelentjük be két új képességünket Amazon SageMaker Studio amely felgyorsítja az iteratív fejlesztést a gépi tanulást (ML) gyakorló szakemberek számára: Helyi mód és Docker támogatás. Az ML-modell fejlesztése gyakran lassú iterációs ciklusokat foglal magában, miközben a fejlesztők váltanak a kódolás, a betanítás és a telepítés között. Minden lépéshez meg kell várni a távoli számítási erőforrások elindulását, ami késlelteti a megvalósítások érvényesítését és a változásokkal kapcsolatos visszajelzések fogadását.
A Helyi móddal a fejlesztők immár közvetlenül a SageMaker Studio notebook-példányukon betaníthatják és tesztelhetik a modelleket, hibakereső kódokat és érvényesíthetik a végpontok közötti folyamatokat anélkül, hogy távoli számítási erőforrásokat kellene felpörgetniük. Ez percekről másodpercekre csökkenti az iterációs ciklust, növelve a fejlesztői termelékenységet. A SageMaker Studio notebookok Docker-támogatása lehetővé teszi a fejlesztők számára, hogy könnyedén építsenek Docker-tárolókat és hozzáférjenek az előre elkészített konténerekhez, konzisztens fejlesztői környezetet biztosítva a csapaton belül, elkerülve az időigényes beállítást és a függőségkezelést.
A Helyi mód és a Docker támogatás leegyszerűsített munkafolyamatot kínál a kódmódosítások érvényesítéséhez és a modellek prototípus-készítéséhez a SageMaker Studio notebookon futó helyi tárolók használatával.
példa. Ebben a bejegyzésben végigvezetjük Önt a Helyi mód beállításán a SageMaker Studio programban, egy minta betanítási feladat futtatásán és a modell telepítésén Amazon SageMaker végpont egy SageMaker Studio notebookból.
SageMaker Studio Helyi mód
A SageMaker Studio bemutatja a Helyi módot, amely lehetővé teszi a SageMaker képzési, következtetési, kötegelt átalakítási és feldolgozási feladatok közvetlen futtatását a JupyterLab, Code Editor vagy SageMaker Studio klasszikus notebook példányain távoli számítási erőforrások használata nélkül. A Helyi mód használatának előnyei a következők:
- A munkafolyamatok azonnali érvényesítése és tesztelése közvetlenül az integrált fejlesztői környezetekben (IDE)
- Gyorsabb iteráció a kisebb méretű feladatok helyi futtatásain keresztül a kimenetek ellenőrzéséhez és a problémák korai azonosításához
- Javított fejlesztési és hibakeresési hatékonyság a távoli képzési munkákra való várakozás megszüntetésével
- Azonnali visszajelzés a kódmódosításokról, mielőtt a teljes feladatokat futtatná a felhőben
A következő ábra a SageMaker helyi üzemmódjának munkafolyamatát mutatja be.
A Helyi mód használatához állítsa be instance_type='local'
a SageMaker Python SDK-feladatok, például a képzés és a következtetések futtatásakor. Ez a felhő-erőforrások kiépítése helyett a SageMaker Studio IDE-jei által használt példányokon futtatja őket.
Bár bizonyos funkciók, például az elosztott képzés csak a felhőben érhetők el, a Helyi mód megszünteti a kontextusváltás szükségességét a gyors iterációk érdekében. Ha készen áll a SageMaker teljes erejének és skálájának kihasználására, zökkenőmentesen futtathatja munkafolyamatait a felhőben.
Docker támogatás a SageMaker Studio-ban
A SageMaker Studio mostantól lehetővé teszi a Docker-tárolók helyi felépítését és futtatását a SageMaker Studio notebook példányán. Ez az új funkció lehetővé teszi a Docker-képek felépítését és érvényesítését a SageMaker Studio alkalmazásban, mielőtt felhasználná őket a SageMaker képzéséhez és következtetéseihez.
A következő diagram a SageMaker Studio magas szintű Docker hangszerelési architektúráját mutatja be.
A SageMaker Studio Docker támogatásával a következőket teheti:
- Építsen Docker konténereket integrált modellekkel és függőségekkel közvetlenül a SageMaker Stúdióban
- Nincs szükség külső Docker-összeállítási folyamatokra a képalkotás egyszerűsítéséhez
- Futtassa a tárolókat helyileg a funkcionalitás ellenőrzéséhez, mielőtt a modelleket üzembe helyezné
- Használja újra a helyi tárolókat, amikor a SageMaker rendszerbe telepíti képzési és tárhelyszolgáltatási célokat
Bár néhány fejlett Docker-szolgáltatás, például a többtárolós és az egyéni hálózatok jelen pillanatban nem támogatottak, az alapvető összeállítási és futtatási funkció elérhető a konténerek fejlesztésének felgyorsítására a saját konténer (BYOC) munkafolyamatokhoz.
Előfeltételek
A Helyi mód használatához a SageMaker Studio alkalmazásokban a következő előfeltételeket kell teljesítenie:
- Képek lehúzásához innen Amazon Elastic Container Registry (Amazon ECR), az ECR-képet tároló fióknak hozzáférési engedélyt kell biztosítania a felhasználó számára Identitás és hozzáférés-kezelés (IAM) szerepet. A tartomány szerepkörének lehetővé kell tennie az Amazon ECR hozzáférést is.
- A Helyi mód és a Docker képességek engedélyezéséhez be kell állítania a
EnableDockerAccess
paraméter igaz értékre állítja a tartománytDockerSettings
használatával AWS parancssori interfész (AWS CLI). Ez lehetővé teszi a tartomány felhasználóinak a Helyi mód és a Docker funkciók használatát. Alapértelmezés szerint a Helyi mód és a Docker le van tiltva a SageMaker Stúdióban. Minden meglévő SageMaker Studio alkalmazást újra kell indítani, hogy a Docker szolgáltatás frissítése életbe lépjen. Az alábbiakban egy példa az AWS CLI parancsra a SageMaker Studio tartomány frissítéséhez:
- Frissítenie kell a SageMaker IAM szerepkört, hogy képes legyen push Docker képeket az Amazon ECR-hez:
Futtasson Python fájlokat a SageMaker Studio terekben a Helyi mód használatával
SageMaker Studio JupyterLab és Code Editor (alapján Code-OSS, Visual Studio Code – nyílt forráskódú), kiterjeszti a SageMaker Studio alkalmazást, így írhat, tesztelhet, hibakereshet és futtathat elemzési és ML-kódját a népszerű, könnyű IDE segítségével. A SageMaker Studio IDE-k használatának megkezdésével kapcsolatos további részletekért lásd: Növelje az Amazon SageMaker Studio termelékenységét: a JupyterLab Spaces és a generatív AI-eszközök bemutatása és a Új – Code-OSS VS Code nyílt forráskódú kódszerkesztő, amely már elérhető az Amazon SageMaker Studio-ban. Hajtsa végre a következő lépéseket:
- Hozzon létre egy új terminált.
- Telepítse a Docker CLI-t és a Docker Compose beépülő modult az alábbi utasításokat követve GitHub repo. Ha a láncolt parancsok sikertelenek, futtassa a parancsokat egyenként.
Frissítenie kell a SageMaker SDK-t a legújabb verzióra.
- futás
pip install sagemaker -Uq
a terminálon.
Csak a Kódszerkesztő esetén be kell állítania a Python környezetet, hogy az aktuális terminálban fusson.
- A Kódszerkesztőben a Fájl menüválaszt preferenciák és a beállítások.
- Keressen és válasszon Terminál: Végrehajtás a File Dir.
- A Kódszerkesztőben vagy a JupyterLabban nyissa meg a
scikit_learn_script_mode_local_training_and_serving
mappát, és futtassa ascikit_learn_script_mode_local_training_and_serving.py
fájlt.
A szkriptet kiválasztva futtathatja futás a Kódszerkesztőben vagy a CLI használatával egy JupyterLab terminálban. Láthatja majd, hogyan képezik ki a modellt helyben. Ezután telepítse a modellt egy helyi SageMaker-végpontra, és kiszámítsa a négyzetes hiba gyökét (RMSE
).
Szimuláljon képzést és következtetést a SageMaker Studio Classic programban a Helyi mód használatával
A SageMaker Studio Classic notebookját is használhatja kisméretű képzési feladatok végrehajtásához CIFAR10
Helyi mód használatával telepítse helyileg a modellt, és hajtson végre következtetést.
Állítsa be a jegyzetfüzetét
A notebook beállításához hajtsa végre a következő lépéseket:
- Nyissa meg a SageMaker Studio Classicot, és klónozza a következőket GitHub repo.
- Nyissa meg a
pytorch_local_mode_cifar10.ipynb notebook in blog/pytorch_cnn_cifar10
.
- A Kép, választ
PyTorch 2.1.0 Python 3.10 CPU Optimized
.
Győződjön meg arról, hogy a notebook a megfelelő példányt és kernelválasztást mutatja.
- Nyisson meg egy terminált a kiválasztással Indítsa el a terminált az aktuális SageMaker képen.
- Telepítse a Docker CLI-t és a Docker Compose beépülő modult az alábbi utasításokat követve GitHub repo.
Mivel a SageMaker Studio Classic Docker-jét használja, parancsok futtatásakor távolítsa el a sudo-t, mert a terminál már fut a szuperfelhasználó alatt. A SageMaker Studio Classic esetén a telepítési parancsok a SageMaker Studio alkalmazáskép operációs rendszerétől függenek. Például a DLC-alapú keretképek Ubuntu alapúak, amelyekben a következő utasítások működnének. Debian-alapú lemezképeknél, mint például a DataScience Images, azonban követnie kell az alábbi utasításokat GitHub repo. Ha a láncolt parancsok sikertelenek, futtassa a parancsokat egyenként. Meg kell jelennie a Docker verziónak.
- Hagyja nyitva a terminálablakot, térjen vissza a jegyzetfüzethez, és kezdje el celláról cellára futtatni.
Ügyeljen arra, hogy a cellát ezzel futtassa pip install -U sagemaker
tehát a SageMaker Python SDK legújabb verzióját használja.
Helyi képzés
Amikor elindítja a helyi SageMaker képzési feladatot, a következő naplósorokat fogja látni:
Ez azt jelzi, hogy a képzés helyben futott a Docker használatával.
Légy türelmes, amíg a pytorch-training:2.1-cpu-py310
A Docker kép le van húzva. Nagy mérete (5.2 GB) miatt néhány percig is eltarthat.
A Docker-képek a SageMaker Studio alkalmazáspéldány gyökérkötetében lesznek tárolva, amely nem férhet hozzá a végfelhasználók számára. A Docker-képekhez való hozzáférés és az azokkal való interakció egyetlen módja a Docker API-műveletek.
A felhasználók bizalmas kezelése szempontjából a SageMaker Studio platform soha nem fér hozzá és nem tárol felhasználóspecifikus képeket.
Amikor a képzés befejeződött, a következő sikernaplósorokat láthatja:
Helyi következtetés
Hajtsa végre a következő lépéseket:
- Telepítse a SageMaker végpontot a SageMaker helyi mód használatával.
Légy türelmes, amíg a pytorch-inference:2.1-cpu-py310
A Docker kép le van húzva. Nagy mérete (4.32 GB) miatt néhány percig is eltarthat.
- Hívja meg a helyileg telepített SageMaker végpontot a tesztképek segítségével.
Láthatja majd a megjósolt osztályokat: béka, hajó, autó és repülő:
- Mivel a SageMaker Local végpont még mindig fent van, navigáljon vissza a nyitott terminálablakba, és sorolja fel a futó tárolókat:
docker ps
Láthatod majd a futást pytorch-inference:2.1-cpu-py310
a SageMaker végpontot támogató tároló.
- A SageMaker helyi végpont leállításához és a futó tároló leállításához, mivel egyszerre csak egy helyi végpontot futtathat, futtassa a tisztító kódot.
- Ha meg szeretné győződni arról, hogy a Docker-tároló leállt, navigálhat a megnyitott terminálablakba, futtassa a Docker ps-t, és ellenőrizze, hogy nincsenek-e futó tárolók.
- Ha azt látja, hogy egy tároló fut, futtassa
docker stop <CONTAINER_ID>
hogy megállítsam.
Tippek a SageMaker helyi mód használatához
Ha először használja a SageMaker-t, tekintse meg a Gépi tanulási modellek betanítása. Ha többet szeretne megtudni a modellek telepítéséről a SageMaker segítségével történő következtetésekhez, tekintse meg a következőt: Telepítsen modelleket a következtetéshez.
Tartsa szem előtt a következő ajánlásokat:
- Nyomtasson bemeneti és kimeneti fájlokat és mappákat az adatkészletek és modellek betöltésének megértéséhez
- Használjon 1–2 korszakot és kis adatkészleteket a gyors teszteléshez
- A környezet beállításának optimalizálása érdekében telepítse elő a függőségeket egy Dockerfile-ban
- Sorozatosítási kód elkülönítése a végpontokban a hibakereséshez
Konfigurálja a Docker-telepítést életciklus-konfigurációként
A Docker telepítési folyamatát életciklus-konfigurációs (LCC) szkriptként határozhatja meg, hogy leegyszerűsítse a telepítést minden alkalommal, amikor egy új SageMaker Studio terület indul. Az LCC-k olyan szkriptek, amelyeket a SageMaker olyan események során futtat, mint például a tér létrehozása. Utal jupyter labor, Kódszerkesztővagy SageMaker Studio Classic LCC beállítása (a docker install cli referenciaként), hogy többet megtudjon.
Készítsen és teszteljen egyéni Docker-képeket a SageMaker Studio terekben
Ebben a lépésben telepíti a Dockert a JupyterLab (vagy Code Editor) alkalmazásterületen belül, és a Docker segítségével egyéni Docker-képeket készíthet, tesztelhet és közzétehet a SageMaker Studio terekkel. A Spaces egyes SageMaker Studio alkalmazások tárolási és erőforrásigényének kezelésére szolgál. Minden egyes terület 1:1-es kapcsolatban áll egy alkalmazás példányával. Minden támogatott alkalmazás, amely létrejön, saját teret kap. Ha többet szeretne megtudni a SageMaker terekről, lásd: Növelje az Amazon SageMaker Studio termelékenységét: a JupyterLab Spaces és a generatív AI-eszközök bemutatása. Győződjön meg róla, hogy új helyet biztosít legalább 30 GB tárhellyel, hogy elegendő tárhelyet biztosítson a Docker-képek és műtermékek számára.
Telepítse a Dockert egy térbe
A Docker CLI és a Docker Compose beépülő modul JupyterLab-területen belüli telepítéséhez futtassa a következő parancsokat GitHub repo. SageMaker Stúdió csak a Docker 20.10.X verzióját támogatja.
Docker képeket készíthet
Ha meg szeretné győződni arról, hogy a Docker telepítve van és működik a JupyterLab területen, futtassa a következő kódot:
Egyéni Docker-kép létrehozásához egy JupyterLab (vagy kódszerkesztő) területen belül hajtsa végre a következő lépéseket:
- Hozzon létre egy üres Docker-fájlt:
touch Dockerfile
- Szerkessze a Dockerfile-t a következő parancsokkal, amelyek egy egyszerű lombik webszerver-képet hoznak létre az alap pythonból:3.10.13-bullseye image Docker hub:
A következő kód egy példa lombik alkalmazásfájl tartalmát mutatja app.py
:
Ezenkívül frissítheti a referencia Dockerfile parancsokat, hogy az Ön által választott csomagokat és melléktermékeket tartalmazza.
- Hozzon létre egy Docker-képet a referencia Dockerfile segítségével:
docker build --network sagemaker --tag myflaskapp:v1 --file ./Dockerfile .
Tartalmaz --network
sagemaker a docker build parancsban, különben a build meghiúsul. A tárolók nem futtathatók Docker alapértelmezett hídjában vagy egyéni Docker-hálózatokban. A tárolók ugyanabban a hálózatban futnak, mint a SageMaker Studio alkalmazástároló. A felhasználók csak a sagemakert használhatják a hálózat nevéhez.
- Amikor a felépítés befejeződött, ellenőrizze, hogy létezik-e a kép. Taggelje újra a buildet ECR-képként, és nyomja meg. Ha engedélyekkel kapcsolatos problémákba ütközik, futtassa az aws ecr get-login-password… parancsot, és próbálja meg újra futtatni a Docker push/pull parancsát:
Docker képek tesztelése
Ha a Dockert egy JupyterLab (vagy Code Editor) SageMaker Studio-területen belül telepítik, akkor az előre elkészített vagy egyéni Docker-képeket konténerként (vagy konténeres alkalmazásokként) tesztelheti. Ebben a szakaszban a docker run parancsot használjuk a Docker-tárolók kiépítésére a SageMaker Studio-területen belül a konténeres munkaterhelések, például a REST webszolgáltatások és a Python-szkriptek teszteléséhez. Hajtsa végre a következő lépéseket:
- Ha a tesztkép nem létezik, futtassa a Docker pull parancsot, hogy a képet a helyi gépre húzza:
sagemaker-user@default:~$ docker pull 123456789012.dkr.ecr.us-east-2.amazonaws.com/myflaskapp:v1
- Ha hitelesítési problémákat tapasztal, futtassa a következő parancsokat:
aws ecr get-login-password --region region | docker login --username AWS --password-stdin aws_account_id.dkr.ecr.region.amazonaws.com
- Hozzon létre egy tárolót a munkaterhelés teszteléséhez:
docker run --network sagemaker 123456789012.dkr.ecr.us-east-2.amazonaws.com/myflaskapp:v1
Ez létrehoz egy új tárolópéldányt, és futtatja a Docker ENTRYPOINT használatával meghatározott alkalmazást:
- Annak teszteléséhez, hogy a webvégpont aktív-e, keresse meg az URL-t
https://<sagemaker-space-id>.studio.us-east-2.sagemaker.aws/jupyterlab/default/proxy/6006/
.
A következő képernyőképhez hasonló JSON-választ kell látnia.
Tisztítsuk meg
A szükségtelen költségek elkerülése érdekében törölje azokat az erőforrásokat, amelyeket a bejegyzésben szereplő példák futtatása közben hozott létre:
- A SageMaker Studio tartományában válassza a lehetőséget Klasszikus stúdió a navigációs ablakban, majd válassza a lehetőséget megáll.
- A SageMaker Studio tartományában válassza a lehetőséget jupyter labor or Kódszerkesztő a navigációs panelen válassza ki az alkalmazást, majd válassza ki megáll.
Következtetés
A SageMaker Studio Local Mode és Docker támogatása lehetővé teszi a fejlesztők számára, hogy gyorsabban építsenek, teszteljenek és iteráljanak ML implementációkat anélkül, hogy elhagynák a munkaterületüket. Azáltal, hogy azonnali hozzáférést biztosítanak a tesztkörnyezetekhez és kimenetekhez, ezek a képességek optimalizálják a munkafolyamatokat és javítják a termelékenységet. Próbálja ki a SageMaker Studio helyi modell- és Docker-támogatást a mi segítségével gyors beépített funkció, amely lehetővé teszi, hogy perceken belül új domaint állítson fel egyetlen felhasználók számára. Oszd meg gondolataidat a megjegyzés rovatban!
A szerzőkről
Shweta Singh vezető termékmenedzser az Amazon SageMaker Machine Learning (ML) platform csapatában az AWS-nél, amely a SageMaker Python SDK vezetője. Több mint 5 éve dolgozott több termékkörben az Amazonnál. Bachelor of Science fokozatot szerzett számítástechnikából és Master of Science fokozatot pénzügyi mérnökökből, mindkettőt a New York-i Egyetemen.
Eitan Sela az AWS generatív AI és gépi tanulási megoldások szakértője. Együttműködik az AWS-ügyfelekkel, hogy útmutatást és technikai segítséget nyújtson, segítve őket generatív AI és gépi tanulási megoldások AWS-en való kiépítésében és működtetésében. Szabadidejében Eitan szívesen kocog, és olvassa a legújabb gépi tanulási cikkeket.
Pranav Murthy AI/ML Specialist Solutions Architect az AWS-nél. Arra összpontosít, hogy segítse az ügyfeleket a gépi tanulási (ML) munkaterhelések felépítésében, betanításában, üzembe helyezésében és a SageMakerre való migrálásában. Korábban a félvezetőiparban dolgozott nagy számítógépes látás (CV) és természetes nyelvi feldolgozási (NLP) modellek fejlesztésével a félvezető folyamatok fejlesztésére a legkorszerűbb ML technikák segítségével. Szabadidejében szívesen sakkozik és utazik. Pranav-ot megtalálod itt LinkedIn.
Mufaddal Rohawala az AWS szoftvermérnöke. Az Amazon SageMaker SageMaker Python SDK könyvtárán dolgozik. Szabadidejében szeret utazni, szabadtéri tevékenységeket végezni, és focirajongó.
- SEO által támogatott tartalom és PR terjesztés. Erősödjön még ma.
- PlatoData.Network Vertical Generative Ai. Erősítse meg magát. Hozzáférés itt.
- PlatoAiStream. Web3 Intelligence. Felerősített tudás. Hozzáférés itt.
- PlatoESG. Carbon, CleanTech, Energia, Környezet, Nap, Hulladékgazdálkodás. Hozzáférés itt.
- PlatoHealth. Biotechnológiai és klinikai vizsgálatok intelligencia. Hozzáférés itt.
- Forrás: https://aws.amazon.com/blogs/machine-learning/accelerate-ml-workflows-with-amazon-sagemaker-studio-local-mode-and-docker-support/