Opdag uregelmæssigheder i produktionsdata ved hjælp af Amazon SageMaker Canvas | Amazon Web Services

Opdag uregelmæssigheder i produktionsdata ved hjælp af Amazon SageMaker Canvas | Amazon Web Services

Med brug af cloud computing, big data og machine learning (ML) værktøjer som Amazonas Athena or Amazon SageMaker er blevet tilgængelige og anvendelige af alle uden den store indsats i oprettelse og vedligeholdelse. Industrielle virksomheder ser i stigende grad på dataanalyse og datadrevet beslutningstagning for at øge ressourceeffektiviteten på tværs af hele deres portefølje, fra drift til udførelse af forudsigelig vedligeholdelse eller planlægning.

På grund af hastigheden af ​​forandringer inden for IT, står kunder i traditionelle industrier over for et dilemma med kompetencer. På den ene side har analytikere og domæneeksperter et meget dybt kendskab til de pågældende data og deres fortolkning, men mangler ofte eksponeringen for datavidenskabsværktøjer og programmeringssprog på højt niveau som Python. På den anden side mangler datavidenskabseksperter ofte erfaringen til at fortolke maskindataindholdet og filtrere det efter, hvad der er relevant. Dette dilemma hæmmer skabelsen af ​​effektive modeller, der bruger data til at generere forretningsrelevant indsigt.

Amazon SageMaker lærred løser dette dilemma ved at give domæneeksperter en kodefri grænseflade til at skabe kraftfulde analyse- og ML-modeller, såsom prognoser, klassifikations- eller regressionsmodeller. Det giver dig også mulighed for at implementere og dele disse modeller med ML- og MLOps-specialister efter oprettelsen.

I dette indlæg viser vi dig, hvordan du bruger SageMaker Canvas til at kurere og vælge de rigtige funktioner i dine data og derefter træne en forudsigelsesmodel til registrering af anomalier ved at bruge den kodefri funktionalitet fra SageMaker Canvas til modeljustering.

Anomalidetektion til fremstillingsindustrien

I skrivende stund fokuserer SageMaker Canvas på typiske business use cases, såsom prognoser, regression og klassificering. Til dette indlæg demonstrerer vi, hvordan disse egenskaber også kan hjælpe med at opdage komplekse unormale datapunkter. Denne use case er relevant for f.eks. at lokalisere fejlfunktioner eller usædvanlige betjeninger af industrimaskiner.

Detektion af anomalier er vigtig i industridomænet, fordi maskiner (fra tog til turbiner) normalt er meget pålidelige, med perioder mellem fejl, der strækker sig over år. De fleste data fra disse maskiner, såsom temperatursensoraflæsninger eller statusmeddelelser, beskriver den normale drift og har begrænset værdi for beslutningstagning. Ingeniører leder efter unormale data, når de undersøger grundlæggende årsager til en fejl eller som advarselsindikatorer for fremtidige fejl, og præstationsledere undersøger unormale data for at identificere potentielle forbedringer. Derfor er det typiske første skridt i at bevæge sig hen imod datadrevet beslutningstagning afhængig af at finde de relevante (unormale) data.

I dette indlæg bruger vi SageMaker Canvas til at kurere og vælge de rigtige funktioner i data, og derefter træne en forudsigelsesmodel til anomalidetektion ved at bruge SageMaker Canvas no-code funktionalitet til modeljustering. Derefter implementerer vi modellen som et SageMaker-slutpunkt.

Løsningsoversigt

Til vores anvendelsestilfælde til registrering af uregelmæssigheder træner vi en forudsigelsesmodel til at forudsige en karakteristisk egenskab for den normale drift af en maskine, såsom motortemperaturen angivet i en bil, ud fra at påvirke funktioner, såsom hastigheden og det seneste drejningsmoment anvendt i bilen . For anomalidetektion på en ny prøve af målinger sammenligner vi modelforudsigelserne for det karakteristiske træk med de leverede observationer.

For eksempel med bilmotoren opnår en domæneekspert målinger af den normale motortemperatur, nyligt motordrejningsmoment, omgivende temperatur og andre potentielle indflydelsesfaktorer. Disse giver dig mulighed for at træne en model til at forudsige temperaturen ud fra de andre funktioner. Så kan vi bruge modellen til at forudsige motortemperaturen med jævne mellemrum. Når den forudsagte temperatur for disse data svarer til den observerede temperatur i disse data, fungerer motoren normalt; en uoverensstemmelse vil pege på en anomali, såsom at kølesystemet svigter eller en defekt i motoren.

Følgende diagram illustrerer løsningsarkitekturen.

Oversigt over processen: En model oprettes i SageMaker Canvas, implementeres og tilgås derefter fra en AWS Lambda Funcino.

Løsningen består af fire hovedtrin:

  1. Domæneeksperten skaber den indledende model, inklusive dataanalyse og funktionskuration ved hjælp af SageMaker Canvas.
  2. Domæneeksperten deler modellen via Amazon SageMaker Model Registry eller implementerer det direkte som et slutpunkt i realtid.
  3. En MLOps-ekspert opretter inferensinfrastrukturen og koden og oversætter modeloutputtet fra en forudsigelse til en anomaliindikator. Denne kode kører typisk inde i en AWS Lambda funktion.
  4. Når en applikation kræver en anomali-detektion, kalder den Lambda-funktionen, som bruger modellen til slutning og giver svaret (uanset om det er en anomali eller ej).

Forudsætninger

For at følge med i dette indlæg skal du opfylde følgende forudsætninger:

Opret modellen ved hjælp af SageMaker

Modeloprettelsesprocessen følger standardtrinene for at skabe en regressionsmodel i SageMaker Canvas. For mere information, se Kom godt i gang med at bruge Amazon SageMaker Canvas.

Først indlæser domæneeksperten relevante data i SageMaker Canvas, såsom en tidsserie af målinger. Til dette indlæg bruger vi en CSV-fil, der indeholder de (syntetisk genererede) målinger af en elektrisk motor. For detaljer henvises til Importer data til Canvas. De anvendte eksempeldata er tilgængelige for download som en CSV.

Et billede, der viser de første linjer i csv. Derudover vises et histogram og benchmark-metrics for en hurtig forhåndsvisningsmodel.

Udstyr dataene med SageMaker Canvas

Efter at dataene er indlæst, kan domæneeksperten bruge SageMaker Canvas til at kurere de data, der bruges i den endelige model. Til dette udvælger eksperten de kolonner, der indeholder karakteristiske mål for det pågældende problem. Mere præcist udvælger eksperten kolonner, der er relateret til hinanden, for eksempel ved en fysisk sammenhæng, såsom en tryk-temperaturkurve, og hvor en ændring i denne sammenhæng er en relevant anomali for deres anvendelsestilfælde. Anomalidetektionsmodellen vil lære det normale forhold mellem de valgte kolonner og indikere, når data ikke er i overensstemmelse med det, såsom en unormalt høj motortemperatur givet den aktuelle belastning på motoren.

I praksis skal domæneeksperten vælge et sæt egnede inputkolonner og en målkolonne. Indgangene er typisk samlingen af ​​mængder (numeriske eller kategoriske), der bestemmer en maskines adfærd, fra behovsindstillinger til belastning, hastighed eller omgivelsestemperatur. Outputtet er typisk en numerisk størrelse, der angiver ydeevnen af ​​maskinens drift, såsom en temperatur, der måler energitab eller en anden ydeevnemåling, der ændrer sig, når maskinen kører under suboptimale forhold.

For at illustrere konceptet med, hvilke mængder der skal vælges til input og output, lad os overveje et par eksempler:

  • For roterende udstyr, såsom den model, vi bygger i dette indlæg, er typiske input rotationshastigheden, drejningsmomentet (strøm og historie) og omgivende temperatur, og målene er de resulterende leje- eller motortemperaturer, der indikerer gode driftsforhold for rotationerne
  • For en vindmølle er typiske input den aktuelle og nyere historie for vindhastighed og rotorbladsindstillinger, og målmængden er den producerede effekt eller rotationshastighed
  • For en kemisk proces er typiske input procentdelen af ​​forskellige ingredienser og den omgivende temperatur, og målene er den producerede varme eller viskositeten af ​​slutproduktet
  • For bevægeligt udstyr såsom skydedøre, er typiske input strømtilførslen til motorerne, og målværdien er hastigheden eller færdiggørelsestiden for bevægelsen
  • For et HVAC-system er typiske input den opnåede temperaturforskel og belastningsindstillinger, og målmængden er det målte energiforbrug

I sidste ende vil de rigtige input og mål for et givet udstyr afhænge af brugssagen og den unormale adfærd, der skal detekteres, og er bedst kendt af en domæneekspert, der er fortrolig med det specifikke datasæts forviklinger.

I de fleste tilfælde betyder valg af passende input- og målmængder kun at vælge de rigtige kolonner og markere målkolonnen (for dette eksempel, bearing_temperature). En domæneekspert kan dog også bruge de kodefri funktioner i SageMaker Canvas til at transformere kolonner og forfine eller aggregere dataene. For eksempel kan du udtrække eller filtrere bestemte datoer eller tidsstempler fra de data, der ikke er relevante. SageMaker Canvas understøtter denne proces, der viser statistik over de valgte mængder, så du kan forstå, om en mængde har outliers og spredning, der kan påvirke modellens resultater.

Træn, tun og evaluer modellen

Efter at domæneeksperten har valgt passende kolonner i datasættet, kan de træne modellen til at lære forholdet mellem input og output. Mere præcist vil modellen lære at forudsige den valgte målværdi fra inputs.

Normalt kan du bruge SageMaker Canvas Forhåndsvisning af model mulighed. Dette giver en hurtig indikation af den modelkvalitet, du kan forvente, og giver dig mulighed for at undersøge, hvilken effekt forskellige input har på output-metrikken. For eksempel, i det følgende skærmbillede, er modellen mest påvirket af motor_speed , ambient_temperature målinger ved forudsigelse bearing_temperature. Dette er fornuftigt, fordi disse temperaturer er tæt beslægtede. Samtidig vil yderligere friktion eller andre midler til energitab sandsynligvis påvirke dette.

For modelkvaliteten er modellens RMSE en indikator for, hvor godt modellen var i stand til at lære den normale adfærd i træningsdataene og reproducere relationerne mellem input- og outputmålene. For eksempel skal modellen i den følgende model være i stand til at forudsige det rigtige motor_bearing temperatur inden for 3.67 grader Celsius, så vi kan betragte en afvigelse af den reelle temperatur fra en modelforudsigelse, der er større end for eksempel 7.4 grader som en anomali. Den reelle tærskel, som du vil bruge, vil dog afhænge af den følsomhed, der kræves i implementeringsscenariet.

En graf, der viser den faktiske og forudsagte motorhastighed. Forholdet er lineært med noget støj.

Endelig, efter at modelevalueringen og -justeringen er afsluttet, kan du starte den komplette modeltræning, der vil skabe den model, der skal bruges til slutninger.

Implementer modellen

Selvom SageMaker Canvas kan bruge en model til slutninger, kræver produktiv implementering til registrering af anomalier, at du implementerer modellen uden for SageMaker Canvas. Mere præcist skal vi implementere modellen som et slutpunkt.

I dette indlæg og for nemheds skyld implementerer vi modellen som et slutpunkt fra SageMaker Canvas direkte. For instruktioner, se Implementer dine modeller til et slutpunkt. Sørg for at notere implementeringsnavnet og overvej prisen på den instanstype, du implementerer til (til dette indlæg bruger vi ml.m5.large). SageMaker Canvas vil derefter oprette et modelslutpunkt, der kan kaldes for at opnå forudsigelser.

Et applikationsvindue, der viser konfigurationen af ​​en modelimplementering. De viste indstillinger er en maskinstørrelse ml.m5.large og et implementeringsnavn på prøve-anomali-model.

I industrielle omgivelser skal en model gennemgå en grundig test, før den kan implementeres. Til dette vil domæneeksperten ikke implementere den, men i stedet dele modellen til SageMaker Model Registry. Her kan en MLOps operationsekspert tage over. Typisk vil denne ekspert teste modellens slutpunkt, evaluere størrelsen af ​​det computerudstyr, der kræves til målapplikationen, og bestemme den mest omkostningseffektive implementering, såsom implementering til serverløs inferens eller batch-inferens. Disse trin er normalt automatiserede (for eksempel ved hjælp af Amazon Sagemaker Pipelines eller Amazon SDK).

Et billede, der viser knappen til at dele en model fra Amazon Sgemaker til en modelregistrering.

Brug modellen til påvisning af anomalier

I det forrige trin oprettede vi en modelimplementering i SageMaker Canvas, kaldet canvas-sample-anomaly-model. Vi kan bruge det til at opnå forudsigelser af en bearing_temperature værdi baseret på de andre kolonner i datasættet. Nu vil vi bruge dette endepunkt til at opdage anomalier.

For at identificere unormale data vil vores model bruge forudsigelsesmodellens slutpunkt til at få den forventede værdi af målmetrikken og derefter sammenligne den forudsagte værdi med den faktiske værdi i dataene. Den forudsagte værdi angiver den forventede værdi for vores målmåling baseret på træningsdataene. Forskellen mellem denne værdi er derfor en metrik for abnormiteten af ​​de faktiske observerede data. Vi kan bruge følgende kode:

# We are using pandas dataframes for data handling
import pandas as pd import boto3,json
sm_runtime_client = boto3.client('sagemaker-runtime') # Configuration of the actual model invocation
endpoint_name="canvas-sample-anomaly-model"
# Name of the column in the input data to compare with predictions
TARGET_COL='bearing_temperature' def do_inference(data, endpoint_name): # Example Code provided by Sagemaker Canvas body = data.to_csv(header=False, index=True).encode("utf-8") response = sm_runtime_client.invoke_endpoint(Body = body, EndpointName = endpoint_name, ContentType = "text/csv", Accept = "application/json", ) return json.loads(response["Body"].read()) def input_transformer(input_data, drop_cols = [ TARGET_COL ] ): # Transform the input: Drop the Target column return input_data.drop(drop_cols,axis =1 ) def output_transformer(input_data,response): # Take the initial input data and compare it to the response of the prediction model scored = input_data.copy() scored.loc[ input_data.index,'prediction_'+TARGET_COL ] = pd.DataFrame(
response[ 'predictions' ],
index = input_data.index )['score'] scored.loc[ input_data.index,'error' ] = (
scored[ TARGET_COL ]-scored[ 'prediction_'+TARGET_COL ]
).abs() return scored # Run the inference
raw_input = pd.read_csv(MYFILE) # Read my data for inference
to_score = input_transformer(raw_input) # Prepare the data
predictions = do_inference(to_score, endpoint_name) # create predictions
results = output_transformer(to_score,predictions) # compare predictions & actuals

Den foregående kode udfører følgende handlinger:

  1. Indgangsdataene filtreres ned til de rigtige funktioner (funktion "input_transformer").
  2. SageMaker-modellens slutpunkt påkaldes med de filtrerede data (funktion "do_inference“), hvor vi håndterer input- og outputformatering i henhold til den eksempelkode, der blev angivet, når vi åbnede detaljeringssiden for vores implementering i SageMaker Canvas.
  3. Resultatet af påkaldelsen føjes til de originale inputdata, og forskellen gemmes i fejlkolonnen (funktion "output_transform").

Find anomalier og evaluer unormale hændelser

I en typisk opsætning køres koden til at opnå uregelmæssigheder i en Lambda-funktion. Lambdafunktionen kan kaldes fra en applikation eller Amazon API Gateway. Hovedfunktionen returnerer en anomali-score for hver række af inputdataene - i dette tilfælde en tidsserie af en anomali-score.

Til test kan vi også køre koden i en SageMaker notesbog. Følgende grafer viser input og output fra vores model, når du bruger prøvedataene. Toppe i afvigelsen mellem forudsagte og faktiske værdier (anomali-score, vist i den nederste graf) indikerer anomalier. For eksempel kan vi i grafen se tre distinkte toppe, hvor anomali-scoren (forskellen mellem forventet og reel temperatur) overstiger 7 grader Celsius: den første efter en lang tomgangstid, den anden ved et stejlt fald på bearing_temperature, og det sidste hvor bearing_temperature er høj i forhold til motor_speed.

To grafer for tidsserier. Øverst viser tidsserierne for motortemperaturer og motorhastigheder. Den nederste graf viser anomali-scoren over tid med tre toppe, der indikerer anomalier.

I mange tilfælde er det allerede tilstrækkeligt at kende tidsrækken for anomali-scoren; du kan opsætte en tærskel for, hvornår der skal advares om en væsentlig anomali baseret på behovet for modelfølsomhed. Den aktuelle score angiver så, at en maskine har en unormal tilstand, der skal undersøges. For eksempel, for vores model, er den absolutte værdi af anomali-scoren fordelt som vist i den følgende graf. Dette bekræfter, at de fleste anomali-scorer er under de (2xRMS=)8 grader fundet under træning for modellen som den typiske fejl. Grafen kan hjælpe dig med at vælge en tærskel manuelt, således at den rigtige procentdel af de evaluerede prøver markeres som uregelmæssigheder.

Et histogram over forekomsten af ​​værdier for anomali-scoren. Kurven falder fra x=0 til x=15.

Hvis det ønskede output er hændelser af anomalier, kræver de anomali-scorer, som modellen leveres, forfining for at være relevante for forretningsbrug. Til dette vil ML-eksperten typisk tilføje efterbehandling for at fjerne støj eller store toppe på anomali-scoren, såsom tilføjelse af en rullende middelværdi. Derudover vil eksperten typisk evaluere anomali-scoren ved hjælp af en logik svarende til at hæve en amazoncloudwatch alarm, såsom overvågning for overskridelse af en tærskel over en bestemt varighed. For mere information om opsætning af alarmer, se Brug af Amazon CloudWatch-alarmer. Ved at køre disse evalueringer i Lambda-funktionen kan du sende advarsler, for eksempel ved at udgive en advarsel til en Amazon Simple Notification Service (Amazon SNS) emne.

Ryd op

Når du er færdig med at bruge denne løsning, bør du rydde op for at undgå unødvendige omkostninger:

  1. I SageMaker Canvas skal du finde din modelslutpunktsimplementering og slette den.
  2. Log ud af SageMaker Canvas for at undgå gebyrer for, at det kører i tomgang.

Resumé

I dette indlæg viste vi, hvordan en domæneekspert kan evaluere inputdata og skabe en ML-model ved hjælp af SageMaker Canvas uden at skulle skrive kode. Derefter viste vi, hvordan man bruger denne model til at udføre anomalidetektion i realtid ved hjælp af SageMaker og Lambda gennem en simpel arbejdsgang. Denne kombination giver domæneeksperter mulighed for at bruge deres viden til at skabe kraftfulde ML-modeller uden yderligere træning i datavidenskab, og gør det muligt for MLOps-eksperter at bruge disse modeller og gøre dem tilgængelige for slutninger fleksibelt og effektivt.

En 2-måneders gratis tier er tilgængelig for SageMaker Canvas, og bagefter betaler du kun for det, du bruger. Begynd at eksperimentere i dag, og tilføj ML for at få mest muligt ud af dine data.


Om forfatteren

Detect anomalies in manufacturing data using Amazon SageMaker Canvas | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai. Helge Aufderheide er en entusiast for at gøre data anvendelige i den virkelige verden med et stærkt fokus på Automation, Analytics og Machine Learning i industrielle applikationer, såsom Manufacturing og Mobility.

Tidsstempel:

Mere fra AWS maskinindlæring