Ota käyttöön MLOps-ratkaisu, joka isännöi mallisi päätepisteitä AWS Lambda PlatoBlockchain Data Intelligencessä. Pystysuuntainen haku. Ai.

Ota käyttöön MLOps-ratkaisu, joka isännöi mallisi päätepisteitä AWS Lambdassa

Vuonna 2019 Amazon oli mukana perustamassa ilmastonmuutosvelvollisuus. Lupauksen tavoitteena on saavuttaa hiilidioksidipäästöt vuoteen 2040 mennessä. Tämä on 10 vuotta aikaisemmin kuin Pariisin sopimuksessa hahmotellaan. Rekisteröityneet yritykset ovat sitoutuneet säännölliseen raportointiin, hiilidioksidipäästöjen poistamiseen ja uskottaviin korvauksiin. Tätä kirjoitettaessa 377 yritystä on allekirjoittanut ilmastositoumuksen, ja määrä kasvaa edelleen.

Koska AWS on sitoutunut auttamaan sinua saavuttamaan nettonollatavoitteesi pilviratkaisujen ja koneoppimisen (ML) avulla, monia hiilidioksidipäästöjä vähentäviä projekteja on jo kehitetty ja otettu käyttöön. Valmistus on yksi aloista, joka voi hyötyä suuresti tällaisista hankkeista. Tehtaiden koneiden, kuten kompressorien tai jäähdyttimien, optimoidun energianhallinnan avulla yritykset voivat pienentää hiilijalanjälkeään ML:llä.

Tehokas siirtyminen ML-kokeiluvaiheesta tuotantoon on haastavaa. Mallin koulutuksen ja uudelleenkoulutuksen automatisointi, mallirekisterin pitäminen sekä kokeilujen ja käyttöönoton seuranta ovat joitakin keskeisiä haasteita. Valmistusyrityksille on toinenkin monimutkainen kerros, nimittäin se, kuinka nämä käyttöönotetut mallit voivat toimia reunalla.

Tässä viestissä käsittelemme näitä haasteita tarjoamalla koneoppimistoimintojen (MLOps) mallin, joka sisältää kestävän energianhallintaratkaisun. Ratkaisu on agnostinen käyttötapauksille, mikä tarkoittaa, että voit mukauttaa sen käyttötapauksiin muuttamalla mallia ja tietoja. Näytämme sinulle kuinka integroida malleja Amazon SageMaker -putkistot, natiivi työnkulun organisointityökalu ML-putkien rakentamiseen, joka suorittaa koulutustyön ja valinnaisesti käsittelytyön Monte Carlo -simulaatiolla. Kokeita seurataan Amazon SageMaker -kokeilut. Malleja seurataan ja rekisteröidään Amazon SageMaker -mallirekisteri. Lopuksi tarjoamme koodin lopullisen mallisi käyttöönottoa varten AWS Lambda toiminto.

Lambda on laskentapalvelu, jonka avulla voit suorittaa koodia ilman palvelimien hallintaa tai provisiointia. Lambdan automaattinen skaalaus, pay-per-request -laskutus ja helppokäyttöisyys tekevät siitä yleisen käyttöönottovaihtoehdon datatieteen ryhmille. Tämän postauksen avulla datatutkijat voivat muuttaa mallinsa kustannustehokkaaksi ja skaalautuvaksi lambda-funktioksi. Lisäksi Lambda mahdollistaa integroinnin AWS IoT Vihreä ruoho, jonka avulla voit rakentaa ohjelmistoja, joiden avulla laitteesi voivat toimia tuottamiensa tietojen parhaalla tasolla, kuten kestävän energianhallintaratkaisun tapauksessa.

Ratkaisun yleiskatsaus

Käyttämämme arkkitehtuuri (katso seuraava kuva) on täysin CI/CD-ohjattu lähestymistapa koneoppimiseen. Elementit on erotettu toisistaan ​​yhden monoliittisen ratkaisun välttämiseksi.

Aloitetaan kaavion vasemmasta yläkulmasta. The Käsittely – Kuvan rakentaminen komponentti on CI/CD-ohjattu AWS CodeCommit arkisto, joka auttaa rakentamaan ja työntämään a Satamatyöläinen säiliöön Amazonin elastisten säiliörekisteri (Amazon ECR). Tämä käsittelysäiliö toimii ensimmäisenä vaiheena ML-prosessissamme, mutta sitä käytetään myös uudelleen jälkikäsittelyvaiheisiin. Meidän tapauksessamme käytämme Monte Carlo -simulaatiota jälkikäsittelynä. The Koulutus – Kuvan rakentaminen vasemmassa alakulmassa hahmotetulla arkistolla on sama mekanismi kuin Käsittely lohko sen yläpuolella. Suurin ero on, että se rakentaa kontin mallikoulutukseen.

Pääputki, Mallin rakentaminen (Pupeline), on toinen CodeCommit-arkisto, joka automatisoi SageMaker-putkien suorittamisen. Tämä putki automatisoi ja yhdistää tietojen esikäsittelyn, mallikoulutuksen, mallimittojen seurannan SageMaker Experimentsissa, tietojen jälkikäsittelyn ja malliluettelon SageMaker-mallirekisterissä.

Lopullinen komponentti on oikeassa alakulmassa: Mallin käyttöönotto. Jos noudatat esimerkkejä Amazon SageMaker -projektit, saat mallin, joka isännöi malliasi SageMaker-päätepisteen avulla. Käyttöönottovarastomme isännöi mallia sen sijaan Lambda-funktiossa. Näytämme lähestymistavan Lambda-toiminnon käyttöönottamiseksi, joka voi suorittaa reaaliaikaisia ​​ennusteita.

Edellytykset

Jotta voit ottaa ratkaisumme käyttöön onnistuneesti, tarvitset seuraavat:

Lataa GitHub-arkisto

Ensimmäisenä vaiheena kloonaa GitHub-arkisto paikalliseen koneeseen. Se sisältää seuraavan kansiorakenteen:

  • käyttöönotto – Sisältää käyttöönoton kannalta merkityksellisen koodin
  • mllib — Sisältää ML-koodin esikäsittelyä, koulutusta, tarjoilua ja simulointia varten
  • testit — Sisältää yksikkö- ja integrointitestit

Käyttöönoton avaintiedosto on shell-skripti deployment/deploy.sh. Käytät tätä tiedostoa tilisi resurssien käyttöönottoon. Ennen kuin voimme suorittaa shell-skriptin, suorita seuraavat vaiheet:

  1. Avaa deployment/app.py ja muuta ämpärin_nimi alla SageMakerPipelineSourceCodeStack. bucket_name on oltava maailmanlaajuisesti ainutlaatuinen (lisää esimerkiksi koko nimesi).
  2. In deployment/pipeline/assets/modelbuild/pipelines/energy_management/pipeline.py, muuta default_bucket varten get_pipeline samalle nimelle kuin vaiheessa 1.

Ota ratkaisu käyttöön AWS CDK:n kanssa

Ensimmäinen, määritä AWS CLI tilin ja alueen kanssa, jossa haluat ottaa käyttöön. Suorita sitten seuraavat komennot vaihtaaksesi käyttöönottohakemistoon, luodaksesi virtuaalisen ympäristön, aktivoidaksesi sen ja asentaaksesi tarvittavat pip-paketit, jotka on määritetty kohdassa setup.pyja suorita 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 suorittaa seuraavat toiminnot:

  1. Luo virtuaalisen ympäristön Pythonissa.
  2. Lähteet virtuaaliympäristön aktivointikomentosarjan.
  3. Asentaa AWS CDK:n ja siinä esitetyt vaatimukset setup.py.
  4. Saappaat ympäristö.
  5. Pakkaa ja kopioi tarvittavat kehittämäsi tiedostot, kuten sinun mllib tiedostot vastaaviin kansioihin, joissa näitä resursseja tarvitaan.
  6. Toimii cdk deploy —require-approval never.
  7. Luo AWS-pilven muodostuminen pinoa AWS CDK:n kautta.

Käyttöönoton alkuvaiheen tulisi kestää alle 5 minuuttia. Sinulla pitäisi nyt olla neljä arkistoa CodeCommitissa alueella, jonka määritit AWS CLI:n kautta, kuten arkkitehtuurikaaviossa on kuvattu. The AWS-koodiputki putkia ajetaan samanaikaisesti. The modelbuild ja modeldeploy putkilinjat riippuvat käsittelyn ja koulutuksen kuvanmuodostuksen onnistumisesta. The modeldeploy putkisto riippuu onnistuneesta mallin rakentamisesta. Mallin käyttöönoton pitäisi olla valmis alle 1.5 tunnissa.

Kloonaa mallivarastot Studiossa

Jos haluat mukauttaa AWS CDK:n käyttöönoton avulla Studio-käyttöliittymässä luotuja SageMaker-putkistoja, sinun on ensin kloonattava arkistot Studioon. Käynnistä järjestelmäpääte Studiossa ja suorita seuraavat komennot, kun olet antanut projektin nimen ja tunnuksen:

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

Arkiston kloonauksen jälkeen voit työntää arkistoihin sitoutumisen. Nämä sitoumukset käynnistävät CodePipeline-ajon asiaan liittyville liukuhihnaille.

Voit myös muokata ratkaisua paikallisella koneellasi ja työstää haluamaasi IDE:tä.

Navigoi SageMaker Pipelines- ja SageMaker Experiments -käyttöliittymässä

SageMaker-liukuhihna on sarja toisiinsa liittyviä vaiheita, jotka määritetään käyttämällä Amazon SageMaker Python SDK. Tämä liukuhihnan määritelmä koodaa liukuhihnan käyttämällä suunnattua asyklistä kuvaajaa (DAG), joka voidaan viedä JSON-määritelmänä. Lisätietoja tällaisten putkien rakenteesta on kohdassa SageMaker-putkien yleiskatsaus.

Navigoida johonkin SageMaker-resurssit -ruutu ja valitse tarkasteltava putkilinjaresurssi. Alla Nimi, sinun pitäisi nähdä PROJECT_NAME-PROJECT_ID. Ajon käyttöliittymässä pitäisi olla onnistunut ajo, jonka odotetaan kestävän hieman yli 1 tunnin. Liukulinjan pitäisi näyttää seuraavan kuvakaappauksen mukaiselta.

Amazon SageMaker Pipeline

Ajo käynnistyi automaattisesti, kun AWS CDK -pino oli otettu käyttöön. Voit käynnistää ajon manuaalisesti valitsemalla luoda teloitus. Sieltä voit valita omat liukuhihnaparametrisi, kuten ilmentymän tyypin ja esiintymien lukumäärän käsittely- ja koulutusvaiheita varten. Lisäksi voit antaa juoksulle nimen ja kuvauksen. Liukulinja on hyvin konfiguroitavissa liukuhihnaparametreilla, joihin voit viitata ja joita voit määrittää koko liukuhihnan määrittelyssäsi.

Voit vapaasti aloittaa toisen putkiajon parametreillasi haluamallasi tavalla. Siirry sen jälkeen kohtaan SageMaker-resurssit ruutu uudelleen ja valitse Kokeita ja kokeita. Siellä sinun pitäisi nähdä jälleen rivi, jolla on nimi, kuten PROJECT_NAME-PROJECT_ID. Siirry kokeiluun ja valitse ainoa ajo, jossa on satunnainen tunnus. Valitse sieltä SageMaker-koulutustyö tutkiaksesi koulutustyöhön liittyviä mittareita.

SageMaker Experimentsin tavoitteena on tehdä kokeiden luomisesta, niiden täyttämisestä kokeiluilla ja analytiikan suorittamisesta mahdollisimman yksinkertaista. SageMaker-putkistot on integroitu tiiviisti SageMaker Experimentsin kanssa, ja oletuksena jokaiselle ajolle luodaan kokeilu-, kokeilu- ja kokeilukomponentit, jos niitä ei ole olemassa.

Hyväksy Lambdan käyttöönotto mallirekisterissä

Siirry seuraavana vaiheena alla olevaan mallirekisteriin SageMaker-resurssit. Täältä löydät jälleen rivin, jonka nimi on esim PROJECT_NAME-PROJECT_ID. Siirry ainoaan olemassa olevaan malliin ja hyväksy se. Tämä ottaa malliartefaktin automaattisesti käyttöön säilössä Lambdassa.

Kun olet hyväksynyt mallisi mallirekisterissä, an Amazon EventBridge tapahtumasääntö laukeaa. Tämä sääntö suorittaa CodePipeline-liukuhihnan päätteellä *-modeldeploy. Tässä osiossa keskustelemme siitä, kuinka tämä ratkaisu käyttää hyväksyttyä mallia ja isännöi sitä Lambda-funktiossa. CodePipeline ottaa olemassa olevan CodeCommit-arkiston, joka myös päättyy *-modeldeploy ja käyttää tätä koodia toimiakseen CodeBuildissa. CodeBuildin päämerkintä on buildspec.yml tiedosto. Katsotaanpa ensin tätä:

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

Asennusvaiheessa varmistamme, että Python-kirjastot ovat ajan tasalla, luomme virtuaalisen ympäristön, asennamme AWS CDK v2.26.0:n ja asennamme aws-cdk Python-kirjasto yhdessä muiden vaatimusten tiedostoa käyttävien kanssa. Me myös käynnistä AWS-tili. Rakennusvaiheessa juoksemme build.py, josta keskustelemme seuraavaksi. Tämä tiedosto lataa viimeisimmän hyväksytyn SageMaker-malliartefaktin osoitteesta Amazonin yksinkertainen tallennuspalvelu (Amazon S3) paikalliseen CodeBuild-instanssiin. Tämä .tar.gz tiedosto puretaan ja sen sisältö kopioidaan kansioon, joka sisältää myös päälambdakoodimme. Lambda-toiminto otetaan käyttöön AWS CDK:n avulla, ja koodi loppuu Amazon ECR:n Docker-säiliöstä. AWS CDK tekee tämän automaattisesti.

- build.py tiedosto on Python-tiedosto, joka käyttää enimmäkseen AWS SDK Pythonille (Boto3) luetellaksesi saatavilla olevat mallipaketit.

Toiminto get_approved_package palauttaa artefaktin Amazon S3 URI:n, joka sitten ladataan, kuten aiemmin on kuvattu.

Kun mallisi on otettu käyttöön onnistuneesti, voit testi se suoraan Lambda-konsolissa alueella, jolla valitsit käyttöönoton. Toiminnon nimen tulee sisältää DigitalTwinStack-DigitalTwin*. Avaa toiminto ja siirry kohtaan Testi -välilehti. Voit käyttää testipuhelun suorittamiseen seuraavaa tapahtumaa:

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

Testitapahtuman suorittamisen jälkeen saat seuraavan kuvakaappauksen kaltaisen vastauksen.

Testaa AWS Lambda -toimintoa

Jos haluat suorittaa lisää simulaatioita tai kokeita, voit suurentaa Lambdan aikakatkaisurajaa ja kokeilla koodia! Tai saatat haluta poimia luodut tiedot ja visualisoida ne Amazon QuickSight. Alla on esimerkki. Nyt on sinun vuorosi!

Amazon QuickSight

Puhdistaa

Vältä lisäveloitukset suorittamalla seuraavat vaiheet:

  • Poista AWS CloudFormation -konsolista EnergyOptimization pino.
    Tämä poistaa koko ratkaisun.
  • Poista pino DigitalTwinStack, joka otti käyttöön lambda-toiminnon.

Yhteenveto

Tässä viestissä näytimme sinulle energianhallintaratkaisun CI/CD-ohjatun MLOps-putken, jossa pidämme jokaisen vaiheen erotettuna. Voit seurata ML-putkia ja kokeiluja Studion käyttöliittymässä. Esitimme myös erilaisen käyttöönottotavan: kun malli on hyväksytty mallirekisteriin, hyväksyttyä mallia isännöivä Lambda-toiminto rakennetaan automaattisesti CodePipelinen kautta.

Jos olet kiinnostunut tutkimaan joko AWS:n MLOps-putkistoa tai kestävää energianhallintaratkaisua, tutustu GitHub-arkisto ja ota pino käyttöön omassa AWS-ympäristössäsi!


Tietoja Tekijät

Ota käyttöön MLOps-ratkaisu, joka isännöi mallisi päätepisteitä AWS Lambda PlatoBlockchain Data Intelligencessä. Pystysuuntainen haku. Ai.Laurens van der Maas on tietotutkija AWS Professional Services -palvelussa. Hän työskentelee tiiviisti asiakkaiden kanssa, jotka rakentavat koneoppimisratkaisujaan AWS:llä, ja on intohimoinen siitä, kuinka koneoppiminen muuttaa maailmaa sellaisena kuin me sen tunnemme.

Ota käyttöön MLOps-ratkaisu, joka isännöi mallisi päätepisteitä AWS Lambda PlatoBlockchain Data Intelligencessä. Pystysuuntainen haku. Ai.Kangkang Wang on AI/ML-konsultti AWS Professional Services -palvelussa. Hänellä on laaja kokemus AI/ML-ratkaisujen käyttöönotosta terveydenhuollon ja biotieteiden alalla. Hän haluaa myös auttaa yritysasiakkaita rakentamaan skaalautuvia AI/ML-alustoja datatieteilijöiden pilvimatkan nopeuttamiseksi.

Ota käyttöön MLOps-ratkaisu, joka isännöi mallisi päätepisteitä AWS Lambda PlatoBlockchain Data Intelligencessä. Pystysuuntainen haku. Ai.Selena Tabbara on tietotutkija AWS Professional Services -palvelussa. Hän työskentelee päivittäin asiakkaidensa kanssa saavuttaakseen liiketoimintansa tuloksia innovoimalla AWS-alustoilla. Vapaa-ajallaan Selena nauttii pianon soittamisesta, patikoinnista ja koripallon katsomisesta.

Michael Wallner Michael Wallner on vanhempi konsultti, joka keskittyy tekoälyyn/ML:ään AWS Professional Services -palveluiden avulla. Michael haluaa antaa asiakkaille mahdollisuuden tulla AWSomeksi heidän pilvimatkallaan. Hän on innostunut valmistuksesta ja nauttii auttamisesta muuttamaan valmistustilaa tietojen avulla.

Aikaleima:

Lisää aiheesta AWS-koneoppiminen