Telepítsen gépi tanulási következtetési adatrögzítési megoldást az AWS Lambda PlatoBlockchain Data Intelligence rendszeren. Függőleges keresés. Ai.

Telepítsen gépi tanulási következtetési adatrögzítési megoldást az AWS Lambdán

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
docker build -t serverless-ml-model-monitor:latest .

docker tag serverless-ml-model-monitor:latest .dkr.ecr.us-east-1.amazonaws.com/serverless-ml-model-monitor:latest

  • Bejelentkezés az Amazon ECR-be:
aws ecr get-login-password --region us-east-1 docker login --username AWS --password-stdin .dkr.ecr.us-east-1.amazonaws.com

  • Hozzon létre egy adattárat az Amazon ECR-ben:

aws ecr create-repositoryrepository-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:
docker push .dkr.ecr.us-east-1.amazonaws.com/serverless-ml-model-monitor:latest

  • 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:
WORKDIR /opt
COPY --from=layer /opt/ .

  • É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:
sam deploy --guided

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ék capabilities 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 hoz sam 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 futhasson sam 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:

curl -X POST -H "Content-Type: text/plain" https://.execute-api.us-east-1.amazonaws.com/Prod/nlp-qa -d '{"question": "Where do you live?", "context": "My name is Clara and I live in Berkeley."}'

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.

{
    "Question": "Where do you live?",
    "Answer": "Berkeley",
    "score": 0.9113729596138
}

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:

aws cloudformation delete-stack --stack-name 

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

Telepítsen gépi tanulási következtetési adatrögzítési megoldást az AWS Lambda PlatoBlockchain Data Intelligence rendszeren. Függőleges keresés. Ai.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.

Telepítsen gépi tanulási következtetési adatrögzítési megoldást az AWS Lambda PlatoBlockchain Data Intelligence rendszeren. Függőleges keresés. Ai.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.

Telepítsen gépi tanulási következtetési adatrögzítési megoldást az AWS Lambda PlatoBlockchain Data Intelligence rendszeren. Függőleges keresés. Ai.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.

Telepítsen gépi tanulási következtetési adatrögzítési megoldást az AWS Lambda PlatoBlockchain Data Intelligence rendszeren. Függőleges keresés. Ai.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.

Telepítsen gépi tanulási következtetési adatrögzítési megoldást az AWS Lambda PlatoBlockchain Data Intelligence rendszeren. Függőleges keresés. Ai. 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.

Időbélyeg:

Még több AWS gépi tanulás