MLO:t reunalla Amazon SageMaker Edge Managerin ja AWS IoT Greengrass PlatoBlockchain Data Intelligencen avulla. Pystysuuntainen haku. Ai.

MLOs reunassa Amazon SageMaker Edge Managerin ja AWS IoT Greengrassin avulla

Internet of Things (IoT) on auttanut asiakkaita useilla toimialoilla, kuten valmistus-, auto- ja energia-alalla, valvomaan ja hallitsemaan todellisia ympäristöjä. Ottamalla käyttöön erilaisia ​​IoT-laitteita, kuten kameroita, termostaatteja ja antureita, voit kerätä tietoja, lähettää ne pilveen ja rakentaa koneoppimismalleja (ML) ennustaaksesi poikkeavuuksia, vikoja ja paljon muuta. Jos käyttötapaus kuitenkin vaatii reaaliaikaista ennustamista, sinun on rikastettava IoT-ratkaisuasi ML at the edge (ML@Edge) -ominaisuuksilla. ML@Edge on konsepti, joka erottaa ML-mallin elinkaaren sovelluksen elinkaaresta ja antaa sinun ajaa päästä päähän ML-putkilinjaa, joka sisältää tietojen valmistelun, mallin rakentamisen, mallin kokoamisen ja optimoinnin, mallin käyttöönoton (reunalaitteisiin), mallin toteutus sekä mallin seuranta ja hallinta. Otat sovelluksen käyttöön kerran ja suoritat ML-putken niin monta kertaa kuin tarvitset.

Kuten voit kuvitella, kaikkien ML@Edge-konseptin ehdottamien vaiheiden toteuttaminen ei ole triviaalia. On monia kysymyksiä, joihin kehittäjien on vastattava voidakseen toteuttaa täydellisen ML@Edge-ratkaisun, esimerkiksi:

  • Kuinka käytän ML-malleja laivastossa (sadoissa, tuhansissa tai miljoonissa) laitteissa?
  • Kuinka suojaan mallini, kun otan sen käyttöön ja käytän sitä reunassa?
  • Kuinka seuraan mallini suorituskykyä ja koulutan sitä tarvittaessa uudelleen?

Tässä viestissä opit vastaamaan kaikkiin näihin kysymyksiin ja rakentamaan kokonaisvaltaisen ratkaisun ML@Edge-putkilinjasi automatisoimiseksi. Saa nähdä kuinka käyttää Amazon SageMaker Edge Manager, Amazon SageMaker Studioja AWS IoT Greengrass v2 luoda MLOps (ML Operations) -ympäristö, joka automatisoi ML-mallien rakentamisen ja käyttöönoton suurissa reunalaitteiden laitteissa.

Seuraavissa osissa esittelemme referenssiarkkitehtuurin, joka sisältää yksityiskohtaisesti kaikki komponentit ja työnkulut, joita tarvitaan täydellisen ratkaisun rakentamiseen reunatyökuormiin keskittyville MLOps-ratkaisuille. Sitten sukeltaamme syvälle vaiheisiin, joita tämä ratkaisu suorittaa automaattisesti uuden mallin rakentamiseksi ja valmistelemiseksi. Näytämme myös, miten reunalaitteet valmistetaan ML-mallien käyttöönottoa, käyttöä ja valvontaa varten, sekä osoitamme, kuinka voit valvoa ja ylläpitää laitteeseesi käytettyjä ML-malleja.

Ratkaisun yleiskatsaus

Vahvien ML-mallien tuotanto vaatii useiden henkilöiden, kuten datatieteilijöiden, ML-insinöörien, tietoinsinöörien ja liike-elämän sidosryhmien yhteistyötä puoliautomaattisessa infrastruktuurissa, joka seuraa tiettyjä operaatioita (MLOps). Myös ympäristön modularisointi on tärkeää, jotta kaikille näille erilaisille henkilöille annetaan joustavuutta ja ketteryyttä kehittää tai parantaa (työnkulusta riippumatta) komponenttia, josta he ovat vastuussa. Esimerkki tällaisesta infrastruktuurista koostuu useista AWS-tilistä, jotka mahdollistavat tämän yhteistyön ja ML-mallien tuotannon sekä pilvessä että reunalaitteisiin. Seuraavassa viitearkkitehtuurissa näytämme, kuinka järjestimme useat tilit ja palvelut, jotka muodostavat tämän kattavan MLOps-alustan ML-mallien rakentamiseksi ja niiden käyttöönottamiseksi reunalla.

Tämä ratkaisu koostuu seuraavista tileistä:

  • Data Lake -tili – Tietosuunnittelijat nielevät, tallentavat ja valmistelevat tietoja useista tietolähteistä, mukaan lukien paikalliset tietokannat ja IoT-laitteet.
  • Työkalutili – IT-operaattorit hallitsevat ja tarkistavat CI/CD-putkistoja ML-mallipakettien automaattista jatkuvaa toimitusta ja käyttöönottoa varten etäreunalaitteiden esituotanto- ja tuotantotileillä. CI/CD-putkien ajot automatisoidaan käyttämällä Amazon EventBridge, joka valvoo ML-mallien ja -kohteiden muutostilan tapahtumia AWS-koodiputki.
  • Kokeilu- ja kehitystili – Tietotieteilijät voivat tehdä tutkimusta ja kokeilla useita mallinnustekniikoita ja algoritmeja ML-pohjaisten liiketoimintaongelmien ratkaisemiseksi ja luoda konseptiratkaisuja. ML-insinöörit ja datatieteilijät tekevät yhteistyötä skaalatakseen konseptin todisteita luoden automatisoituja työnkulkuja käyttämällä Amazon SageMaker -putkistot valmistelemaan tietoja ja rakentamaan, kouluttamaan ja pakkaamaan ML-malleja. Liukuputkien käyttöönotto tapahtuu CI/CD-putkilinjojen kautta, kun taas mallien versionhallinta tapahtuu käyttämällä Amazon SageMaker -mallirekisteri. Tietotutkijat arvioivat useiden malliversioiden mittareita ja pyytävät parhaan mallin edistämistä tuotantoon käynnistämällä CI/CD-putkilinjan.
  • Tuotantoa edeltävä tili – Ennen mallin levittämistä tuotantoympäristöön mallia on testattava, jotta varmistetaan sen kestävyys simulaatioympäristössä. Siksi esituotantoympäristö on tuotantoympäristön simulaattori, jossa SageMaker-mallin päätepisteet otetaan käyttöön ja testataan automaattisesti. Testausmenetelmiin voi kuulua integraatiotesti, stressitesti tai ML-spesifiset johtopäätösten testit. Tässä tapauksessa tuotantoympäristö ei ole SageMaker-mallin päätepiste, vaan reunalaite. Reunalaitteen simuloimiseksi esituotannossa on kaksi mahdollista lähestymistapaa: käytä an Amazonin elastinen laskentapilvi (Amazon EC2) -esiintymä, jolla on samat laitteisto-ominaisuudet, tai käytä laboratorion sisäistä testialustaa, joka koostuu todellisista laitteista. Tämän infrastruktuurin avulla CI/CD-putki ottaa mallin käyttöön vastaavaan simulaattoriin ja suorittaa useat testit automaattisesti. Kun testit on suoritettu onnistuneesti, CI/CD-putki vaatii manuaalisen hyväksynnän (esimerkiksi IoT-sidosryhmältä mallin edistämiseksi tuotantoon).
  • Tuotantotili – Jos mallia isännöidään AWS-pilvessä, CI/CD-putki ottaa käyttöön SageMaker-mallin päätepisteen tuotantotilillä. Tässä tapauksessa tuotantoympäristö koostuu useista reunalaitteiden kalustoista. Siksi CI/CD-liukuhihna käyttää Edge Manageria mallien ottamiseksi käyttöön vastaavissa laitteissa.
  • Edge-laitteet – Remote edge -laitteet ovat laitteistolaitteita, jotka voivat käyttää ML-malleja Edge Managerin avulla. Sen avulla näiden laitteiden sovellus voi hallita malleja, tehdä johtopäätöksiä malleista ja kaapata tietoja turvallisesti Amazonin yksinkertainen tallennuspalvelu (Amazon S3).

SageMaker-projektit auttaa sinua automatisoimaan resurssien hallintaprosessin kunkin näiden tilien sisällä. Emme sukeltaa syvälle tähän ominaisuuteen, mutta saadaksesi lisätietoja SageMaker-projektimallin luomisesta, joka ottaa käyttöön ML-malleja eri tileillä, tutustu Usean tilin mallin käyttöönotto Amazon SageMaker Pipelinesin kanssa.

Esituotantotili: Digital twin

Koulutusprosessin jälkeen tuloksena oleva malli on arvioitava. Esituotantotilillä sinulla on simuloitu Edge-laite. Se edustaa digitaalinen kaksoset reunalaitteen, jolla ML-malli toimii tuotannossa. Tällä ympäristöllä on kaksi tarkoitusta: suorittaa klassiset testit (kuten yksikkö-, integraatio- ja savutestit) ja olla kehitystiimin leikkipaikka. Tämä laite on simuloitu käyttämällä EC2-instanssia, jossa kaikki ML-mallin hallintaan tarvittavat komponentit otettiin käyttöön.

Mukana olevat palvelut ovat seuraavat:

  • AWS IoT -ydin - Käytämme AWS IoT -ydin luoda AWS IoT -objekteja, luoda laitekantaa, rekisteröidä laitekanta, jotta se voi olla vuorovaikutuksessa pilven kanssa, luoda X.509-varmenteita reunalaitteiden todentamiseksi AWS IoT Coreen, yhdistää roolialias AWS IoT Coreen, joka luotiin, kun laivasto on luonut, hanki AWS-tilikohtainen päätepiste valtuustietojen tarjoajalle, hanki virallinen Amazon Root CA -tiedosto ja lataa Amazon CA -tiedosto Amazon S3:een.
  • Amazon Sagemaker Neo – Sagemaker Neo optimoi koneoppimismallit automaattisesti, jotta ne toimivat nopeammin ilman tarkkuuden menetystä. Se tukee koneoppimismallia, joka on jo rakennettu DarkNetin, Kerasin, MXNetin, PyTorchin, TensorFlown, TensorFlow-Liten, ONNX:n tai XGBoostin kanssa ja joka on koulutettu Amazon SageMakerissa tai missä tahansa muualla. Sitten valitset kohdelaitteistoalustan, joka voi olla SageMaker-isännöintiinstanssi tai reunalaite, joka perustuu Ambarellan, Applen, ARM:n, Intelin, MediaTekin, Nvidian, NXP:n, Qualcommin, RockChipin, Texas Instrumentsin tai Xilinxin prosessoreihin.
  • Edge Manager – Käytämme Edge Manageria reunalaitteen rekisteröintiin ja hallintaan Sagemaker-kaluston sisällä. Laivastot ovat kokoelmia loogisesti ryhmiteltyjä laitteita, joita voit käyttää tietojen keräämiseen ja analysointiin. Lisäksi Edge Manager -pakkaaja pakkaa optimoidun mallin ja luo AWS IoT Greengrass V2 -komponentin, joka voidaan ottaa suoraan käyttöön. Voit käyttää Edge Manageria ohjaamaan ML-malleja älykameroiden, älykaiuttimien, robottien ja muiden SageMaker-laitteiden kalustossa.
  • AWS IoT Greengrass V2 - AWS IoT Vihreä ruoho mahdollistaa komponenttien asentamisen simuloituihin laitteisiin EC2-instanssilla. Käyttämällä AWS IoT Greengrass V2 -agenttia EC2-esiintymissä voimme yksinkertaistaa Edge Manager -agentin ja -mallin käyttöä, hallintaa ja käyttöönottoa laitteisiin. Ilman AWS IoT Greengrass V2:ta laitteiden ja kaluston määrittäminen Edge Managerin käyttöä varten edellyttää, että agentti kopioidaan manuaalisesti S3-julkaisualueesta. AWS IoT Greengrass V2:n ja Edge Managerin integroinnin avulla on mahdollista käyttää AWS IoT Greengrass V2 -komponentteja. Komponentit ovat valmiiksi rakennettuja ohjelmistomoduuleja, jotka voivat yhdistää reunalaitteita AWS-palveluihin tai kolmannen osapuolen palveluun AWS IoT Greengrassin kautta.
  • Edge Manager -agentti – Edge Manager -agentti otetaan käyttöön AWS IoT Greengrass V2:n kautta EC2-esiintymässä. Agentti voi ladata useita malleja kerrallaan ja tehdä päätelmiä reunalaitteiden ladatuista malleista. Agentin lataamien mallien määrä määräytyy laitteen käytettävissä olevan muistin mukaan.
  • Amazon S3 – Käytämme S3-säilöä Edge Manager -agentilta kaapattujen päätelmien tallentamiseen.

Voimme määritellä esituotantotilin digitaaliseksi kaksoseksi ML-mallien testaamiseen ennen niiden siirtämistä todellisiin reunalaitteisiin. Tämä tarjoaa seuraavat edut:

  • Ketteryys ja joustavuus – Tietotieteilijöiden ja ML-insinöörien on tarkistettava nopeasti, toimivatko ML-malli ja siihen liittyvät komentosarjat (esikäsittely- ja päättelyskriptit) laitteen reunalla. Suuryritysten IoT- ja datatieteen osastot voivat kuitenkin olla erilaisia ​​kokonaisuuksia. Replikoimalla identtisesti teknologiapinon pilvessä, datatieteilijät ja ML-insinöörit voivat iteroida ja yhdistää artefakteja ennen käyttöönottoa.
  • Nopeutettu riskinarviointi ja tuotantoaika – Käyttöönotto reunalaitteessa on prosessin viimeinen vaihe. Kun olet validoinut kaiken eristetyssä ja itsenäisessä ympäristössä, varmista, että se noudattaa reunan vaatimia laatu-, suorituskyky- ja integraatiovaatimuksia. Tämä auttaa välttämään muiden IoT-osaston henkilöiden osallistumisen artefaktiversioiden korjaamiseen ja toistamiseen.
  • Parempi tiimiyhteistyö ja parannettu laatu ja suorituskyky – Kehitystiimi voi välittömästi arvioida ML-mallin vaikutuksia analysoimalla reunalaitteiston mittareita ja mittaamalla vuorovaikutuksen tasoa kolmannen osapuolen työkalujen kanssa (esim. I/O-nopeus). Sitten IoT-tiimi on vastuussa vain käyttöönotosta tuotantoympäristössä ja voi olla varma, että artefaktit ovat tarkkoja tuotantoympäristössä.
  • Integroitu leikkipaikka testausta varten – ML-mallien tavoite huomioon ottaen perinteisen työnkulun esituotantoympäristöä tulisi edustaa pilviympäristön ulkopuolella oleva reunalaite. Tämä tuo uuden monimutkaisuuden tason. Integraatioita tarvitaan mittareiden ja palautteen keräämiseen. Sen sijaan digitaalista kaksoissimuloitua ympäristöä käyttämällä vuorovaikutus vähenee ja markkinoille tuloaika lyhenee.

Tuotantotili ja reunaympäristö

Kun testit on suoritettu ja artefaktien vakaus on saavutettu, voit jatkaa tuotannon käyttöönottoa putkien kautta. Artefaktin käyttöönotto tapahtuu ohjelmallisesti sen jälkeen, kun operaattori on hyväksynyt artefaktin. Kuitenkin pääsy AWS-hallintakonsoli on myönnetty operaattoreille vain luku -tilassa, jotta he voivat valvoa kalustoihin liittyviä metatietoja ja saada siksi tietoa käytetyn ML-mallin versiosta ja muista elinkaareen liittyvistä mittareista.

Edge-laitekannat kuuluvat AWS-tuotantotilille. Tällä tilillä on erityisiä suojaus- ja verkkomäärityksiä, jotka mahdollistavat pilvi- ja reunalaitteiden välisen viestinnän. Tärkeimmät tuotantotilillä käyttöönotetut AWS-palvelut ovat Edge Manager, joka vastaa kaikkien laitekantojen hallinnasta, tietojen keräämisestä ja ML-mallien käyttämisestä, ja AWS IoT Core, joka hallitsee IoT-asiaobjekteja, varmenteita, roolialiaksia ja päätepisteitä.

Samalla meidän on konfiguroitava reunalaite palveluineen ja komponenteineen ML-mallien hallintaan. Pääkomponentit ovat seuraavat:

  • AWS IoT Greengrass V2
  • Edge Manager -agentti
  • AWS IoT -sertifikaatit
  • Application.py, joka vastaa päättelyprosessin ohjaamisesta (tietojen hakeminen reunatietolähteestä ja päättelyn suorittaminen Edge Manager -agentin ja ladatun ML-mallin avulla)
  • Yhteys Amazon S3:een tai data Lake -tiliin pääteltyjen tietojen tallentamiseksi

Automatisoitu ML-putki

Nyt kun tiedät enemmän organisaatiosta ja referenssiarkkitehtuurin komponenteista, voimme sukeltaa syvemmälle ML-putkilinjaan, jota käytämme ML-mallin rakentamiseen, kouluttamiseen ja arvioimiseen kehitystilin sisällä.

Putkilinja (rakennettu käyttämällä Amazon SageMaker mallinrakennusputkistot) on joukko toisiinsa yhdistettyjä vaiheita, jotka määritellään JSON-liukuhihnan määritelmällä. Tämä liukuhihnan määritelmä koodaa liukuhihnan käyttämällä suunnattua asyklistä kuvaajaa (DAG). Tämä DAG antaa tietoja putkilinjasi kunkin vaiheen vaatimuksista ja suhteista. Liukuhihnan DAG:n rakenne määräytyy vaiheiden välisten datariippuvuuksien perusteella. Nämä tietoriippuvuudet luodaan, kun vaiheen tulosteen ominaisuudet välitetään syötteenä toiseen vaiheeseen.

Jotta datatiederyhmät voivat helposti automatisoida uusien ML-mallien versioiden luomisen, on tärkeää ottaa käyttöön validointivaiheita ja automaattista dataa ML-mallien jatkuvaa syöttämistä ja parantamista varten sekä mallien seurantastrategioita putkilinjojen käynnistämisen mahdollistamiseksi. Seuraava kaavio näyttää esimerkkiputken.

MLO:t reunalla Amazon SageMaker Edge Managerin ja AWS IoT Greengrass PlatoBlockchain Data Intelligencen avulla. Pystysuuntainen haku. Ai.

Automaatioiden ja MLOps-ominaisuuksien mahdollistamiseksi on tärkeää luoda modulaarisia komponentteja, joilla luodaan uudelleenkäytettäviä koodiartefakteja, jotka voidaan jakaa eri vaiheissa ja ML-käyttötapauksissa. Näin voit siirtää toteutuksen nopeasti kokeiluvaiheesta tuotantovaiheeseen automatisoimalla siirtymisen.

Vaiheet ML-putkilinjan määrittämiseksi jatkuvan ML-mallien koulutuksen ja versioinnin mahdollistamiseksi ovat seuraavat:

  • esikäsittely – Tietojen puhdistus, ominaisuuksien suunnittelu ja tietojoukon luontiprosessi ML-algoritmin harjoittelua varten
  • koulutus – Kehitetyn ML-algoritmin koulutusprosessi ML-malliartefaktin uuden version luomiseksi
  • Arviointi – Luodun ML-mallin arviointiprosessi mallin käyttäytymiseen liittyvien keskeisten mittareiden poimimiseksi uudesta datasta, jota ei ole nähty koulutusvaiheen aikana
  • Rekisteröinti – Uuden koulutetun ML-malliartefaktin versiointiprosessi linkittämällä poimitut tiedot luotuun artefakttiin

Voit nähdä lisätietoja SageMaker-putkilinjan rakentamisesta seuraavassa muistikirja.

Käynnistä CI/CD-liukuhihnat EventBridgen avulla

Kun olet valmis rakentamaan mallin, voit aloittaa käyttöönottoprosessin. Edellisessä osassa määritellyn SageMaker-liukuhihnan viimeinen vaihe rekisteröi mallin uuden version tiettyyn SageMaker-mallirekisteriryhmään. ML-mallin uuden version käyttöönottoa hallitaan mallirekisterin tilan avulla. Hyväksymällä tai hylkäämällä ML-malliversion manuaalisesti tämä vaihe herättää tapahtuman, jonka EventBridge kaappaa. Tämä tapahtuma voi sitten aloittaa uuden prosessin (tällä kertaa CI/CD) uuden version luomiseksi AWS IoT Greengrass -komponentista, joka otetaan sitten käyttöön esituotanto- ja tuotantotileille. Seuraava kuvakaappaus näyttää määrittelemämme EventBridge-säännön.

MLO:t reunalla Amazon SageMaker Edge Managerin ja AWS IoT Greengrass PlatoBlockchain Data Intelligencen avulla. Pystysuuntainen haku. Ai.

Tämä sääntö valvoo SageMaker-mallipakettiryhmää etsimällä tilasta mallipakettien päivityksiä Approved or Rejected.

EventBridge-sääntö määritetään sitten kohdistamaan CodePipeline, joka aloittaa työnkulun uuden AWS IoT Greengrass -komponentin luomiseksi käyttämällä Amazon SageMaker Neo ja Edge Manager.

Optimoi ML-mallit kohdearkkitehtuurille

Neon avulla voit optimoida ML-malleja päätelmien suorittamiseen reunalaitteissa (ja pilvessä). Se optimoi ML-mallit automaattisesti paremman suorituskyvyn saavuttamiseksi kohdearkkitehtuurin perusteella ja irrottaa mallin alkuperäisestä viitekehyksestä, jolloin voit käyttää sitä kevyessä suoritustilassa.

Katso seuraava muistikirja esimerkki PyTorch Resnet18 -mallin kääntämisestä Neolla.

Rakenna käyttöönottopaketti sisällyttämällä siihen AWS IoT Greengrass -komponentti

Edge Managerin avulla voit hallita, suojata, ottaa käyttöön ja valvoa malleja useissa reunalaitteissa. Seuraavassa muistikirja, voit nähdä lisätietoja minimalistisen reunalaitteiden rakentamisesta ja suorittaa joitain kokeiluja tällä ominaisuudella.

Kun olet määrittänyt kaluston ja kääntänyt mallin, sinun on suoritettava Edge Manager -pakkaustyö, joka valmistelee mallin käyttöönotettavaksi kalustossa. Voit aloittaa pakkaustyön käyttämällä Boto3 SDK:ta. Parametreissamme käytämme optimoitua mallia ja mallin metatietoja. Lisäämällä seuraavat parametrit OutputConfig, työ valmistelee myös AWS IoT Greengrass V2 -komponentin mallilla:

  • PresetDeploymentType
  • PresetDeploymentConfig

Katso seuraava koodi:

import boto3
import time

SageMaker_client = boto3.client('SageMaker')

SageMaker_client.create_edge_packaging_job(
    EdgePackagingJobName="mlops-edge-packaging-{}".format(int(time.time()*1000)),
    CompilationJobName=compilation_job_name,
    ModelName="PytorchMLOpsEdgeModel",
    ModelVersion="1.0.0",
    RoleArn=role,
    OutputConfig={
        'S3OutputLocation': 's3://{}/model/'.format(bucket_name),
        "PresetDeploymentType": "GreengrassV2Component",
        "PresetDeploymentConfig": json.dumps(
            {"ComponentName": component_name, "ComponentVersion": component_version}
        ),
    }
)

Ota käyttöön ML-malleja reunassa mittakaavassa

Nyt on aika ottaa malli käyttöön reunalaitteisiin. Ensinnäkin meidän on varmistettava, että meillä on tarvittava AWS-henkilöllisyyden ja käyttöoikeuksien hallinta (MINÄ OLEN) Oikeudet tarjota IoT-laitteitamme ja ottaa käyttöön komponentteja siihen. Tarvitsemme kaksi peruselementtiä aloittaaksemme laitteiden liittämisen IoT-alustallemme:

  • IAM-politiikka – Tämä käytäntö mahdollistaa tällaisten laitteiden automaattisen hallinnan, jotka on liitetty käyttäjien tai käyttäjien hallinnan suorittavaan rooliin. Sillä pitäisi olla IoT-kirjoitusoikeudet IoT-asian ja -ryhmän luomiseen sekä tarvittavien käytäntöjen liittämiseen laitteeseen. Lisätietoja on kohdassa Minimi IAM-käytäntö asentajalle resurssien hallintaan.
  • IAM-rooli – tämä rooli liittyy luomiimme IoT-asioihin ja -ryhmiin. Voit luoda tämän roolin valmisteluvaiheessa perusoikeuksilla, mutta siitä puuttuu ominaisuuksia, kuten pääsy Amazon S3:een tai AWS-avainhallintapalvelu (AWS KMS), joita saatetaan tarvita myöhemmin. Voit luoda tämän roolin etukäteen ja käyttää sitä uudelleen, kun annamme laitteen käyttöön. Lisätietoja on kohdassa Valtuuta ydinlaitteet olemaan vuorovaikutuksessa AWS:n kanssa.

AWS IoT Greengrass -asennus ja provisiointi

Kun meillä on IAM-käytäntö ja rooli, olemme valmiita asenna AWS IoT Greengrass Core -ohjelmisto, jossa on automaattinen resurssien hallinta. Vaikka IoT-resurssit on mahdollista valmistaa manuaalisten vaiheiden mukaisesti, on olemassa kätevä menettely näiden resurssien automaattiseen käyttöön ottamiseen AWS IoT Greengrass v2 -ytimen asennuksen aikana. Tämä on suositeltu vaihtoehto uusien laitteiden nopeaan liittämiseen alustalle. sitä paitsi default-jdk, muut paketit on asennettava, kuten curl, unzipja python3.

Kun käytämme laitettamme, IoT-asianimen on oltava täsmälleen sama kuin Edge Managerissa määritetyn reunalaitteen, muuten tietoja ei kaapata kohde-S3-säilöyn.

Asennusohjelma voi luoda AWS IoT Greengrass -roolin ja aliaksen asennuksen aikana, jos niitä ei ole. Ne luodaan kuitenkin minimaalisilla käyttöoikeuksilla, ja ne vaativat lisää käytäntöjä manuaalisesti voidakseen olla vuorovaikutuksessa muiden palvelujen, kuten Amazon S3:n, kanssa. Suosittelemme luomaan nämä IAM-resurssit etukäteen, kuten aiemmin on esitetty, ja käytät niitä sitten uudelleen, kun liität uusia laitteita tilille.

Malli ja päätelmäkomponenttien pakkaus

Kun koodimme on kehitetty, voimme ottaa käyttöön sekä koodin (päätelmiä varten) että ML-mallejamme komponentteina laitteihimme.

Kun ML-malli on koulutettu SageMakerissa, voit optimoida mallin Neolla käyttämällä Sagemaker-käännöstyötä. Tuloksena saadut käännetyt mallin artefaktit voidaan sitten pakata GreenGrass V2 -komponenttiin Edge Manager -pakkausohjelman avulla. Sitten se voidaan rekisteröidä mukautetuksi komponentiksi Omat komponentit -osio AWS IoT Greengrass -konsolissa. Tämä komponentti sisältää jo tarvittavat elinkaarikomennot mallin artefaktin lataamiseksi ja purkamiseksi laitteellamme, jotta päättelykoodi voi ladata sen ja lähettää sen kautta otetut kuvat.

Mitä tulee päättelykoodiin, meidän on luotava komponentti käyttämällä konsolia tai AWS-komentoriviliitäntä (AWS CLI). Ensin pakkaamme lähdepäätelmäkoodimme ja tarvittavat riippuvuudet Amazon S3:een. Kun olemme lähettäneet koodin, voimme luoda komponenttimme reseptillä .yaml- tai JSON-muodossa seuraavan esimerkin mukaisesti:

---
RecipeFormatVersion: 2020-01-25
ComponentName: dummymodel.inference
ComponentVersion: 0.0.1
ComponentDescription: Deploys inference code to a client
ComponentPublisher: Amazon Web Services, Inc.
ComponentDependencies:
  aws.GreenGrass.TokenExchangeService:
    VersionRequirement: '>=0.0.0'
    DependencyType: HARD
  dummymodel:
    VersionRequirement: '>=0.0.0'
    DependencyType: HARD
Manifests:
  - Platform:
      os: linux
      architecture: "*"
    Lifecycle:
      install: |-
        apt-get install python3-pip
        pip3 install numpy
        pip3 install sysv_ipc
        pip3 install boto3
        pip3 install grpcio-tools
        pip3 install grpcio
        pip3 install protobuf
        pip3 install SageMaker
        tar xf {artifacts:path}/sourcedir.tar.gz
      run:
        script: |-
          sleep 5 && sudo python3 {work:path}/inference.py 
    Artifacts:
      - URI: s3://BUCKET-NAME/path/to/inference/sourcedir.tar.gz
        Permission:
          Execute: OWNER

Tämä esimerkkiresepti näyttää komponenttimme nimen ja kuvauksen sekä tarvittavat edellytykset ennen run script -komentoamme. Resepti purkaa artefaktin laitteen työkansioympäristössä, ja käytämme tätä polkua päättelykoodimme suorittamiseen. AWS CLI -komento tällaisen reseptin luomiseksi on:

aws greengrassv2 create-component-version --region $REGION 
                                          --inline-recipe fileb://path/to/recipe.yaml

Voit nyt nähdä tämän komponentin luotuna AWS IoT Greengrass -konsolissa.

Varo, että komponentin versiolla on väliä, ja se on määritettävä reseptitiedostossa. Saman versionumeron toistaminen palauttaa virheilmoituksen.

Kun mallimme ja päättelykoodimme on määritetty komponenteiksi, olemme valmiita ottamaan ne käyttöön.

Ota sovellus ja malli käyttöön AWS IoT Greengrassin avulla

Edellisissä osissa opit paketoimaan päättelykoodin ja ML-mallit. Nyt voimme luoda käyttöönoton, jossa on useita komponentteja, jotka sisältävät sekä komponentteja että määrityksiä, joita tarvitaan päättelykoodimme vuorovaikutukseen reunalaitteen mallin kanssa.

Edge Manager -agentti on komponentti, joka tulee asentaa jokaiseen reunalaitteeseen, jotta kaikki Edge Manager -ominaisuudet otetaan käyttöön. SageMaker-konsolissa olemme määrittäneet laitekannan, johon on liitetty S3-ämpäri. Kaikki laivastoon liittyvät reunalaitteet tallentavat ja raportoivat tietonsa tälle S3-polulle. Agentti voidaan ottaa käyttöön komponenttina AWS IoT Greengrass v2:ssa, mikä helpottaa asentamista ja määrittämistä kuin jos agentti otettaisiin käyttöön itsenäisessä tilassa. Kun otamme agentin käyttöön komponenttina, meidän on määritettävä sen kokoonpanoparametrit, nimittäin laitekanta ja S3-polku.

Luomme käyttöönottokokoonpanon mukautetuilla komponenteilla juuri luomamme mallille ja koodille. Tämä asennus määritetään JSON-tiedostossa, jossa luetellaan käyttöönoton nimi ja kohde sekä käyttöönoton komponentit. Voimme lisätä ja päivittää kunkin komponentin konfigurointiparametreja, kuten Edge Manager -agentissa, jossa määritämme kaluston nimen ja kauhan.

{
    "targetArn": "targetArn",
    "deploymentName": "dummy-deployment",
    "components": {
        "aws.GreenGrass.Nucleus": {
            "version": "2.5.3",
        },
        "aws.GreenGrass.Cli": {
            "version": "2.5.3"
        },
        "aws.GreenGrass.SageMakerEdgeManager": {
            "version": 1.1.0,
            "configurationUpdate": {
                "merge": {
                "DeviceFleetName": "FLEET-NAME",
                "BucketName": "BUCKET-NAME-URI"
                }
            }
        },
        "dummymodel.inference": {
            "version": "0.0.1"
        },
        "dummymodel": {
            "version": "0.0.1"
        }
    }
}

On syytä huomata, että olemme lisänneet paitsi mallin, päättelykomponenttien ja agentin, myös AWS IoT Greengrass CLI:n ja ytimen komponentteina. Edellinen voi auttaa korjaamaan tiettyjä käyttöönottoja paikallisesti laitteella. Jälkimmäinen lisätään käyttöönottoon määrittämään tarvittavat verkkoyhteydet itse laitteelta tarvittaessa (esimerkiksi välityspalvelinasetukset) ja myös siinä tapauksessa, että haluat suorittaa AWS IoT Greengrass v2 -ytimen OTA-päivityksen. Ydintä ei oteta käyttöön, koska se on asennettu laitteeseen, ja vain kokoonpanopäivitys otetaan käyttöön (ellei päivitystä ole asennettu). Käyttöönottoa varten meidän on yksinkertaisesti suoritettava seuraava komento edellisen kokoonpanon päälle. Muista määrittää kohde-ARN, johon käyttöönottoa sovelletaan (IoT-asia tai IoT-ryhmä). Voimme ottaa nämä komponentit käyttöön myös konsolista.

aws greengrassv2 create-deployment --region $REGION 
                                   --cli-input-json file://path/to/deployment.json

Tarkkaile ja hallitse reunaan käytettyjä ML-malleja

Nyt kun sovelluksesi on käynnissä reuna-laitteissa, on aika oppia valvomaan kalustoa hallinnan, ylläpidon ja näkyvyyden parantamiseksi. Valitse SageMaker-konsolissa Edge Manager navigointiruudussa ja valitse sitten Edge-laitekannat. Valitse tästä laivastosi.

MLO:t reunalla Amazon SageMaker Edge Managerin ja AWS IoT Greengrass PlatoBlockchain Data Intelligencen avulla. Pystysuuntainen haku. Ai.

Laivaston tietosivulla näet metatietoja malleista, jotka ovat käynnissä kaikissa laivastosi laitteissa. Laivastoraportti luodaan 24 tunnin välein.

MLO:t reunalla Amazon SageMaker Edge Managerin ja AWS IoT Greengrass PlatoBlockchain Data Intelligencen avulla. Pystysuuntainen haku. Ai.

Kunkin laitteen Edge Agentin kautta keräämät tiedot lähetetään S3-säilöyn json lines -muodossa (JSONL). Kaapattujen tietojen lähetysprosessia hallitaan sovelluksen näkökulmasta. Voit siis vapaasti päättää, lähetätkö nämä tiedot, miten ja kuinka usein.

MLO:t reunalla Amazon SageMaker Edge Managerin ja AWS IoT Greengrass PlatoBlockchain Data Intelligencen avulla. Pystysuuntainen haku. Ai.

Voit käyttää näitä tietoja moniin asioihin, kuten tiedon siirtymisen ja mallin laadun seurantaan, uuden tietojoukon rakentamiseen, datajärven rikastamiseen ja moneen muuhun. Yksinkertainen esimerkki näiden tietojen hyödyntämisestä on, kun havaitset tietojen ajautumisen tavassa, jolla käyttäjät ovat vuorovaikutuksessa sovelluksesi kanssa, ja sinun on koulutettava uusi malli. Luo sitten uusi tietojoukko kaapatuista tiedoista ja kopioi se takaisin kehitystilille. Tämä voi automaattisesti käynnistää ympäristösi uuden ajon, joka rakentaa uuden mallin ja kohdistaa sen uudelleen koko kalustolle, jotta käyttöönotetun ratkaisun suorituskyky säilyy.

Yhteenveto

Tässä viestissä opit rakentamaan täydellisen ratkaisun, jossa yhdistyvät MLOps ja ML@Edge AWS-palveluiden avulla. Tällaisen ratkaisun rakentaminen ei ole triviaalia, mutta toivomme, että tässä postauksessa esitetty referenssiarkkitehtuuri voi inspiroida ja auttaa rakentamaan vankan arkkitehtuurin omiin liiketoimintahaasteisiin. Voit myös käyttää vain tämän arkkitehtuurin osia tai moduuleja, jotka integroituvat olemassa olevaan MLOps-ympäristöösi. Prototyyppiämällä yksi moduuli kerrallaan ja käyttämällä asianmukaisia ​​AWS-palveluita tämän haasteen jokaiseen osaan, voit oppia rakentamaan vankan MLOps-ympäristön ja yksinkertaistamaan lopullista arkkitehtuuria entisestään.

Seuraavana askeleena kehotamme sinua kokeilemaan Sagemaker Edge Manageria hallitaksesi ML:ääsi reunan elinkaaren aikana. Lisätietoja Edge Managerin toiminnasta on kohdassa Ota malleja käyttöön reunalla SageMaker Edge Managerin avulla .


Tietoja kirjoittajista

MLO:t reunalla Amazon SageMaker Edge Managerin ja AWS IoT Greengrass PlatoBlockchain Data Intelligencen avulla. Pystysuuntainen haku. Ai.Bruno Pistone on AWS:n AI/ML Specialist Solutions -arkkitehti Milanossa. Hän työskentelee kaikenkokoisten asiakkaiden kanssa auttaakseen heitä ymmärtämään syvällisesti teknisiä tarpeitaan ja suunnittelemaan tekoäly- ja koneoppimisratkaisuja, jotka hyödyntävät AWS-pilviä ja Amazon Machine Learning -pinoa parhaalla mahdollisella tavalla. Hänen asiantuntemuksensa ovat koneoppiminen päästä päähän, koneoppimisen teollistuminen ja MLOps. Hän nauttii ajan viettämisestä ystäviensä kanssa ja uusien paikkojen tutkimisesta sekä matkustamisesta uusiin kohteisiin.

MLO:t reunalla Amazon SageMaker Edge Managerin ja AWS IoT Greengrass PlatoBlockchain Data Intelligencen avulla. Pystysuuntainen haku. Ai.Matteo Calabrese on AI/ML Customer Delivery Architect AWS Professional Services -tiimissä. Hän työskentelee EMEA-alueen suurten yritysten kanssa AI/ML-projekteissa ja auttaa niitä ehdottamaan, suunnittelemaan, toimittamaan, mittaamaan ja optimoimaan ML-tuotannon työtaakkaa. Hänen pääosaamisensa ovat ML Operation (MLOps) ja Machine Learning at Edge. Hänen tavoitteenaan on lyhentää heidän aikaa arvostaa ja nopeuttaa liiketoiminnan tuloksia tarjoamalla AWS:n parhaita käytäntöjä. Vapaa-ajallaan hän harrastaa patikointia ja matkustamista.

MLO:t reunalla Amazon SageMaker Edge Managerin ja AWS IoT Greengrass PlatoBlockchain Data Intelligencen avulla. Pystysuuntainen haku. Ai.Raúl Díaz García on Sr Data Scientist AWS Professional Services -tiimissä. Hän työskentelee suurten yritysasiakkaiden kanssa EMEA-alueella, missä hän auttaa heitä mahdollistamaan Computer Visioniin ja koneoppimiseen liittyvät ratkaisut IoT-tilassa.

MLO:t reunalla Amazon SageMaker Edge Managerin ja AWS IoT Greengrass PlatoBlockchain Data Intelligencen avulla. Pystysuuntainen haku. Ai.Sokratis Kartakis on vanhempi koneoppimisen asiantuntijaratkaisuarkkitehti Amazon Web Servicesille. Sokratis keskittyy siihen, että yritysasiakkaat voivat teollistaa koneoppimisratkaisunsa hyödyntämällä AWS-palveluita ja muokkaamalla toimintamalliaan eli MLOps-perustaa sekä transformaatiosuunnitelmaa parhaita kehityskäytäntöjä hyödyntäen. Hän on käyttänyt yli 15 vuotta innovatiivisten ja kokonaisvaltaisten tuotantotason ML- ja Internet of Things (IoT) -ratkaisujen keksimiseen, suunnitteluun, johtamiseen ja toteuttamiseen energian, vähittäiskaupan, terveydenhuollon, rahoituksen/pankkitoiminnan, moottoriurheilun jne. aloilla. Sokratis viettää vapaa-aikaa perheen ja ystävien kanssa tai ajaa moottoripyörällä.

MLO:t reunalla Amazon SageMaker Edge Managerin ja AWS IoT Greengrass PlatoBlockchain Data Intelligencen avulla. Pystysuuntainen haku. Ai.Samir Araújo on AI / ML Solutions Architect AWS: llä. Hän auttaa asiakkaita luomaan AI / ML-ratkaisuja, jotka ratkaisevat heidän liiketoimintahaasteensa AWS: n avulla. Hän on työskennellyt useissa tekoäly- / ML-hankkeissa, jotka liittyvät tietokonenäköön, luonnollisen kielen käsittelyyn, ennustamiseen, ML: n reunaan ja muuhun. Hän haluaa leikkiä laitteisto- ja automaatioprojekteilla vapaa-ajallaan, ja hän on erityisen kiinnostunut robotiikasta.

Aikaleima:

Lisää aiheesta AWS-koneoppiminen