Rakenna ennakoiva ylläpitoratkaisu Amazon Kinesiksen, AWS Gluen ja Amazon SageMaker PlatoBlockchain Data Intelligencen avulla. Pystysuuntainen haku. Ai.

Rakenna ennakoiva ylläpitoratkaisu Amazon Kinesiksen, AWS Gluen ja Amazon SageMakerin avulla

Organisaatiot rakentavat ja käyttävät yhä enemmän koneoppimiseen (ML) perustuvia ratkaisuja erilaisiin käyttötapauksiin ja ongelmiin, mukaan lukien koneenosien ennakoiva huolto, asiakkaiden mieltymyksiin perustuvat tuotesuositukset, luottoprofilointi, sisällön valvonta, petosten havaitseminen ja paljon muuta. Monissa näistä skenaarioista näiden ML-pohjaisten ratkaisujen tehokkuutta ja hyötyjä voidaan parantaa entisestään, kun ne voivat käsitellä datatapahtumia ja saada niistä oivalluksia lähes reaaliajassa.

Vaikka lähes reaaliaikaisten ML-pohjaisten ratkaisujen liiketoiminta-arvo ja edut ovat vakiintuneet, arkkitehtuuri, jota tarvitaan näiden ratkaisujen toteuttamiseen mittakaavassa optimaalisella luotettavuudella ja suorituskyvyllä, on monimutkainen. Tässä viestissä kerrotaan, kuinka voit yhdistää Amazon kinesis, AWS-liimaja Amazon Sage Maker rakentaa lähes reaaliaikainen ominaisuussuunnittelu- ja päättelyratkaisu ennakoivaa ylläpitoa varten.

Käytä tapauskatsausta

Keskitymme ennakoivaan huoltokäyttöön, jossa kentällä käyttöönotetut anturit (kuten teollisuuslaitteet tai verkkolaitteet) on vaihdettava tai korjattava ennen kuin ne vioittuvat ja aiheuttavat seisokkeja. Seisokit voivat olla yrityksille kalliita ja heikentää asiakaskokemusta. ML-mallilla toimiva ennakoiva huolto voi myös auttaa lisäämään säännöllisiä aikataulupohjaisia ​​huoltosyklejä ilmoittamalla milloin hyvässä kunnossa olevaa koneen osaa ei kannata vaihtaa, jolloin vältytään turhilta kustannuksilta.

Tässä viestissä keskitymme koneoppimisen soveltamiseen synteettiseen tietoaineistoon, joka sisältää konevikoja, jotka johtuvat esimerkiksi ilman lämpötilasta, prosessin lämpötilasta, pyörimisnopeudesta, vääntömomentista ja työkalun kulumisesta. Käytetty tietojoukko on peräisin osoitteesta UCI-tietovarasto.

Konevika koostuu viidestä riippumattomasta vikatilasta:

  • Työkalun kulumisvika (TWF)
  • Lämmönpoistovirhe (HDF)
  • Virtakatkos (PWF)
  • Over-strain Failure (OSF)
  • Random Failure (RNF)

Konevikatarra osoittaa, onko kone epäonnistunut tietyssä datapisteessä, jos jokin edellisistä vikatiloista on totta. Jos ainakin yksi vikatiloista on tosi, prosessi epäonnistuu ja koneen vikatunnisteen arvoksi on asetettu 1. ML-mallin tavoitteena on tunnistaa koneen viat oikein, jotta voidaan aloittaa ennakoiva huoltotoimenpide.

Ratkaisun yleiskatsaus

Ennakoivassa kunnossapidon käyttötapauksessa oletamme, että laiteanturit lähettävät erilaisia ​​mittauksia ja lukemia koneen osista. Ratkaisumme ottaa sitten siivun suoratoistodataa joka kerta (mikroerä) ja suorittaa käsittelyn ja ominaisuuksien suunnittelun ominaisuuksien luomiseksi. Luotuja ominaisuuksia käytetään sitten päätelmien luomiseen koulutetusta ja käyttöönotetusta ML-mallista lähes reaaliajassa. Luotuja päätelmiä voidaan edelleen käsitellä ja kuluttaa myöhemmissä sovelluksissa tarvittavien toimenpiteiden toteuttamiseksi ja ylläpitotoimien aloittamiseksi.

Seuraavassa kaaviossa näkyy kokonaisratkaisumme arkkitehtuuri.

Ratkaisu koostuu pääosin seuraavista osista, jotka selitetään yksityiskohtaisesti myöhemmin tässä viestissä:

  • Suoratoiston tietolähde ja käsittely - Käytämme Amazon Kinesis -tietovirrat kerätä suoratoistodataa kenttäantureilta mittakaavassa ja asettaa se saataville jatkokäsittelyä varten.
  • Lähes reaaliaikainen ominaisuussuunnittelu – Käytämme AWS Glue -suoratoistotöitä tietojen lukemiseen Kinesis-tietovirrasta ja tietojen käsittelyyn ja ominaisuuksien suunnitteluun ennen johdettujen ominaisuuksien tallentamista Amazonin yksinkertainen tallennuspalvelu (Amazon S3). Amazon S3 tarjoaa luotettavan ja kustannustehokkaan vaihtoehdon suurten tietomäärien tallentamiseen.
  • Mallin koulutus ja käyttöönotto – Käytämme UCI-tietovaraston ennakoivaa ylläpitotietojoukkoa AI4I XGBoost-algoritmiin perustuvan ML-mallin kouluttamiseen SageMakerin avulla. Otamme sitten käyttöön koulutetun mallin SageMakerin asynkroniseen päättelypäätepisteeseen.
  • Lähes reaaliaikainen ML-päätelmä – Kun ominaisuudet ovat saatavilla Amazon S3:ssa, meidän on luotava johtopäätökset käyttöönotetusta mallista lähes reaaliajassa. SageMakerin asynkroniset päättelypäätepisteet sopivat hyvin tähän vaatimukseen, koska ne tukevat suurempia hyötykuormakokoja (jopa 1 Gt) ja voivat tuottaa päätelmiä minuuteissa (enintään 15 minuutissa). Käytämme S3-tapahtumailmoituksia suorittaaksemme AWS Lambda toiminto kutsua SageMakerin asynkronisen päättelyn päätepisteen. SageMakerin asynkroniset päättelypäätepisteet hyväksyvät S3-sijainnit syötteenä, luovat päätelmiä käyttöönotetusta mallista ja kirjoittavat nämä päätelmät takaisin Amazon S3:een lähes reaaliajassa.

Tämän ratkaisun lähdekoodi sijaitsee osoitteessa GitHub. Ratkaisu on testattu ja sitä pitäisi käyttää us-east-1:ssä.

Käytämme AWS-pilven muodostuminen malli, otettu käyttöön AWS-palvelimeton sovellusmalli (AWS SAM) ja SageMaker-kannettavat ratkaisun käyttöönottamiseksi.

Edellytykset

Päästäksesi alkuun sinulla on oltava SAM CLI, Python 3ja PIP asennettu. Sinulla on myös oltava AWS-komentoriviliitäntä (AWS CLI) on määritetty oikein.

Ota ratkaisu käyttöön

Voit käyttää AWS CloudShell suorittaaksesi nämä vaiheet. CloudShell on selainpohjainen kuori, joka on valmiiksi todennettu konsolitunnuksillasi ja joka sisältää esiasennettuja yleisiä kehitys- ja käyttötyökaluja (kuten AWS SAM, AWS CLI ja Python). Siksi paikallista asennusta tai konfigurointia ei tarvita.

  • Aloitamme luomalla S3-ämpäri, johon tallennamme AWS Glue -suoratoistotyömme skriptin. Suorita seuraava komento päätteessäsi luodaksesi uuden ryhmän:
aws s3api create-bucket --bucket sample-script-bucket-$RANDOM --region us-east-1

  • Kirjoita muistiin luodun kauhan nimi.

ML-9132 Ratkaisu Arch

  • Seuraavaksi kloonaamme koodivaraston paikallisesti, joka sisältää CloudFormation-mallin pinon käyttöönottoa varten. Suorita seuraava komento terminaalissasi:
git clone https://github.com/aws-samples/amazon-sagemaker-predictive-maintenance

  • Siirry sam-template -hakemistoon:
cd amazon-sagemaker-predictive-maintenance/sam-template

ML-9132 git klooni repo

  • Suorita seuraava komento kopioidaksesi AWS Glue -työskripti (osoitteesta glue_streaming/app.py) luomaasi S3-säilöön:
aws s3 cp glue_streaming/app.py s3://sample-script-bucket-30232/glue_streaming/app.py

ML-9132 kopioi liimakirjoitus

  • Voit nyt jatkaa ratkaisun rakentamista ja käyttöönottoa CloudFormation-mallin kautta AWS SAMin kautta. Suorita seuraava komento:

ML-9132 SAM Build

sam deploy --guided

  • Anna käyttöönoton argumentit, kuten pinon nimi, ensisijainen AWS-alue (us-east-1), Ja GlueScriptsBucket.

Varmista, että annat saman S3-säiön, jonka loit aiemmin AWS Glue script S3 -säilölle (parametri GlueScriptsBucket seuraavassa kuvakaappauksessa).

ML-9132 SAM Deploy Param

Kun olet antanut vaaditut argumentit, AWS SAM aloittaa pinon käyttöönoton. Seuraava kuvakaappaus näyttää luodut resurssit.

ML-9132 SAM otettu käyttöön

Kun pino on otettu käyttöön onnistuneesti, sinun pitäisi nähdä seuraava viesti.

ML-9132 SAM CF käytössä

  • Avaa pino AWS CloudFormation -konsolissa (tätä viestiä varten nrt-streaming-inference), joka toimitettiin CloudFormation-mallin käyttöönoton yhteydessä.
  • On Esittelymateriaalit -välilehti, huomioi SageMaker-muistikirjan ilmentymän tunnus.
  1. ML-9132 SM-muistikirja luotu
  • Avaa tämä ilmentymä SageMaker-konsolissa.

ML-9132 image018

SageMaker-muistikirjainstanssissa on jo valmiiksi ladatut vaaditut muistikirjat.

Siirry muistikirjakansioon ja avaa muistikirjat ja seuraa ohjeita (Data_Pre-Processing.ipynb ja ModelTraining-Evaluation-and-Deployment.ipynb).

ML-9132 Open SM Notebooks

Suoratoiston tietolähde ja käsittely

Kinesis Data Streams on palvelimeton, skaalautuva ja kestävä reaaliaikainen datan suoratoistopalvelu, jonka avulla voit kerätä ja käsitellä suuria tietovirtoja reaaliajassa. Kinesis Data Streams mahdollistaa tietovirtojen kaappaamisen, käsittelyn ja tallentamisen useista eri lähteistä, kuten IT-infrastruktuurin lokitiedot, sovelluslokit, sosiaalinen media, markkinatietosyötteet, verkkonapsautustiedot, IoT-laitteet ja anturit ja paljon muuta. Voit valmistaa Kinesis-tietovirran on-demand-tilassa tai provisioidussa tilassa suorituskyvyn ja skaalausvaatimusten mukaan. Katso lisätietoja Tietovirran kapasiteettitilan valitseminen.

Käyttötapauksessamme oletamme, että erilaiset anturit lähettävät mittauksia, kuten lämpötilaa, pyörimisnopeutta, vääntömomenttia ja työkalun kulumista tietovirtaan. Kinesis Data Streams toimii suppilona tietovirtojen keräämiseen ja syöttämiseen.

Käytämme Amazon Kinesis Data Generator (KDG) myöhemmin tässä viestissä luodaksesi ja lähettääksesi tietoja Kinesis-tietovirtaan simuloiden antureiden tuottamaa tietoa. Datavirran sensori-data-virran tiedot syötetään ja käsitellään AWS Glue -suoratoistotyöllä, josta keskustelemme seuraavaksi.

Lähes reaaliaikainen ominaisuussuunnittelu

AWS Glue -suoratoistotyöt tarjoavat kätevän tavan käsitellä suoratoistodataa mittakaavassa ilman, että sinun tarvitsee hallita laskentaympäristöä. AWS Gluen avulla voit suorittaa purkamis-, muunnos- ja lataustoimintoja (ETL) suoratoistodatalle käyttämällä jatkuvasti käynnissä olevia töitä. AWS Glue -suoratoisto-ETL on rakennettu Apache Spark Structured Streaming -moottoriin, ja se voi vastaanottaa streameja Kinesis-, Apache Kafka- ja Amazon hallinnoi suoratoistoa Apache Kafkalle (Amazon MSK).

Suoratoisto-ETL-työ voi käyttää sekä sisäänrakennettuja AWS Glue -muunnoksia että muunnoksia, jotka ovat natiivia Apache Spark Structured Streamingille. Voit myös käyttää Spark ML ja MLLib kirjastot AWS-liimatöissä helpottaaksesi ominaisuuksien käsittelyä helposti saatavilla olevien apukirjastojen avulla.

Jos suoratoistodatalähteen skeema on ennalta määritetty, voit määrittää sen AWS-tietokatalogitaulukossa. Jos skeeman määritelmää ei voida määrittää etukäteen, voit ottaa skeeman tunnistuksen käyttöön suoratoiston ETL-työssä. Työ määrittää sitten automaattisesti skeeman saapuvista tiedoista. Lisäksi voit käyttää AWS Glue Schema -rekisteri mahdollistaa tietovirtakaavioiden keskitetyn etsimisen, hallinnan ja kehittämisen. Voit integroida Schema Registry -rekisterin edelleen Data Catalogiin ja käyttää valinnaisesti Schema Registry -järjestelmään tallennettuja skeemoja luodessasi tai päivittäessäsi AWS Glue -taulukoita tai -osioita Data Catalogissa.

Tätä viestiä varten luomme AWS Glue Data Catalog -taulukon (sensor-stream) käyttämällä Kinesis-tietovirtaamme lähteenä ja määrittämällä anturitietojemme skeema.

Luomme Data Catalog -taulukosta dynaamisen AWS Glue -tietokehyksen lukemaan Kinesiksen suoratoistodatan. Määrittelemme myös seuraavat vaihtoehdot:

  • 60 sekunnin ikkunakoko, jotta AWS-liimatyö lukee ja käsittelee tietoja 60 sekunnin ikkunoissa
  • Lähtöasento TRIM_HORIZON, salliaksesi Kinesis-tietovirran vanhimpien tietueiden lukemisen

Käytämme myös Spark MLlibiä StringIndexer ominaisuusmuuntaja koodaamaan merkkijonosaraketyypin tarraindekseiksi. Tämä muunnos on toteutettu Spark ML Pipelinesillä. Spark ML -putkistot tarjoavat yhtenäisen joukon korkean tason API-liittymiä ML-algoritmeille, mikä helpottaa useiden algoritmien yhdistämistä yhdeksi liukuhihnaksi tai työnkulkuun.

Käytämme foreachBatch API:ta kutsumaan processBatch-nimistä funktiota, joka puolestaan ​​käsittelee tämän datakehyksen viittaamat tiedot. Katso seuraava koodi:

# Read from Kinesis Data Stream
sourceStreamData = glueContext.create_data_frame.from_catalog(database = "sensordb", table_name = "sensor-stream", transformation_ctx = "sourceStreamData", additional_options = {"startingPosition": "TRIM_HORIZON"})
type_indexer = StringIndexer(inputCol="type", outputCol="type_enc", stringOrderType="alphabetAsc")
pipeline = Pipeline(stages=[type_indexer])
glueContext.forEachBatch(frame = sourceStreamData, batch_function = processBatch, options = {"windowSize": "60 seconds", "checkpointLocation": checkpoint_location})

Toiminto processBatch suorittaa määritetyt muunnokset ja osioi tiedot Amazon S3:ssa vuoden, kuukauden, päivän ja erätunnuksen perusteella.

Osiimme myös AWS Glue -osiot uudelleen yhdeksi osioksi, jotta Amazon S3:ssa ei olisi liikaa pieniä tiedostoja. Useiden pienten tiedostojen käyttö voi haitata lukusuorituskykyä, koska se lisää kunkin tiedoston etsimiseen, avaamiseen ja lukemiseen liittyviä kuluja. Lopuksi kirjoitamme päätelmien muodostavat ominaisuudet etuliitteeseen (ominaisuudet) S3-säihön sisällä. Katso seuraava koodi:

# Function that gets called to perform processing, feature engineering and writes to S3 for every micro batch of streaming data from Kinesis.
def processBatch(data_frame, batchId):
transformer = pipeline.fit(data_frame)
now = datetime.datetime.now()
year = now.year
month = now.month
day = now.day
hour = now.hour
minute = now.minute
if (data_frame.count() > 0):
data_frame = transformer.transform(data_frame)
data_frame = data_frame.drop("type")
data_frame = DynamicFrame.fromDF(data_frame, glueContext, "from_data_frame")
data_frame.printSchema()
# Write output features to S3
s3prefix = "features" + "/year=" + "{:0>4}".format(str(year)) + "/month=" + "{:0>2}".format(str(month)) + "/day=" + "{:0>2}".format(str(day)) + "/hour=" + "{:0>2}".format(str(hour)) + "/min=" + "{:0>2}".format(str(minute)) + "/batchid=" + str(batchId)
s3path = "s3://" + out_bucket_name + "/" + s3prefix + "/"
print("-------write start time------------")
print(str(datetime.datetime.now()))
data_frame = data_frame.toDF().repartition(1)
data_frame.write.mode("overwrite").option("header",False).csv(s3path)
print("-------write end time------------")
print(str(datetime.datetime.now()))

Mallikoulutus ja käyttöönotto

SageMaker on täysin hallittu ja integroitu ML-palvelu, jonka avulla datatieteilijät ja ML-insinöörit voivat nopeasti ja helposti rakentaa, kouluttaa ja ottaa käyttöön ML-malleja.

Data_Pre-Processing.ipynb-muistikirjassa, tuomme ensin AI4I Predictive Maintenance -tietojoukon UCI-tietovarastosta ja suoritamme tutkivan data-analyysin (EDA). Suoritamme myös ominaisuussuunnittelua tehdäksemme ominaisuuksistamme hyödyllisempiä mallin koulutuksessa.

Esimerkiksi tietojoukossa on ominaisuus nimeltä tyyppi, joka edustaa tuotteen laatutyyppiä L (matala), M (keskikokoinen) tai H (korkea). Koska tämä on kategorinen ominaisuus, meidän on koodattava se ennen mallimme harjoittamista. Käytämme Scikit-Learnin LabelEncoderia saavuttaaksemme tämän:

from sklearn.preprocessing import LabelEncoder
type_encoder = LabelEncoder()
type_encoder.fit(origdf['type'])
type_values = type_encoder.transform(origdf['type'])

Kun ominaisuudet on käsitelty ja kuratoidut juna- ja testitietojoukot on luotu, olemme valmiita kouluttamaan ML-mallin ennustamaan, epäonnistuiko kone järjestelmälukemien perusteella. Koulutamme XGBoost-mallin käyttämällä sisäänrakennettua SageMaker-algoritmia. XGBoost voi tarjota hyviä tuloksia monen tyyppisiin ML-ongelmiin, mukaan lukien luokittelu, vaikka harjoitusnäytteitä olisi rajoitetusti.

SageMaker koulutustyöt tarjoavat tehokkaan ja joustavan tavan kouluttaa ML-malleja SageMakerilla. SageMaker hallitsee taustalla olevaa laskentainfrastruktuuria ja tarjoaa useita vaihtoehtoja valita erilaisista mallikoulutusvaatimuksista käyttötapauksen mukaan.

xgb = sagemaker.estimator.Estimator(container,
role,
instance_count=1,
instance_type='ml.c4.4xlarge',
output_path=xgb_upload_location,
sagemaker_session=sagemaker_session)
xgb.set_hyperparameters(max_depth=5,
eta=0.2,
gamma=4,
min_child_weight=6,
subsample=0.8,
silent=0,
objective='binary:hinge',
num_round=100)

xgb.fit({'train': s3_train_channel, 'validation': s3_valid_channel})

Kun mallikoulutus on suoritettu ja mallin arviointi on tyydyttävä liiketoiminnan vaatimusten perusteella, voimme aloittaa mallin käyttöönoton. Luomme ensin päätepisteen kokoonpanon AsyncInferenceConfig-objektivaihtoehdolla ja käyttämällä aiemmin koulutettua mallia:

endpoint_config_name = resource_name.format("EndpointConfig")
create_endpoint_config_response = sm_client.create_endpoint_config(
EndpointConfigName=endpoint_config_name,
ProductionVariants=[
{
"VariantName": "variant1",
"ModelName": model_name,
"InstanceType": "ml.m5.xlarge",
"InitialInstanceCount": 1,
}
],
AsyncInferenceConfig={
"OutputConfig": {
"S3OutputPath": f"s3://{bucket}/{prefix}/output",
#Specify Amazon SNS topics
"NotificationConfig": {
"SuccessTopic": "arn:aws:sns:<region>:<account-id>:<success-sns-topic>",
"ErrorTopic": "arn:aws:sns:<region>:<account-id>:<error-sns-topic>",
}},
"ClientConfig": {"MaxConcurrentInvocationsPerInstance": 4},
},)

Luomme sitten SageMakerin asynkronisen päättelypäätepisteen käyttämällä luomaamme päätepistekokoonpanoa. Kun se on valmis, voimme alkaa kutsua päätepistettä luomaan päätelmiä asynkronisesti.

endpoint_name = resource_name.format("Endpoint")
create_endpoint_response = sm_client.create_endpoint(
EndpointName=endpoint_name, EndpointConfigName=endpoint_config_name)

Lähes reaaliaikainen johtopäätös

SageMaker asynkroninen päättely päätepisteet tarjoavat mahdollisuuden asettaa saapuvat päättelypyynnöt jonoon ja käsitellä niitä asynkronisesti lähes reaaliajassa. Tämä on ihanteellinen sovelluksille, joilla on päättelypyyntöjä suuremmilla hyötykuormakooilla (jopa 1 Gt), jotka saattavat vaatia pidempiä käsittelyaikoja (jopa 15 minuuttia) ja joilla on lähes reaaliaikaiset latenssivaatimukset. Asynkronisen päättelyn avulla voit myös säästää kustannuksissa skaalaamalla ilmentymien lukumäärän automaattisesti nollaan, kun käsiteltäviä pyyntöjä ei ole, joten maksat vain, kun päätepiste käsittelee pyyntöjä.

Voit luoda asynkronisen SageMaker-päätepäätepisteen samalla tavalla kuin luot reaaliaikaisen päättelypäätepisteen ja määrittää lisäksi AsyncInferenceConfig -objektia luodessasi päätepisteen määritykset CreateEndpointConfig API:n EndpointConfig-kentän avulla. Seuraava kaavio näyttää päättelytyön kulun ja kuinka asynkroninen päättelypäätepiste luo päätelmän.

ML-9132 SageMaker Asych Arch

Asynkronisen päätelmän päätepisteen kutsumiseksi pyynnön hyötykuorma tulee tallentaa Amazon S3:een ja viittaus tähän hyötykuormaan on annettava osana InvokeEndpointAsync-pyyntöä. Kutsuttaessa SageMaker asettaa käsittelypyynnön jonoon ja palauttaa tunnisteen ja tulosteen vastauksena. Käsittelyn jälkeen SageMaker sijoittaa tuloksen Amazon S3 -sijaintiin. Voit halutessasi vastaanottaa onnistumis- tai virheilmoituksia Amazonin yksinkertainen ilmoituspalvelu (Amazon SNS).

Testaa päästä päähän -ratkaisua

Testaa ratkaisu suorittamalla seuraavat vaiheet:

  • Avaa AWS CloudFormation -konsolissa aiemmin luomasi pino (nrt-streaming-inference).
  • On Lähdöt -välilehti, kopioi S3-ämpäri nimi (EventsBucket).

Tämä on S3-ämpäri, johon AWS Glue -suoratoistotyömme kirjoittaa ominaisuuksia Kinesis-datavirran lukemisen ja käsittelyn jälkeen.

ML-9132 S3 tapahtumakauha

Seuraavaksi määritimme tapahtumailmoitukset tälle S3-säilölle.

  • Navigoi Amazon S3 -konsolissa ämpäriin EventsBucket.
  • On Kiinteistöt välilehti, Tapahtuma-ilmoitukset osiossa, valitse Luo tapahtumailmoitus.

ML-9132 S3 -tapahtumaryhmän ominaisuudet

ML-9132 S3 -tapahtumasäilön ilmoitus

  • varten Tapahtuman nimi, tulla sisään invoke-endpoint-lambda.
  • varten Etuliite, tulla sisään features/.
  • varten jälkiliite, tulla sisään .csv.
  • varten Tapahtumatyypitvalitse Kaikki objektit luovat tapahtumia.

ML-9132 S3 tapahtumasäilön ilmoituskonfiguraatio
ML-9132 S3 tapahtumasäilön ilmoituskonfiguraatio

  • varten määränpäävalitse Lambda toiminto.
  • varten Lambda toimintoja valitse toiminto invoke-endpoint-asynch.
  • Valita Tallenna muutokset.

ML-9132 S3-tapahtumasäilön ilmoitusasetukset lambda

  • Avaa työ AWS Glue -konsolissa GlueStreaming-Kinesis-S3.
  • Valita Suorita työ.

ML-9132 Suorita liimatyö

Seuraavaksi käytämme Kinesis Data Generatoria (KDG) simuloimaan antureita, jotka lähettävät tietoa Kinesis-tietovirtaamme. Jos tämä on ensimmäinen kerta, kun käytät KDG:tä, katso Yleiskatsaus alkuasetusta varten. KDG tarjoaa CloudFormation-mallin, jonka avulla voit luoda käyttäjän ja määrittää juuri tarpeeksi käyttöoikeuksia KDG:n käyttämiseen tapahtumien lähettämiseen Kinesisille. Suorita CloudFormation -malli AWS-tilillä, jota käytät tämän viestin ratkaisun rakentamiseen. Kun KDG on määritetty, kirjaudu sisään ja käytä KDG:tä lähettääksesi testitapahtumat Kinesis-tietovirtaamme.

  • Käytä aluetta, jossa loit Kinesis-tietovirran (us-east-1).
  • Valitse tietovirta avattavasta valikosta sensor-data-stream.
  • In Ennätykset sekunnissa , valitse Vakio ja kirjoita 100.
  • unselect Pakkaa tietueet.
  • varten Tallennusmalli, käytä seuraavaa mallia:
{
"air_temperature": {{random.number({"min":295,"max":305, "precision":0.01})}},
"process_temperature": {{random.number({"min":305,"max":315, "precision":0.01})}},
"rotational_speed": {{random.number({"min":1150,"max":2900})}},
"torque": {{random.number({"min":3,"max":80, "precision":0.01})}},
"tool_wear": {{random.number({"min":0,"max":250})}},
"type": "{{random.arrayElement(["L","M","H"])}}"
}

  • Napauta Lähetä tietoja aloittaaksesi tietojen lähettämisen Kinesis-tietovirtaan.

ML-9132 Kineses Data Gen

AWS Glue -suoratoistotyö lukee ja poimii mikrotiedon (jotka edustavat anturin lukemia) Kinesis-tietovirrasta annetun ikkunan koon perusteella. Tämän jälkeen suoratoistotyö käsittelee ja suorittaa ominaisuussuunnittelun tälle mikroerälle ennen osiointia ja kirjoittamista S3-säihön etuliitteen ominaisuuksiin.

Kun AWS Glue -suoratoistotyön luomat uudet ominaisuudet kirjoitetaan S3-ämpäriin, Lambda-toiminto (invoke-endpoint-asynch). Asynkronisen päättelyn päätepiste asettaa jonoon asynkronisen kutsun pyynnön. Kun käsittely on valmis, SageMaker tallentaa johtopäätöstulokset Amazon S3 -sijaintiin (S3OutputPath), joka määritettiin asynkronisen päättelyn päätepisteen määrityksen aikana.

Meidän käyttötapauksessamme päättelytulokset osoittavat, onko koneen osa todennäköisesti viallinen vai ei, anturin lukemien perusteella.

ML-9132 Mallin päätelmät

SageMaker lähettää myös onnistumis- tai virheilmoituksen Amazon SNS:n kanssa. Jos esimerkiksi määrität sähköpostitilaus onnistumisen ja virheen SNS-aiheista (määritetty asynkronisessa SageMaker-päätepisteen kokoonpanossa) sähköposti voidaan lähettää aina, kun päättelypyyntö käsitellään. Seuraava kuvakaappaus näyttää esimerkkisähköpostin SNS-menestysaiheesta.

ML-9132 SNS sähköpostitilaus

Tosimaailman sovelluksissa voit integroida SNS-ilmoitukset muihin palveluihin, kuten Amazonin yksinkertainen jonopalvelu (Amazon SQS) ja Lambda luotujen päätelmien lisäkäsittelyyn tai integrointiin muihin loppupään sovelluksiin tarpeidesi mukaan. Esimerkiksi ennakoivan ylläpidon käyttötapauksessamme voit kutsua SNS-ilmoitukseen perustuvan Lambda-toiminnon lukeaksesi Amazon S3:sta luodun päätelmän, käsitelläksesi sitä edelleen (kuten yhdistämisen tai suodatuksen) ja käynnistääksesi työnkulkuja, kuten työmääräysten lähettämisen laitteiden korjaus teknikoille.

Puhdistaa

Kun olet lopettanut pinon testauksen, poista resurssit (erityisesti Kinesis-datavirta, liimasuoratoistotyö ja SNS-aiheet) odottamattomien veloitusten välttämiseksi.

Suorita seuraava koodi poistaaksesi pinon:

sam delete nrt-streaming-inference

Poista myös resurssit, kuten SageMaker-päätepisteet, noudattamalla ModelTraining-Evaluation-and-Deployment-muistikirjan puhdistusosiota.

Yhteenveto

Tässä viestissä käytimme ennakoivaa ylläpidon käyttötapausta osoittaaksemme, kuinka käyttää erilaisia ​​palveluita, kuten Kinesis, AWS Glue ja SageMaker, rakentamaan lähes reaaliaikaista päättelyputkea. Kehotamme sinua kokeilemaan tätä ratkaisua ja kertomaan meille mielipiteesi.

Jos sinulla on kysyttävää, jaa ne kommenteissa.


Tietoja kirjoittajista

Rakenna ennakoiva ylläpitoratkaisu Amazon Kinesiksen, AWS Gluen ja Amazon SageMaker PlatoBlockchain Data Intelligencen avulla. Pystysuuntainen haku. Ai. Rahul Sharma on AWS Data Labin ratkaisuarkkitehti, joka auttaa AWS:n asiakkaita suunnittelemaan ja rakentamaan AI/ML-ratkaisuja. Ennen AWS:ään liittymistään Rahul on työskennellyt useita vuosia rahoitus- ja vakuutusalalla auttaen asiakkaita rakentamaan data- ja analyyttisiä alustoja.

Rakenna ennakoiva ylläpitoratkaisu Amazon Kinesiksen, AWS Gluen ja Amazon SageMaker PlatoBlockchain Data Intelligencen avulla. Pystysuuntainen haku. Ai.Pat Reilly on arkkitehti AWS Data Labissa, jossa hän auttaa asiakkaita suunnittelemaan ja rakentamaan datatyökuormia tukemaan liiketoimintaansa. Ennen AWS:ää Pat konsultoi AWS-kumppania rakentaen AWS-datakuormia useilla eri aloilla.

Aikaleima:

Lisää aiheesta AWS-koneoppiminen