Juurutage MLOps-lahendus, mis majutab teie mudeli lõpp-punkte AWS Lambda PlatoBlockchain Data Intelligence'is. Vertikaalne otsing. Ai.

Juurutage MLOps-lahendus, mis majutab teie mudeli lõpp-punkte AWS Lambdas

Aastal 2019 asutas Amazon selle kliimapant. Lubaduse eesmärk on saavutada 2040. aastaks süsinikupuhastus. See on 10 aastat varem kui Pariisi kokkuleppes ette nähtud. Registreeruvad ettevõtted on pühendunud regulaarsele aruandlusele, süsinikdioksiidi kõrvaldamisele ja usaldusväärsetele kompensatsioonidele. Selle kirjutamise ajal on kliimatõotuse allkirjastanud 377 ettevõtet ja nende arv kasvab endiselt.

Kuna AWS on pühendunud sellele, et aidata teil pilvelahenduste ja masinõppe (ML) kaudu saavutada nullpuhastuse, on juba välja töötatud ja kasutusele võetud palju süsinikdioksiidi heitkoguseid vähendavaid projekte. Tootmine on üks tööstusharudest, mis võib sellistest projektidest palju kasu saada. Tootmistehastes olevate masinate (nt kompressorid või jahutid) optimeeritud energiahalduse kaudu saavad ettevõtted ML abil oma süsiniku jalajälge vähendada.

Tõhus üleminek ML-i katsetamise etapist tootmisele on keeruline. Mudelite väljaõppe ja ümberõppe automatiseerimine, mudeliregistri omamine ning katsete ja juurutamise jälgimine on mõned peamised väljakutsed. Tootmisettevõtete jaoks on veel üks keerukuse kiht, nimelt see, kuidas need kasutusele võetud mudelid saavad serval töötada.

Selles postituses käsitleme neid väljakutseid, pakkudes masinõppeoperatsioonide (MLOps) malli, mis sisaldab säästvat energiahalduslahendust. Lahendus on kasutusjuhtumite suhtes agnostiline, mis tähendab, et saate seda mudelit ja andmeid muutes oma kasutusjuhtudele kohandada. Näitame teile, kuidas mudeleid integreerida Amazon SageMakeri torujuhtmed, loomulik töövoo orkestreerimistööriist ML-konveierite ehitamiseks, mis teostab koolitustööd ja valikuliselt töötlemistööd Monte Carlo simulatsiooniga. Katseid jälgitakse Amazon SageMakeri katsed. Mudeleid jälgitakse ja registreeritakse Amazon SageMakeri mudeliregister. Lõpuks pakume koodi teie lõpliku mudeli juurutamiseks AWS Lambda funktsiooni.

Lambda on arvutusteenus, mis võimaldab teil koodi käitada ilma servereid haldamata või varustamiseta. Lambda automaatne skaleerimine, makse-päringu arveldamine ja kasutuslihtsus muudavad selle andmeteadusmeeskondade jaoks tavaliseks kasutuselevõtuvalikuks. Selle postitusega saavad andmeteadlased muuta oma mudeli kulutõhusaks ja skaleeritavaks lambdafunktsiooniks. Lisaks võimaldab Lambda integreerida AWS IoT Greengrass, mis aitab teil luua tarkvara, mis võimaldab teie seadmetel nende genereeritud andmete põhjal tegutseda, nagu see oleks säästva energiahalduslahenduse puhul.

Lahenduse ülevaade

Meie juurutatud arhitektuur (vt järgmist joonist) on täielikult CI/CD-põhine masinõppe lähenemisviis. Elemendid on lahti ühendatud, et vältida ühe monoliitse lahenduse tekkimist.

Alustame diagrammi vasakpoolsest ülaosast. The Töötlemine – pildi koostamine komponent on CI/CD-ajamiga AWS CodeCommit hoidla, mis aitab luua ja lükata a laevalaadija konteinerisse Amazoni elastsete konteinerite register (Amazon ECR). See töötlemiskonteiner toimib meie ML-konveieri esimese sammuna, kuid seda kasutatakse uuesti ka järeltöötlusetappideks. Meie puhul rakendame järeltöötlusena Monte Carlo simulatsiooni. The Koolitus – pildi loomine vasakus allnurgas kujutatud hoidlal on sama mehhanism nagu Töötlemine blokk selle kohal. Peamine erinevus seisneb selles, et see ehitab mudelitreeningu konteineri.

Peamine torujuhe, Mudeli ehitamine (torujuhe), on veel üks CodeCommiti hoidla, mis automatiseerib teie SageMakeri torujuhtmete käitamise. See konveier automatiseerib ja ühendab andmete eeltöötluse, mudelikoolituse, mudelimõõdikute jälgimise SageMaker Experimentsis, andmete järeltöötluse ja mudelite kataloogimise SageMakeri mudeliregistris.

Lõplik komponent asub all paremal: Mudeli juurutamine. Kui järgite toodud näiteid Amazon SageMakeri projektid, saate malli, mis majutab teie mudelit, kasutades SageMakeri lõpp-punkti. Selle asemel majutab meie juurutushoidla mudelit Lambda funktsioonis. Näitame lähenemisviisi Lambda funktsiooni juurutamiseks, mis suudab käivitada reaalajas prognoose.

Eeldused

Meie lahenduse edukaks juurutamiseks vajate järgmist.

Laadige alla GitHubi hoidla

Esimese sammuna kloonige GitHubi hoidla oma kohalikule masinale. See sisaldab järgmist kaustastruktuuri:

  • kasutuselevõtu – Sisaldab juurutamiseks asjakohast koodi
  • mllib — Sisaldab ML-koodi eeltöötluseks, treenimiseks, serveerimiseks ja simuleerimiseks
  • testid — Sisaldab ühiku- ja integratsiooniteste

Juurutamise võtmefail on kestaskript deployment/deploy.sh. Kasutate seda faili oma konto ressursside juurutamiseks. Enne kestaskripti käivitamist täitke järgmised sammud.

  1. avage deployment/app.py ja muutke all olevat kopa_nimi SageMakerPipelineSourceCodeStack. bucket_name peab olema globaalselt unikaalne (näiteks lisage oma täisnimi).
  2. In deployment/pipeline/assets/modelbuild/pipelines/energy_management/pipeline.py, muuda default_bucket all get_pipeline samale nimele, mis on määratletud sammus 1.

Juurutage lahendus koos AWS CDK-ga

Esiteks konfigureerige oma AWS-i CLI konto ja piirkonnaga, mida soovite juurutada. Seejärel käivitage järgmised käsud, et minna juurutamise kataloogi, luua virtuaalne keskkond, aktiveerida see, installida vajalikud pip-paketid, mis on määratud setup.pyja käivitage 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 teostab järgmisi toiminguid:

  1. Loob Pythonis virtuaalse keskkonna.
  2. Pärib virtuaalse keskkonna aktiveerimisskripti.
  3. Installib AWS CDK ja selles kirjeldatud nõuded setup.py.
  4. Saapapaelad keskkond.
  5. Pakub ja kopeerib teie arendatud vajalikud failid, näiteks teie mllib failid vastavatesse kaustadesse, kus neid varasid vaja on.
  6. Jookseb cdk deploy —require-approval never.
  7. Loob an AWS CloudFormation virna läbi AWS CDK.

Kasutuselevõtu esialgne etapp peaks kesta vähem kui 5 minutit. Nüüd peaks teil olema CodeCommitis neli hoidlat piirkonnas, mille määrasite AWS-i CLI kaudu, nagu on kirjeldatud arhitektuuriskeemil. The AWS CodePipeline torujuhtmeid juhitakse samaaegselt. The modelbuild ja modeldeploy konveierid sõltuvad kujutise töötlemise ja koolituse edukast käivitamisest. The modeldeploy torujuhe sõltub edukast mudeli ehitamisest. Mudeli kasutuselevõtt peaks lõppema vähem kui 1.5 tunniga.

Kloonige mudelihoidlad Studios

Studio kasutajaliideses AWS CDK juurutamise kaudu loodud SageMakeri torujuhtmete kohandamiseks peate esmalt hoidlad Studiosse kloonima. Käivitage Studios süsteemiterminal ja käivitage pärast projekti nime ja ID sisestamist järgmised käsud:

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

Pärast hoidlate kloonimist saate andmehoidlatele kohustuse lükata. Need kohustused käivitavad seotud torujuhtmete jaoks CodePipeline'i käitamise.

Samuti saate kohandada lahendust oma kohalikus masinas ja töötada oma eelistatud IDE-ga.

Navigeerige SageMakeri torujuhtmete ja SageMakeri katsete kasutajaliideses

SageMakeri konveier on rida omavahel ühendatud etappe, mis on määratletud kasutades Amazon SageMaker Python SDK. See konveieri määratlus kodeerib konveieri, kasutades suunatud atsüklilist graafikut (DAG), mida saab eksportida JSON-i definitsioonina. Selliste torujuhtmete struktuuri kohta lisateabe saamiseks vaadake SageMakeri torujuhtmete ülevaade.

Liigu SageMakeri ressursid paan ja valige vaatamiseks torujuhtmete ressurss. Under Nimi, peaksite nägema PROJECT_NAME-PROJECT_ID. Käitusliideses peaks toimuma edukas jooks, mis eeldatavalt võtab aega veidi üle 1 tunni. Torujuhe peaks välja nägema selline, nagu on näidatud järgmisel ekraanipildil.

Amazon SageMakeri torujuhe

Käitus käivitati automaatselt pärast AWS CDK-virna juurutamist. Käitamise saate käsitsi käivitada, valides Looma hukkamine. Sealt saate valida oma konveieri parameetrid, nagu näiteks eksemplari tüüp ja eksemplaride arv töötlemise ja koolituse etappide jaoks. Lisaks saate anda jooksule nime ja kirjelduse. Konveier on väga konfigureeritav konveieri parameetrite kaudu, millele saate kogu oma konveieri määratluses viidata ja määratleda.

Soovi korral võite alustada teist torujuhtme käitamist oma parameetritega. Seejärel navigeerige lehele SageMakeri ressursid paan uuesti ja valige Katsed ja katsed. Seal peaksite jälle nägema rida, mille nimi on näiteks PROJECT_NAME-PROJECT_ID. Liikuge katsele ja valige ainus juhusliku ID-ga käitamine. Sealt vali SageMakeri koolitustöö, et tutvuda koolitustööga seotud mõõdikutega.

Programmi SageMaker Experiments eesmärk on teha katsete loomine, nende katsetamine ning katsete ja katsete lõikes analüüsi tegemine võimalikult lihtsaks. SageMakeri torujuhtmed on tihedalt integreeritud SageMakeri katsetega ja loovad vaikimisi iga käitamise jaoks katse, prooviversiooni ja proovikomponendid, kui neid ei eksisteeri.

Kinnitage Lambda juurutamine mudeliregistris

Järgmise sammuna liikuge allolevasse mudeliregistrisse SageMakeri ressursid. Siit leiate taas rea, mille nimi on nagu PROJECT_NAME-PROJECT_ID. Liikuge ainsa olemasoleva mudeli juurde ja kinnitage see. See juurutab mudeli artefakti automaatselt Lambda konteineris.

Pärast mudeli kinnitamist mudeliregistris, a Amazon EventBridge sündmuse reegel käivitub. See reegel käivitab CodePipeline'i torujuhtme lõpuga *-modeldeploy. Selles jaotises käsitleme, kuidas see lahendus heakskiidetud mudelit kasutab ja seda lambdafunktsioonis hostib. CodePipeline võtab olemasoleva CodeCommiti hoidla, mis lõpeb samuti *-modeldeploy ja kasutab seda koodi CodeBuildis käitamiseks. CodeBuildi peamine kirje on buildspec.yml faili. Vaatame kõigepealt seda:

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

Installimisetapis tagame Pythoni teekide ajakohasuse, loome virtuaalse keskkonna, installime AWS CDK v2.26.0 ja installime aws-cdk Pythoni teek koos teistega, kes kasutavad nõuete faili. Meil ka AWS-i konto alglaadimine. Ehitamisetapis jookseme build.py, mida arutame järgmisena. See fail laadib saidilt alla uusima kinnitatud SageMakeri mudeliartefakti Amazoni lihtne salvestusteenus (Amazon S3) kohalikule CodeBuildi eksemplarile. See .tar.gz fail pakitakse lahti ja selle sisu kopeeritakse kausta, mis sisaldab ka meie peamist Lambda koodi. Lambda funktsioon juurutatakse AWS CDK abil ja kood saab Amazon ECR-i Dockeri konteinerist otsa. Seda teeb AWS CDK automaatselt.

. build.py fail on Pythoni fail, mis enamasti kasutab AWS SDK Pythoni jaoks (Boto3) saadaolevate mudelipakettide loetlemiseks.

funktsioon get_approved_package tagastab artefakti Amazon S3 URI, mis seejärel alla laaditakse, nagu varem kirjeldatud.

Pärast mudeli edukat juurutamist saate seda teha test see otse Lambda konsoolil piirkonnas, mille valisite juurutamiseks. Funktsiooni nimi peaks sisaldama DigitalTwinStack-DigitalTwin*. Avage funktsioon ja navigeerige test sakk. Testkõne käivitamiseks saate kasutada järgmist sündmust.

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

Pärast testsündmuse käivitamist saate järgmise ekraanipildiga sarnase vastuse.

Testige AWS lambda funktsiooni

Kui soovite käivitada rohkem simulatsioone või katseid, saate Lambda ajalõpu limiiti suurendada ja koodiga katsetada! Või soovite koguda loodud andmed ja visualiseerida neid Amazon QuickSight. Allpool on näide. Nüüd on sinu kord!

Amazon QuickSight

Koristage

Edasiste tasude vältimiseks toimige järgmiselt.

  • Kustutage AWS CloudFormationi konsoolis EnergyOptimization virn.
    See kustutab kogu lahenduse.
  • Kustutage virn DigitalTwinStack, mis juurutas teie lambda funktsiooni.

Järeldus

Selles postituses näitasime teile energiahalduslahenduse CI/CD-põhist MLOps-i torustikku, kus me hoiame iga sammu lahti. Stuudio kasutajaliideses saate jälgida oma ML-konveierte ja katseid. Samuti demonstreerisime teistsugust juurutamisviisi: pärast mudeli kinnitamist mudeliregistris ehitatakse CodePipeline'i kaudu automaatselt heakskiidetud mudelit hostiv Lambda-funktsioon.

Kui olete huvitatud MLOps torujuhtme uurimisest AWS-is või säästva energiahalduslahenduse kohta, vaadake GitHubi hoidla ja juurutage virn oma AWS-i keskkonnas!


Autoritest

Juurutage MLOps-lahendus, mis majutab teie mudeli lõpp-punkte AWS Lambda PlatoBlockchain Data Intelligence'is. Vertikaalne otsing. Ai.Laurens van der Maas on AWS Professional Servicesi andmeteadlane. Ta teeb tihedat koostööd klientidega, kes loovad oma masinõppelahendusi AWS-is, ja tunneb kirglikult, kuidas masinõpe muudab maailma sellisel kujul, nagu me seda teame.

Juurutage MLOps-lahendus, mis majutab teie mudeli lõpp-punkte AWS Lambda PlatoBlockchain Data Intelligence'is. Vertikaalne otsing. Ai.Kangkang Wang on AWS Professional Services AI/ML konsultant. Tal on ulatuslik kogemus AI/ML-lahenduste juurutamisel tervishoiu- ja bioteaduste vertikaalvaldkonnas. Samuti meeldib talle aidata ettevõtetel klientidel luua skaleeritavaid AI/ML-platvorme, et kiirendada nende andmeteadlaste pilveteekonda.

Juurutage MLOps-lahendus, mis majutab teie mudeli lõpp-punkte AWS Lambda PlatoBlockchain Data Intelligence'is. Vertikaalne otsing. Ai.Selena Tabbara on AWS Professional Servicesi andmeteadlane. Ta töötab iga päev oma klientidega, et saavutada AWS-i platvormidel uuendusi nende äritulemusi. Vabal ajal meeldib Selenale klaverit mängida, matkata ja korvpalli vaadata.

Michael Wallner Michael Wallner on vanemkonsultant, kes keskendub tehisintellektile/ML-ile koos AWS-i professionaalsete teenustega. Michael soovib kirglikult võimaldada klientidel nende pilveteekonnal saada AWSome'iks. Ta on tootmisest põnevil ja talle meeldib aidata andmete kaudu tootmisruumi muuta.

Ajatempel:

Veel alates AWS-i masinõpe