Telepítsen egy MLOps-megoldást, amely az AWS Lambda PlatoBlockchain Data Intelligence rendszerben tárolja a modell végpontjait. Függőleges keresés. Ai.

Telepítsen egy MLOps-megoldást, amely az AWS Lambdában tárolja a modell végpontjait

2019-ben az Amazon társalapítója a éghajlati ígéret. A kötelezettségvállalás célja, hogy 2040-re elérjük a nettó nulla szén-dioxid-kibocsátást. Ez 10 évvel korábban, mint a párizsi megállapodásban körvonalazódik. A regisztráló vállalatok elkötelezettek a rendszeres jelentéstétel, a szén-dioxid-kibocsátás megszüntetése és a hiteles ellentételezés mellett. E cikk írásakor 377 vállalat írta alá az éghajlati ígéretet, és ez a szám még mindig növekszik.

Mivel az AWS elkötelezett amellett, hogy felhőmegoldásokkal és gépi tanulással (ML) segítsen elérni a nettó nulla célt, számos olyan projektet fejlesztettek ki és alkalmaztak már, amelyek csökkentik a szén-dioxid-kibocsátást. A gyártás az egyik olyan iparág, amely nagy hasznot húzhat az ilyen projektekből. A gyártógyárakban lévő gépek, például kompresszorok vagy hűtők optimalizált energiagazdálkodásával a vállalatok csökkenthetik szénlábnyomukat az ML segítségével.

Az ML kísérletezési fázisból a termelésbe való hatékony átállás kihívást jelent. A modellképzés és -átképzés automatizálása, a modellnyilvántartás, valamint a kísérletek és a telepítés nyomon követése a legfontosabb kihívások közé tartozik. A gyártó vállalatok számára van egy másik összetettségi réteg is, nevezetesen, hogy ezek a telepített modellek hogyan futhatnak a széleken.

Ebben a bejegyzésben ezekkel a kihívásokkal foglalkozunk egy olyan gépi tanulási műveletek (MLOps) sablon biztosításával, amely fenntartható energiagazdálkodási megoldást tartalmaz. A megoldás agnosztikus a használati esetekkel szemben, ami azt jelenti, hogy a modell és az adatok megváltoztatásával a használati esetekhez igazíthatja. Megmutatjuk, hogyan lehet modelleket integrálni Amazon SageMaker csővezetékek, egy natív munkafolyamat-hangszerelő eszköz ML-folyamatok építéséhez, amely egy képzési feladatot és opcionálisan egy feldolgozási feladatot futtat Monte Carlo szimulációval. A kísérleteket nyomon követik Amazon SageMaker kísérletek. A modellek nyomon követése és regisztrálása a Amazon SageMaker modellnyilvántartás. Végül kódot adunk a végső modell telepítéséhez AWS Lambda funkciót.

A Lambda egy számítási szolgáltatás, amely lehetővé teszi a kód futtatását kiszolgálók kezelése vagy kiépítése nélkül. A Lambda automatikus méretezése, kérésenkénti számlázása és egyszerű használhatósága az adattudományi csapatok általános telepítési választásává teszik. Ezzel a bejegyzéssel az adatkutatók költséghatékony és méretezhető lambda-függvényré alakíthatják modelljüket. Ezenkívül a Lambda lehetővé teszi az integrációt AWS IoT Greengrass, amely segít olyan szoftver létrehozásában, amely lehetővé teszi, hogy eszközei az általuk generált adatok szélén járjanak el, ahogy az egy fenntartható energiagazdálkodási megoldás esetében lenne.

Megoldás áttekintése

Az általunk telepített architektúra (lásd a következő ábrát) a gépi tanulás teljes mértékben CI/CD-vezérelt megközelítése. Az elemek szétválasztásra kerülnek, hogy ne legyen egyetlen monolitikus megoldás.

Kezdjük a diagram bal felső sarkával. Az Feldolgozás – Képkészítés alkatrész CI/CD-vezérelt AWS CodeCommit adattár, amely segít felépíteni és továbbítani a Dokkmunkás konténerhez Amazon Elastic Container Registry (Amazon ECR). Ez a feldolgozó tároló az ML folyamat első lépéseként szolgál, de az utófeldolgozási lépésekhez is újra felhasználható. Esetünkben Monte Carlo szimulációt alkalmazunk utófeldolgozásként. Az Képzés – Képalkotás A bal alsó sarokban vázolt adattár ugyanazzal a mechanizmussal rendelkezik, mint a Feldolgozás blokk fölötte. A fő különbség az, hogy modellképzéshez építi a konténert.

A fővezeték, Modellépítés (csővezeték), egy másik CodeCommit adattár, amely automatizálja a SageMaker folyamatok futtatását. Ez a folyamat automatizálja és összekapcsolja az adatok előfeldolgozását, a modell betanítását, a modellmetrikák követését a SageMaker Experimentsben, az adatok utófeldolgozását és a modellkatalógusokat a SageMaker modellnyilvántartásban.

Az utolsó komponens a jobb alsó sarokban található: Modell telepítés. Ha követi a példákat Amazon SageMaker projektek, akkor kap egy sablont, amely egy SageMaker-végpont használatával tárolja a modelljét. A telepítési adattárunk ehelyett egy Lambda-függvényben tárolja a modellt. Bemutatunk egy megközelítést a Lambda függvény telepítésére, amely valós idejű előrejelzéseket futtathat.

Előfeltételek

Megoldásunk sikeres üzembe helyezéséhez a következőkre van szüksége:

Töltse le a GitHub adattárat

Első lépésként klónozza a GitHub tárház a helyi gépre. A következő mappastruktúrát tartalmazza:

  • bevetés – A telepítésre vonatkozó kódot tartalmazza
  • mllib — ML kódot tartalmaz az előfeldolgozáshoz, betanításhoz, kiszolgáláshoz és szimulációhoz
  • tesztek — Egység- és integrációs teszteket tartalmaz

A központi telepítéshez szükséges kulcsfájl a shell script deployment/deploy.sh. Ezzel a fájllal telepítheti a fiókjában lévő erőforrásokat. Mielőtt futtathatnánk a shell szkriptet, hajtsa végre a következő lépéseket:

  1. Nyissa meg a deployment/app.py és módosítsa a vödör_nevet alatt SageMakerPipelineSourceCodeStack Az bucket_name globálisan egyedinek kell lennie (például adja meg a teljes nevét).
  2. In deployment/pipeline/assets/modelbuild/pipelines/energy_management/pipeline.py, változtasd meg a default_bucket alatt get_pipeline az 1. lépésben megadott névre.

Telepítse a megoldást az AWS CDK-val

Először is, konfigurálja az AWS CLI-jét a telepíteni kívánt fiókkal és régióval. Ezután futtassa a következő parancsokat a telepítési könyvtárba való váltáshoz, virtuális környezet létrehozásához, aktiválásához, a szükséges pip csomagok telepítéséhez setup.py, és futtassa a deploy.sh:

cd deployment
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
pre-commit install
chmod u+x deploy.sh
./deploy.sh

deploy.sh a következő műveleteket hajtja végre:

  1. Virtuális környezetet hoz létre Pythonban.
  2. A virtuális környezet aktiválási parancsfájljának forrása.
  3. Telepíti az AWS CDK-t és az abban leírt követelményeket setup.py.
  4. Bootstraps a környezet.
  5. Összetömöríti és lemásolja a szükséges fájlokat, amelyeket Ön fejlesztett ki, például a sajátját mllib fájlokat a megfelelő mappákba, ahol ezekre az eszközökre szükség van.
  6. Runs cdk deploy —require-approval never.
  7. Létrehoz egy AWS felhőképződés verem az AWS CDK-n keresztül.

A telepítés kezdeti szakasza kevesebb, mint 5 percet vesz igénybe. Most már négy lerakattal kell rendelkeznie a CodeCommitben az AWS parancssori felületen keresztül megadott régióban, az architektúra diagramon látható módon. Az AWS CodePipeline a csővezetékek egyidejűleg futnak. Az modelbuild és a modeldeploy a folyamatok a feldolgozási és betanítási képfájl sikeres futtatásától függenek. Az modeldeploy a folyamat a sikeres modell felépítésétől függ. A modell telepítésének kevesebb, mint 1.5 órán belül be kell fejeződnie.

Klónozza a modelltárakat a Studio alkalmazásban

Az AWS CDK-telepítéssel létrehozott SageMaker folyamatok testreszabásához a Studio UI-ban először klónoznia kell a lerakatokat a Studio-ba. Indítsa el a rendszerterminált a Studio alkalmazásban, és futtassa a következő parancsokat, miután megadta a projekt nevét és azonosítóját:

git clone https://git-codecommit.REGION.amazonaws.com/v1/repos/sagemaker-PROJECT_NAME-PROJECT_ID-modelbuild
git clone https://git-codecommit.REGION.amazonaws.com/v1/repos/sagemaker-PROJECT_NAME-PROJECT_ID-modeldeploy
git clone https://git-codecommit.REGION.amazonaws.com/v1/repos/sagemaker-PROJECT_NAME-PROJECT_ID-processing-imagebuild
git clone https://git-codecommit.REGION.amazonaws.com/v1/repos/sagemaker-PROJECT_NAME-PROJECT_ID-training-imagebuild

A tárolók klónozása után véglegesítést küldhet a tárolókra. Ezek a véglegesítések elindítják a CodePipeline futtatását a kapcsolódó folyamatokhoz.

A megoldást a helyi gépen is adaptálhatja, és a kívánt IDE-n dolgozhat.

Navigáljon a SageMaker Pipelines és a SageMaker Experiments felhasználói felületén

A SageMaker-folyamat egymással összekapcsolt lépések sorozata, amelyeket a következővel határozunk meg Amazon SageMaker Python SDK. Ez a folyamatdefiníció egy folyamatot kódol egy irányított aciklikus grafikon (DAG) segítségével, amely JSON-definícióként exportálható. Ha többet szeretne megtudni az ilyen csővezetékek szerkezetéről, lásd: A SageMaker Pipelines áttekintése.

navigáljon SageMaker források ablaktáblát, és válassza ki a megtekintendő folyamatok erőforrást. Alatt Név, látnod kéne PROJECT_NAME-PROJECT_ID. A futtatási felhasználói felületen egy sikeres futtatásnak kell lennie, amely várhatóan valamivel több mint 1 órát vesz igénybe. A folyamatnak a következő képernyőképen látható módon kell kinéznie.

Amazon SageMaker Pipeline

A futás automatikusan elindult az AWS CDK-verem telepítése után. A választással manuálisan is elindíthat egy futást Teremt végrehajtás. Innen kiválaszthatja saját folyamatparamétereit, például a példány típusát és a példányok számát a feldolgozási és betanítási lépésekhez. Ezenkívül a futásnak nevet és leírást adhat. A folyamat nagymértékben konfigurálható olyan folyamatparaméterekkel, amelyekre hivatkozhat és meghatározható a folyamat során.

Nyugodtan indítson el egy újabb folyamatot a kívánt paraméterekkel. Ezt követően navigáljon a SageMaker források ablakban újra, és válassza ki Kísérletek és próbák. Itt ismét látnia kell egy sort, amelynek neve pl PROJECT_NAME-PROJECT_ID. Navigáljon a kísérlethez, és válassza ki az egyetlen véletlenszerű azonosítójú futtatást. Innen válassza a SageMaker képzési feladatot a képzési munkához kapcsolódó mutatók felfedezéséhez.

A SageMaker Experiments célja, hogy a lehető legegyszerűbb legyen a kísérletek létrehozása, kísérletekkel való feltöltése, valamint a kísérletek és kísérletek közötti elemzések futtatása. A SageMaker-folyamatok szorosan integrálva vannak a SageMaker-kísérletekkel, és alapértelmezés szerint minden futtatáshoz létrehoznak egy kísérletet, próba- és próbaösszetevőket, ha nem léteznének.

Jóváhagyja a Lambda telepítését a modellnyilvántartásban

Következő lépésként navigáljon a alatti modell-nyilvántartásba SageMaker források. Itt ismét találhat egy sort olyan névvel, mint pl PROJECT_NAME-PROJECT_ID. Keresse meg az egyetlen létező modellt, és hagyja jóvá. Ez automatikusan telepíti a modellműterméket egy Lambda-tárolóban.

Miután jóváhagyta a modellt a modellnyilvántartásban, egy Amazon EventBridge eseményszabály aktiválódik. Ez a szabály a CodePipeline folyamatot a végével futtatja *-modeldeploy. Ebben a részben azt tárgyaljuk, hogy ez a megoldás hogyan használja a jóváhagyott modellt, és hogyan tárolja azt egy Lambda függvényben. A CodePipeline átveszi a meglévő CodeCommit tárolót, amely szintén a következővel végződik *-modeldeploy és ezt a kódot használja a CodeBuildben való futtatáshoz. A CodeBuild fő bejegyzése a buildspec.yml fájlt. Nézzük először ezt:

version: 0.2

env:
  shell: bash

phases:
  install:
    runtime_versions:
      python: 3.8
    commands:
      - python3 -m ensurepip --upgrade
      - python3 -m pip install --upgrade pip
      - python3 -m pip install --upgrade virtualenv
      - python3 -m venv .venv
      - source .venv/bin/activate
      - npm install -g aws-cdk@2.26.0
      - pip install -r requirements.txt
      - cdk bootstrap
  build:
    commands:
      - python build.py --model-package-group-name "$SOURCE_MODEL_PACKAGE_GROUP_NAME"
      - tar -xf model.tar.gz
      - cp model.joblib lambda/digital_twin
      - rm model.tar.gz
      - rm model.joblib
      - cdk deploy --require-approval never

A telepítési szakaszban gondoskodunk arról, hogy a Python-könyvtárak naprakészek legyenek, létrehozunk egy virtuális környezetet, telepítjük az AWS CDK v2.26.0-t, és telepítjük a aws-cdk Python könyvtár másokkal együtt, amelyek a követelményfájlt használják. Mi is indítsa el az AWS-fiókot. Az építési fázisban futunk build.py, amelyet a következőkben tárgyalunk. Ez a fájl letölti a legújabb jóváhagyott SageMaker modellműterméket innen Amazon egyszerű tárolási szolgáltatás (Amazon S3) a helyi CodeBuild példányra. Ez .tar.gz A fájl kicsomagolásra kerül, és a tartalmát a fő Lambda kódunkat is tartalmazó mappába másolja. A Lambda funkciót az AWS CDK használatával telepítik, és a kód kifut az Amazon ECR Docker-tárolójából. Ezt az AWS CDK automatikusan megteszi.

A build.py fájl egy Python-fájl, amely többnyire a AWS SDK Pythonhoz (Boto3) az elérhető modellcsomagok felsorolásához.

A funkció get_approved_package visszaadja az utána letöltött műtermék Amazon S3 URI-jét, a korábban leírtak szerint.

A modell sikeres üzembe helyezése után megteheti teszt közvetlenül a Lambda konzolon abban a régióban, amelyben telepíteni szeretné. A függvény nevének tartalmaznia kell DigitalTwinStack-DigitalTwin*. Nyissa meg a funkciót, és navigáljon a Teszt lapon. A következő eseményt használhatja teszthívás futtatásához:

{
  "flow": "[280, 300]",
  "pressure": "[69, 70]",
  "simulations": "10",
  "no_of_trials": "10",
  "train_error_weight": "1.0"
}

A tesztesemény futtatása után a következő képernyőképen láthatóhoz hasonló választ kap.

Tesztelje az AWS lambda funkcióját

Ha több szimulációt vagy kísérletet szeretne futtatni, növelheti a Lambda időtúllépési korlátját, és kísérletezhet a kóddal! Vagy érdemes felvenni a generált adatokat, és megjeleníteni azokat Amazon QuickSight. Alább egy példa. Most te jössz!

Amazon QuickSight

Tisztítsuk meg

A további költségek elkerülése érdekében hajtsa végre a következő lépéseket:

  • Az AWS CloudFormation konzolon törölje a EnergyOptimization Kazal.
    Ezzel a teljes megoldás törlődik.
  • A verem törlése DigitalTwinStack, amely telepítette a Lambda funkcióját.

Következtetés

Ebben a bejegyzésben egy energiagazdálkodási megoldás CI/CD-vezérelt MLOps folyamatát mutattuk be, ahol minden lépést szétválasztunk. Nyomon követheti ML-folyamatait és kísérleteit a Studio felhasználói felületén. Bemutattunk egy másik telepítési megközelítést is: egy modell jóváhagyásakor a modellnyilvántartásban a jóváhagyott modellt tároló Lambda-függvény automatikusan épül fel a CodePipeline-on keresztül.

Ha szeretné felfedezni az MLOps csővezetéket az AWS-en vagy a fenntartható energiagazdálkodási megoldást, nézze meg a GitHub tárház és telepítse a veremet saját AWS-környezetében!


A szerzőkről

Telepítsen egy MLOps-megoldást, amely az AWS Lambda PlatoBlockchain Data Intelligence rendszerben tárolja a modell végpontjait. Függőleges keresés. Ai.Laurens van der Maas az AWS Professional Services adattudósa. Szorosan együttműködik az AWS-en gépi tanulási megoldásaikat építő ügyfelekkel, és szenvedélyesen foglalkozik azzal, hogy a gépi tanulás hogyan változtatja meg az általunk ismert világot.

Telepítsen egy MLOps-megoldást, amely az AWS Lambda PlatoBlockchain Data Intelligence rendszerben tárolja a modell végpontjait. Függőleges keresés. Ai.Kangkang Wang az AWS Professional Services AI/ML tanácsadója. Nagy tapasztalattal rendelkezik az AI/ML megoldások bevezetésében az egészségügyi és élettudományi ágazatban. Szívesen segít a vállalati ügyfeleknek skálázható AI/ML platformok létrehozásában, hogy felgyorsítsák adattudósaik felhőbeli útját.

Telepítsen egy MLOps-megoldást, amely az AWS Lambda PlatoBlockchain Data Intelligence rendszerben tárolja a modell végpontjait. Függőleges keresés. Ai.Selena Tabbara az AWS Professional Services adattudósa. Naponta dolgozik ügyfeleivel, hogy az AWS platformokon való innováció révén elérjék üzleti eredményeiket. Szabadidejében Selena szeret zongorázni, túrázni és kosárlabdát nézni.

Michael Wallner Michael Wallner vezető tanácsadó, aki az AI/ML-re fókuszál az AWS professzionális szolgáltatásaival. Michael szenvedélyesen törekszik arra, hogy lehetővé tegye az ügyfeleknek a felhőalapú utazásukon, hogy AWSome-vé váljanak. Izgatott a gyártás, és szívesen segít adatokon keresztül a gyártási terület átalakításában.

Időbélyeg:

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