Namestite rešitev MLOps, ki gosti vaše končne točke modela v AWS Lambda PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.

Namestite rešitev MLOps, ki gosti vaše končne točke modela v AWS Lambda

Leta 2019 je Amazon soustanovil podnebna obljuba. Cilj obljube je doseči neto nič ogljika do leta 2040. To je 10 let prej, kot je predvideno v pariškem sporazumu. Podjetja, ki se prijavijo, so zavezana rednemu poročanju, odpravi ogljika in verodostojnim izravnavam. V času pisanja tega članka je podnebno zavezo podpisalo 377 podjetij in število še vedno narašča.

Ker je AWS zavezan k temu, da vam pomaga doseči vaš neto ničelni cilj z rešitvami v oblaku in strojnim učenjem (ML), je bilo razvitih in uvedenih že veliko projektov, ki zmanjšujejo emisije ogljika. Proizvodnja je ena od panog, ki lahko s tovrstnimi projekti veliko pridobi. Z optimiziranim upravljanjem energije strojev v proizvodnih tovarnah, kot so kompresorji ali hladilniki, lahko podjetja zmanjšajo svoj ogljični odtis z ML.

Učinkovit prehod iz eksperimentalne faze ML v proizvodnjo je izziv. Avtomatizacija usposabljanja in ponovnega usposabljanja modela, imeti register modelov ter sledenje poskusom in uvajanju so nekateri ključni izzivi. Za proizvodna podjetja obstaja še ena plast zapletenosti, in sicer, kako lahko ti razporejeni modeli delujejo na robu.

V tej objavi obravnavamo te izzive z zagotavljanjem predloge operacij strojnega učenja (MLOps), ki gosti rešitev za trajnostno upravljanje energije. Rešitev je agnostična za primere uporabe, kar pomeni, da jo lahko prilagodite svojim primerom uporabe, tako da spremenite model in podatke. Pokažemo vam, kako integrirati modele Amazonski cevovodi SageMaker, izvirno orodje za orkestracijo delovnega toka za gradnjo cevovodov ML, ki izvaja opravilo usposabljanja in po izbiri opravilo obdelave s simulacijo Monte Carlo. Poskusi se spremljajo Eksperimenti Amazon SageMaker. Modeli se spremljajo in registrirajo v Register modelov Amazon SageMaker. Nazadnje nudimo kodo za uvedbo vašega končnega modela v AWS Lambda Funkcija.

Lambda je računalniška storitev, ki vam omogoča izvajanje kode brez upravljanja ali zagotavljanja strežnikov. Lambda je zaradi samodejnega skaliranja, zaračunavanja plačila na zahtevo in enostavne uporabe pogosta izbira uvajanja za skupine za podatkovno znanost. S to objavo lahko podatkovni znanstveniki spremenijo svoj model v stroškovno učinkovito in razširljivo Lambda funkcijo. Poleg tega Lambda omogoča integracijo z AWS IoT Zelena trava, ki vam pomaga zgraditi programsko opremo, ki vašim napravam omogoča, da delujejo na robu podatkov, ki jih ustvarijo, kot bi to veljalo za rešitve za trajnostno upravljanje energije.

Pregled rešitev

Arhitektura, ki jo uvajamo (glejte naslednjo sliko), je pristop k strojnemu učenju, ki v celoti temelji na CI/CD. Elementi so ločeni, da se izognemo eni monolitni rešitvi.

Začnimo z zgornjim levim delom diagrama. The Obdelava – Gradnja slike komponento poganja CI/CD AWS CodeCommit repozitorij, ki pomaga graditi in potisniti a Lučki delavec posodo za Registar elastičnih zabojnikov Amazon (Amazon ECR). Ta vsebnik za obdelavo služi kot prvi korak v našem cevovodu ML, vendar se ponovno uporabi tudi za korake naknadne obdelave. V našem primeru kot naknadno obdelavo uporabimo simulacijo Monte Carlo. The Usposabljanje – Gradnja slike repozitorij, označen spodaj levo, ima enak mehanizem kot Obravnavano blok nad njim. Glavna razlika je v tem, da gradi vsebnik za usposabljanje modela.

Glavni plinovod, Gradnja modela (cevovod), je še en repozitorij CodeCommit, ki avtomatizira izvajanje vaših cevovodov SageMaker. Ta cevovod avtomatizira in povezuje predhodno obdelavo podatkov, usposabljanje modela, sledenje meritvam modela v SageMaker Experiments, naknadno obdelavo podatkov in katalogiziranje modela v registru modelov SageMaker.

Zadnja komponenta je spodaj desno: Uvajanje modela. Če sledite zgledom v Projekti Amazon SageMaker, dobite predlogo, ki gosti vaš model s končno točko SageMaker. Namesto tega naš repozitorij za uvedbo gosti model v funkciji Lambda. Prikazujemo pristop za uvajanje funkcije Lambda, ki lahko izvaja napovedi v realnem času.

Predpogoji

Za uspešno uvedbo naše rešitve potrebujete naslednje:

Prenesite repozitorij GitHub

Kot prvi korak klonirajte GitHub repozitorij na vaš lokalni stroj. Vsebuje naslednjo strukturo map:

  • uvajanje – Vsebuje kodo, ki je pomembna za uvajanje
  • mllib — Vsebuje kodo ML za predprocesiranje, usposabljanje, streženje in simulacijo
  • testi — Vsebuje enotne in integracijske teste

Ključna datoteka za uvajanje je lupinski skript deployment/deploy.sh. To datoteko uporabljate za uvajanje virov v svojem računu. Preden lahko zaženemo lupinski skript, dokončajte naslednje korake:

  1. odprite deployment/app.py in spremenite bucket_name pod SageMakerPipelineSourceCodeStack. bucket_name mora biti globalno edinstven (na primer dodajte svoje polno ime).
  2. In deployment/pipeline/assets/modelbuild/pipelines/energy_management/pipeline.py, spremenite default_bucket pod get_pipeline na isto ime, kot je navedeno v 1. koraku.

Razmestite rešitev z AWS CDK

Najprej konfigurirajte svoj AWS CLI z računom in regijo, v katero želite namestiti. Nato zaženite naslednje ukaze, da preidete v imenik za namestitev, ustvarite virtualno okolje, ga aktivirate in namestite zahtevane pakete pip, navedene v setup.pyin zaženite 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 izvaja naslednja dejanja:

  1. Ustvari virtualno okolje v Pythonu.
  2. Pridobi skript za aktiviranje virtualnega okolja.
  3. Namesti AWS CDK in zahteve, opisane v setup.py.
  4. Bootstraps okolje.
  5. Stisne in kopira potrebne datoteke, ki ste jih razvili, kot je vaša mllib datoteke v ustrezne mape, kjer so ta sredstva potrebna.
  6. Teče cdk deploy —require-approval never.
  7. Ustvari Oblikovanje oblaka AWS sklad prek AWS CDK.

Začetna faza uvajanja naj bi trajala manj kot 5 minut. Zdaj bi morali imeti štiri repozitorije v CodeCommit v regiji, ki ste jo navedli prek AWS CLI, kot je prikazano v diagramu arhitekture. The AWS CodePipeline cevovodi potekajo hkrati. The modelbuild in modeldeploy Cevovodi so odvisni od uspešnega izvajanja obdelave in izgradnje slike za usposabljanje. The modeldeploy cevovod je odvisen od uspešne gradnje modela. Namestitev modela bi morala biti končana v manj kot 1.5 ure.

Klonirajte repozitorije modelov v Studiu

Če želite prilagoditi cevovode SageMaker, ustvarjene z uvedbo AWS CDK v uporabniškem vmesniku Studio, morate najprej klonirati repozitorije v Studio. Zaženite sistemski terminal v Studiu in po vnosu imena in ID-ja projekta zaženite naslednje ukaze:

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

Po kloniranju repozitorijev lahko potisnete obvezo v repozitorije. Te potrditve sprožijo izvajanje CodePipeline za povezane cevovode.

Rešitev lahko prilagodite tudi na svojem lokalnem računalniku in delate na svojem želenem IDE.

Krmarite po uporabniškem vmesniku SageMaker Pipelines in SageMaker Experiments

Cevovod SageMaker je niz med seboj povezanih korakov, ki so definirani z uporabo SDK za Amazon SageMaker Python. Ta definicija cevovoda kodira cevovod z uporabo usmerjenega acikličnega grafa (DAG), ki ga je mogoče izvoziti kot definicijo JSON. Če želite izvedeti več o strukturi takih cevovodov, glejte Pregled cevovodov SageMaker.

Pomaknite se na Viri SageMaker podoknu in izberite vir Cevovodi za ogled. Spodaj Ime, bi morali videti PROJECT_NAME-PROJECT_ID. V uporabniškem vmesniku za zagon bi moral biti uspešen zagon, ki naj bi trajal nekaj več kot 1 uro. Cevovod bi moral izgledati, kot je prikazano na naslednjem posnetku zaslona.

Cevovod Amazon SageMaker

Zagon se je samodejno sprožil po uvedbi sklada AWS CDK. Zagon lahko ročno prikličete tako, da izberete ustvarjanje izvedba. Od tam lahko izberete lastne parametre cevovoda, kot sta vrsta primerka in število primerkov za korake obdelave in usposabljanja. Poleg tega lahko teku daste ime in opis. Cevovod je zelo nastavljiv prek parametrov cevovoda, na katere se lahko sklicujete in definirate v svoji definiciji cevovoda.

Lahko začnete še en cevovod s svojimi parametri po želji. Nato se pomaknite do Viri SageMaker znova podokno in izberite Poskusi in poskusi. Tam bi morali spet videti vrstico z imenom, kot je npr PROJECT_NAME-PROJECT_ID. Pomaknite se do poskusa in izberite edino izvedbo z naključnim ID-jem. Od tam izberite vadbeno opravilo SageMaker, da raziščete metrike, povezane z vadbenim opravilom.

Cilj SageMaker Experiments je čim bolj poenostaviti ustvarjanje poskusov, jih zapolniti s poskusi in izvajati analitiko med poskusi in eksperimenti. SageMaker Pipelines so tesno povezani s SageMaker Experiments in privzeto za vsak zagon ustvarijo poskus, poskus in komponente poskusa, če ne obstajajo.

Odobrite uvedbo Lambda v registru modela

Kot naslednji korak se pomaknite do registra modela pod Viri SageMaker. Tukaj lahko spet najdete vrstico z imenom, kot je npr PROJECT_NAME-PROJECT_ID. Pomaknite se do edinega modela, ki obstaja, in ga odobrite. To samodejno razmesti artefakt modela v vsebnik v Lambda.

Ko odobrite svoj model v registru modelov, se an Amazon EventBridge se sproži pravilo dogodka. To pravilo izvaja cevovod CodePipeline s koncem *-modeldeploy. V tem razdelku razpravljamo o tem, kako ta rešitev uporablja odobreni model in ga gosti v funkciji Lambda. CodePipeline vzame obstoječe repozitorij CodeCommit, ki se prav tako konča z *-modeldeploy in uporablja to kodo za izvajanje v CodeBuild. Glavni vnos za CodeBuild je buildspec.yml mapa. Poglejmo najprej tole:

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

Med fazo namestitve zagotovimo, da so knjižnice Python posodobljene, ustvarimo virtualno okolje, namestimo AWS CDK v2.26.0 in namestimo aws-cdk Knjižnica Python skupaj z drugimi, ki uporabljajo datoteko z zahtevami. Smo tudi zaženite račun AWS. V fazi gradnje tečemo build.py, o katerem bomo razpravljali v nadaljevanju. Ta datoteka prenese najnovejši odobren artefakt modela SageMaker iz Preprosta storitev shranjevanja Amazon (Amazon S3) v vaš lokalni primerek CodeBuild. to .tar.gz datoteka razpakirana in njena vsebina prekopirana v mapo, ki vsebuje tudi našo glavno kodo Lambda. Funkcija Lambda je uvedena z uporabo AWS CDK, koda pa teče iz vsebnika Docker iz Amazon ECR. To samodejno izvede AWS CDK.

O build.py je datoteka Python, ki večinoma uporablja AWS SDK za Python (Boto3) za seznam paketov modelov, ki so na voljo.

funkcija get_approved_package vrne Amazon S3 URI artefakta, ki se nato prenese, kot je opisano prej.

Po uspešni uvedbi vašega modela lahko Test neposredno na konzoli Lambda v regiji, v kateri ste se odločili za namestitev. Ime funkcije mora vsebovati DigitalTwinStack-DigitalTwin*. Odprite funkcijo in se pomaknite do Test zavihek. Za izvajanje preizkusnega klica lahko uporabite naslednji dogodek:

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

Po izvedbi preskusnega dogodka dobite odgovor, podoben tistemu, prikazanemu na naslednjem posnetku zaslona.

Preizkusite funkcijo AWS Lambda

Če želite izvajati več simulacij ali poskusov, lahko povečate omejitev časovne omejitve Lambda in eksperimentirate s kodo! Ali pa boste morda želeli pobrati ustvarjene podatke in jih vizualizirati Amazon QuickSight. Spodaj je primer. Zdaj si ti na vrsti!

Amazon QuickSight

Čiščenje

Če se želite izogniti nadaljnjim bremenitvam, izvedite naslednje korake:

  • Na konzoli AWS CloudFormation izbrišite EnergyOptimization kup.
    S tem izbrišete celotno rešitev.
  • Izbrišite sklad DigitalTwinStack, ki je uporabil vašo funkcijo Lambda.

zaključek

V tej objavi smo vam pokazali cevovod MLOps rešitve za upravljanje energije, ki ga poganja CI/CD, kjer vsak korak ostane ločen. V uporabniškem vmesniku Studio lahko spremljate svoje cevovode in poskuse ML. Prikazali smo tudi drugačen pristop uvajanja: po odobritvi modela v registru modelov se funkcija Lambda, ki gosti odobreni model, samodejno zgradi prek CodePipeline.

Če vas zanima raziskovanje cevovoda MLOps na AWS ali rešitve za trajnostno upravljanje energije, si oglejte GitHub repozitorij in razmestite sklad v svojem okolju AWS!


O avtorjih

Namestite rešitev MLOps, ki gosti vaše končne točke modela v AWS Lambda PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.Laurens van der Maas je podatkovni znanstvenik pri AWS Professional Services. Tesno sodeluje s strankami, ki gradijo svoje rešitve strojnega učenja na AWS, in navdušen je nad tem, kako strojno učenje spreminja svet, kot ga poznamo.

Namestite rešitev MLOps, ki gosti vaše končne točke modela v AWS Lambda PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.Kangkang Wang je svetovalec za AI/ML pri AWS Professional Services. Ima bogate izkušnje z uvajanjem rešitev AI/ML v vertikali zdravstva in znanosti o življenju. Uživa tudi v tem, da poslovnim strankam pomaga zgraditi razširljive platforme AI/ML za pospešitev potovanja v oblak njihovih podatkovnih znanstvenikov.

Namestite rešitev MLOps, ki gosti vaše končne točke modela v AWS Lambda PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.Selena Tabbara je podatkovni znanstvenik pri AWS Professional Services. Vsak dan dela s svojimi strankami, da bi dosegla njihove poslovne rezultate z inovacijami na platformah AWS. V prostem času Selena uživa v igranju klavirja, pohodništvu in gledanju košarke.

Michael Wallner Michael Wallner je višji svetovalec s poudarkom na AI/ML pri AWS Professional Services. Michael strastno želi strankam na njihovem potovanju v oblak omogočiti, da postanejo AWSome. Navdušen je nad proizvodnjo in uživa v pomoči pri preoblikovanju proizvodnega prostora s pomočjo podatkov.

Časovni žig:

Več od Strojno učenje AWS