A gépi tanulási (ML) előrejelzések figyelése segíthet a telepített modellek minőségének javításában. A termelés során levont következtetésekből származó adatok rögzítése lehetővé teszi a telepített modellek figyelését és a modellminőség eltéréseinek észlelését. Ezen eltérések korai és proaktív észlelése lehetővé teszi a korrekciós intézkedések megtételét, például a modellek átképzését, az upstream rendszerek auditálását vagy a minőségi problémák kijavítását.
AWS Lambda egy kiszolgáló nélküli számítási szolgáltatás, amely valós idejű ML következtetést tud nyújtani méretarányosan. Ebben a bejegyzésben egy minta adatrögzítési funkciót mutatunk be, amely egy Lambda ML következtetési munkaterheléshez telepíthető.
2020 decemberében a Lambda bevezette a konténerképek támogatását csomagolási formátumként. Ez a funkció a telepítési csomag méretkorlátját 500 MB-ról 10 GB-ra növelte. A szolgáltatás elindítása előtt a csomagméret-korlátozás megnehezítette az olyan ML-keretrendszerek telepítését, mint a TensorFlow vagy a PyTorch a Lambda-függvényekre. Az indítást követően a megnövelt csomagméret-korlátozás életképes és vonzó munkaterheléssé tette az ML-t a Lambdában. 2021-ben az ML következtetés volt az egyik leggyorsabban növekvő terheléstípus a Lambda szolgáltatásban.
Amazon SageMaker, az Amazon teljes körűen felügyelt ML szolgáltatása, saját modellfigyelő funkcióval rendelkezik. Az ebben a bejegyzésben található mintaprojekt azonban bemutatja, hogyan lehet adatrögzítést végrehajtani a modellfigyeléshez olyan ügyfelek számára, akik Lambda-t használnak ML-következtetéshez. A projekt Lambda bővítményeket használ a következtetési adatok rögzítésére, hogy minimalizálja a következtetési függvény teljesítményére és késleltetésére gyakorolt hatást. A Lambda kiterjesztések használata minimálisra csökkenti a funkciófejlesztőkre gyakorolt hatást. Bővítményen keresztüli integrálással a megfigyelési funkció több funkcióra is alkalmazható, és egy központi csapat karbantartható.
A megoldás áttekintése
Ez a projekt forráskódot és támogató fájlokat tartalmaz egy kiszolgáló nélküli alkalmazáshoz, amely valós idejű következtetést tesz lehetővé egy distilbert-alapú, előre betanított kérdésmegválaszolási modell segítségével. A projekt a Hugging Face kérdés és válasz természetes nyelvi feldolgozási (NLP) modelljét használja PyTorch természetes nyelvi következtetési feladatok elvégzésére. A projekt megoldást is tartalmaz a modell-előrejelzések adatrögzítésének végrehajtására. A Lambda-függvényíró pontosan meghatározhatja, hogy a következtetéskérés bemenetéből és az előrejelzés eredményéből mely adatokat küldje el a bővítménynek. Ebben a megoldásban elküldjük a bemenetet és a választ a modellből a kiterjesztésnek. A kiterjesztés ezután rendszeresen elküldi az adatokat egy Amazon egyszerű tárolási szolgáltatás (Amazon S3) vödör. Az adatrögzítési bővítményt tárolóképként építjük fel a makefile
. Ezután felépítjük a Lambda következtetési függvényt tárolóképként, és hozzáadjuk a kiterjesztés tárolóképet tárolóképrétegként. Az alábbi ábra az architektúra áttekintését mutatja be.
A lambda-bővítmények a Lambda funkciók bővítésének egyik módja. Ebben a projektben egy külső Lambda-kiterjesztést használunk a következtetési kérés és a következtetésből származó előrejelzés naplózására. A külső kiterjesztés külön folyamatként fut a Lambda futási környezetben, csökkentve a következtetési függvényre gyakorolt hatást. A funkció azonban megosztja az erőforrásokat, például a CPU-t, a memóriát és a tárhelyet a Lambda funkcióval. Javasoljuk, hogy elegendő memóriát foglaljon a Lambda funkcióhoz az erőforrások optimális rendelkezésre állása érdekében. (Tesztelésünk során 5 GB memóriát rendeltünk a következtetési Lambda függvényhez, és láttuk az optimális erőforrás-elérhetőséget és a következtetési késleltetést). Amikor a következtetés befejeződött, a Lambda szolgáltatás azonnal visszaküldi a választ, és nem várja meg, amíg a bővítmény befejezi a kérés és a válasz naplózását az S3 tárolóba. Ezzel a mintával a megfigyelési bővítmény nem befolyásolja a következtetés késését. További információ a Lambda bővítményekről nézd meg ezeket a videósorozatokat.
A projekt tartalma
Ez a projekt a AWS szerver nélküli alkalmazásmodell (AWS SAM) parancssori interfész (CLI). Ez a parancssori eszköz lehetővé teszi a fejlesztők számára az alkalmazások inicializálását és konfigurálását; csomagolni, összeállítani és helyileg tesztelni; és telepítse az AWS Cloudba.
A projekt forráskódja letölthető innen a GitHub adattárat.
Ez a projekt a következő fájlokat és mappákat tartalmazza:
- app/app.py – Az alkalmazás Lambda funkciójának kódja, beleértve az ML következtetés kódját.
- app/Dockerfile – A Dockerfile a következtetési függvényt csomagoló konténerkép létrehozásához, a Hugging Face oldalról letöltött modell és a rétegként épített Lambda bővítmény. A .zip függvényekkel ellentétben a fóliákat nem lehet a tárolóba csomagolt Lambda-függvényekhez csatolni a funkció létrehozásának időpontjában. Ehelyett felépítjük a réteget, és bemásoljuk a tartalmát a tárolóképbe.
- Extensions – A modellmonitor kiterjesztés fájljai. Ez a lambda-bővítmény a következtetési függvény bemenetének naplózására szolgál, és a megfelelő előrejelzés egy S3 gyűjtőhelyre.
- alkalmazás/modell – A Hugging Face oldaláról letöltött modell.
- app/requirements.txt – A tárolóba telepítendő Python-függőségek.
- események – A funkció tesztelésére használható hívási események.
- sablon.yaml – Az alkalmazás AWS-erőforrásait meghatározó leíró fájl.
Az alkalmazás számos AWS-erőforrást használ, beleértve a Lambda-funkciókat és egy Amazon API átjáró API. Ezeket a forrásokat a template.yaml
fájl ebben a projektben. Frissítheti a sablont az AWS-erőforrások hozzáadásához ugyanazon a telepítési folyamaton keresztül, amely frissíti az alkalmazás kódját.
Előfeltételek
Ehhez az áttekintéshez a következő előfeltételekkel kell rendelkeznie:
Telepítse a minta alkalmazást
Az alkalmazás első elkészítéséhez hajtsa végre a következő lépéseket:
- Futtassa a következő kódot a shellben. (Ez a bővítményt is létrehozza):
- Hozzon létre egy Docker-képet a modellmonitor-alkalmazásról. A build tartalma a
.aws-sam
könyvtár
- Bejelentkezés az Amazon ECR-be:
- Hozzon létre egy adattárat az Amazon ECR-ben:
aws ecr create-repository
repository-name serverless-ml-model-monitor
--image-scanning-configuration scanOnPush=true
--region us-east-1
- Tolja be a tároló képét az Amazon ECR-be:
- Megjegyzés: 1. sor app/Dockerfile és szerkessze úgy, hogy a megfelelő ECR-tárképre mutasson, majd törölje a megjegyzéseket a 6. és 7. sorból alkalmazás/Dockerfile:
- Építse újra az alkalmazást:
Újra építjük, mert a Lambda nem támogatja közvetlenül a Lambda rétegeket a konténerkép-csomagolás típusához. Először fel kell építenünk a modellfigyelő komponenst konténerképként, feltöltenünk kell az Amazon ECR-be, majd ezt a képet használnunk kell a modellfigyelő alkalmazásban tárolórétegként.
- Végül telepítse a Lambda funkciót, az API-átjárót és a bővítményt:
Ez a parancs csomagolja és telepíti az alkalmazást az AWS-re egy sor prompt segítségével:
- Verem neve : A telepített neve AWS felhőképződés Kazal. Ennek egyedinek kell lennie az Ön fiókjában és régiójában, és jó kiindulási pont az lenne, ha valami megegyezne a projekt nevével.
- AWS régió : Az AWS-régió, amelybe az alkalmazást telepíti.
- Erősítse meg a változtatásokat a telepítés előtt : Ha be van állítva
yes
, a módosítási készletek megjelennek a kézi ellenőrzés előtt. Ha nem, akkor az AWS SAM parancssori felület automatikusan telepíti az alkalmazásmódosításokat. - Az AWS SAM CLI IAM szerepkör létrehozásának engedélyezése : Sok AWS SAM-sablon jön létre, beleértve ezt a példát is AWS Identity and Access Management (IAM) szerepkörök szükségesek az AWS-szolgáltatások eléréséhez mellékelt Lambda-funkció(k)hoz. Alapértelmezés szerint ezek a minimálisan szükséges jogosultságokra vannak korlátozva. Az IAM-szerepeket létrehozó vagy módosító CloudFormation-verem üzembe helyezéséhez a
CAPABILITY_IAM
értékcapabilities
biztosítani kell. Ha nem ad engedélyt ezen a prompton keresztül, a példa üzembe helyezéséhez kifejezetten át kell adnia--capabilities CAPABILITY_IAM
hozsam deploy
parancs. - Mentse az argumentumokat a samconfig.toml fájlba : Ha be van állítva
yes
, a választásait a rendszer egy konfigurációs fájlba menti a projekten belül, hogy a jövőben egyszerűen futhassonsam deploy
paraméterek nélkül az alkalmazás módosításainak telepítéséhez.
Az API-átjáró-végpont URL-címét az üzembe helyezés után megjelenített kimeneti értékek között találhatja meg.
Tesztelje az alkalmazást
Az alkalmazás teszteléséhez a Postman vagy a curl segítségével küldjön kérést az API-átjáró végpontjához. Például:
A következő kódhoz hasonló kimenetet kell látnia. Az ML modell a kontextusból következtetett, és visszaadta a választ kérdésünkre.
Néhány perc múlva látnia kell egy fájlt az S3 tárolóban nlp-qamodel-model-monitoring-modelmonitorbucket-
naplózva a bemenetet és a következtetést.
Tisztítsuk meg
A létrehozott példaalkalmazás törléséhez használja az AWS parancssori felületet:
Következtetés
Ebben a bejegyzésben egy modellfigyelő funkciót implementáltunk Lambda-bővítményként, és telepítettük a Lambda ML következtetési munkaterhelésére. Megmutattuk, hogyan hozhatja létre és telepítheti ezt a megoldást saját AWS-fiókjában. Végül megmutattuk, hogyan kell futtatni egy tesztet a monitor működőképességének ellenőrzésére.
Bármilyen gondolatát vagy kérdését kérjük, írja meg a megjegyzés rovatban. További kiszolgáló nélküli tanulási forrásokért látogasson el ide Szerver nélküli föld.
A szerzőkről
Dan Fox a Szervernélküli Világszerte Szakértői Szervezetének fő specialista megoldások építésze. Dan együttműködik az ügyfelekkel, hogy segítsen nekik a szerver nélküli szolgáltatásokat kihasználni méretezhető, hibatűrő, nagy teljesítményű, költséghatékony alkalmazások létrehozásához. Dan hálás, hogy a coloradói Boulderben élhet és dolgozhat.
Newton Jain Senior termékmenedzser, aki az AWS Lambda gépi tanulási, nagy teljesítményű számítástechnikai (HPC) és médiafeldolgozó ügyfelei számára új tapasztalatok kiépítéséért felelős. Ő vezeti az új képességek fejlesztését a teljesítmény növelése, a késleltetés csökkentése, a méretezhetőség, a megbízhatóság és a költségek csökkentése érdekében. Emellett segíti az AWS-ügyfeleket egy hatékony szerver nélküli stratégia meghatározásában a számításigényes alkalmazásaikhoz.
Diksha Sharma megoldástervező és gépi tanulási szakértő az AWS-nél. Segít az ügyfeleknek felgyorsítani a felhő alkalmazását, különösen a gépi tanulás és a szerver nélküli technológiák területén. A Diksha testreszabott koncepciókat alkalmaz, amelyek megmutatják az ügyfeleknek az AWS értékét üzleti és informatikai kihívásaik megoldásában. Lehetővé teszi az ügyfelek számára az AWS-rel kapcsolatos ismereteiket, és az ügyfelekkel együtt dolgozik a kívánt megoldás kidolgozásában.
Veda Raman a marylandi székhelyű gépi tanulási megoldások vezető specialistája. A Veda együttműködik az ügyfelekkel, hogy segítsen nekik hatékony, biztonságos és méretezhető gépi tanulási alkalmazások kialakításában. A Veda érdekelt abban, hogy segítse ügyfeleit a szerver nélküli technológiák kihasználásában a gépi tanuláshoz.
Josh Kahn a szerver nélküli világ technológiai vezetője és a megoldások fő építésze. Az AWS szerver nélküli szakértőiből álló globális közösséget vezeti, akik az induló vállalkozásoktól a világ legnagyobb vállalataiig minden méretű ügyfelet segítenek az AWS szerver nélküli technológiák hatékony használatában.
- AI
- ai művészet
- ai art generátor
- van egy robotod
- mesterséges intelligencia
- mesterséges intelligencia tanúsítás
- mesterséges intelligencia a bankszektorban
- mesterséges intelligencia robot
- mesterséges intelligencia robotok
- mesterséges intelligencia szoftver
- AWS Lambda
- AWS gépi tanulás
- blockchain
- blokklánc konferencia ai
- coingenius
- társalgási mesterséges intelligencia
- kriptokonferencia ai
- dall's
- mély tanulás
- google azt
- gépi tanulás
- Plató
- plato ai
- Platón adatintelligencia
- Platón játék
- PlatoData
- platogaming
- skála ai
- szintaxis
- Technikai útmutató
- zephyrnet