Oppdag avvik i produksjonsdata ved å bruke Amazon SageMaker Canvas | Amazon Web Services

Oppdag avvik i produksjonsdata ved å bruke Amazon SageMaker Canvas | Amazon Web Services

Med bruk av cloud computing, big data og maskinlæring (ML) verktøy som Amazonas Athena or Amazon SageMaker har blitt tilgjengelig og brukbar av alle uten mye innsats i opprettelse og vedlikehold. Industrielle selskaper ser i økende grad på dataanalyse og datadrevet beslutningstaking for å øke ressurseffektiviteten på tvers av hele porteføljen, fra drift til å utføre prediktivt vedlikehold eller planlegging.

På grunn av endringshastigheten innen IT, står kunder i tradisjonelle bransjer overfor et dilemma med kompetansesett. På den ene siden har analytikere og domeneeksperter en veldig dyp kunnskap om de aktuelle dataene og deres tolkning, men mangler ofte eksponeringen for datavitenskapsverktøy og programmeringsspråk på høyt nivå som Python. På den annen side mangler datavitenskapseksperter ofte erfaringen til å tolke maskindatainnholdet og filtrere det etter det som er relevant. Dette dilemmaet hindrer etableringen av effektive modeller som bruker data til å generere forretningsrelevant innsikt.

Amazon SageMaker Canvas løser dette dilemmaet ved å gi domeneeksperter et kodefritt grensesnitt for å lage kraftige analyser og ML-modeller, for eksempel prognoser, klassifiserings- eller regresjonsmodeller. Den lar deg også distribuere og dele disse modellene med ML- og MLOps-spesialister etter opprettelse.

I dette innlegget viser vi deg hvordan du bruker SageMaker Canvas til å kurere og velge de riktige funksjonene i dataene dine, og deretter trene en prediksjonsmodell for avviksdeteksjon, ved å bruke den kodefrie funksjonaliteten til SageMaker Canvas for modellinnstilling.

Anomalideteksjon for produksjonsindustrien

I skrivende stund fokuserer SageMaker Canvas på typiske forretningsbrukstilfeller, for eksempel prognoser, regresjon og klassifisering. For dette innlegget viser vi hvordan disse egenskapene også kan bidra til å oppdage komplekse unormale datapunkter. Denne brukssaken er relevant, for eksempel for å finne funksjonsfeil eller uvanlige operasjoner av industrimaskiner.

Deteksjon av avvik er viktig i industridomenet, fordi maskiner (fra tog til turbiner) normalt er svært pålitelige, med tider mellom feil som strekker seg over år. De fleste data fra disse maskinene, som temperatursensoravlesninger eller statusmeldinger, beskriver normal drift og har begrenset verdi for beslutningstaking. Ingeniører ser etter unormale data når de undersøker de grunnleggende årsakene til en feil eller som advarselsindikatorer for fremtidige feil, og ytelsesledere undersøker unormale data for å identifisere potensielle forbedringer. Derfor er det typiske første trinnet i å bevege seg mot datadrevet beslutningstaking avhengig av å finne relevante (unormale) data.

I dette innlegget bruker vi SageMaker Canvas til å kurere og velge de riktige funksjonene i data, og deretter trene en prediksjonsmodell for avviksdeteksjon, ved å bruke SageMaker Canvas no-code-funksjonalitet for modellinnstilling. Deretter distribuerer vi modellen som et SageMaker-endepunkt.

Løsningsoversikt

For vårt brukstilfelle for avviksdeteksjon trener vi en prediksjonsmodell for å forutsi en karakteristisk funksjon for normal drift av en maskin, for eksempel motortemperaturen som er angitt i en bil, fra å påvirke funksjoner, for eksempel hastigheten og nylig dreiemoment brukt i bilen . For anomalideteksjon på et nytt utvalg av målinger, sammenligner vi modellprediksjonene for det karakteristiske trekket med observasjonene som er gitt.

For eksempel med bilmotoren innhenter en domeneekspert målinger av normal motortemperatur, nylig motormoment, omgivelsestemperatur og andre potensielle påvirkningsfaktorer. Disse lar deg trene en modell til å forutsi temperaturen fra de andre funksjonene. Deretter kan vi bruke modellen til å forutsi motortemperaturen med jevne mellomrom. Når den forutsagte temperaturen for disse dataene er lik den observerte temperaturen i de dataene, fungerer motoren normalt; et avvik vil peke på en anomali, for eksempel at kjølesystemet svikter eller en defekt i motoren.

Følgende diagram illustrerer løsningsarkitekturen.

Oversikt over prosessen: En modell lages i SageMaker Canvas, distribueres og åpnes deretter fra en AWS Lambda Funcino.

Løsningen består av fire hovedtrinn:

  1. Domeneeksperten lager den første modellen, inkludert dataanalyse og funksjonskurering ved hjelp av SageMaker Canvas.
  2. Domeneeksperten deler modellen via Amazon SageMaker modellregister eller distribuerer det direkte som et sanntidsendepunkt.
  3. En MLOps-ekspert oppretter inferensinfrastrukturen og koden og oversetter modellutgangen fra en prediksjon til en anomaliindikator. Denne koden kjører vanligvis inne i en AWS Lambda funksjon.
  4. Når en applikasjon krever en anomalideteksjon, kaller den Lambda-funksjonen, som bruker modellen for slutning og gir svaret (enten det er en anomali eller ikke).

Forutsetninger

For å følge med på dette innlegget må du oppfylle følgende forutsetninger:

Lag modellen med SageMaker

Modellopprettingsprosessen følger standardtrinnene for å lage en regresjonsmodell i SageMaker Canvas. For mer informasjon, se Komme i gang med bruk av Amazon SageMaker Canvas.

Først laster domeneeksperten inn relevante data i SageMaker Canvas, for eksempel en tidsserie med målinger. For dette innlegget bruker vi en CSV-fil som inneholder (syntetisk genererte) målinger av en elektrisk motor. For detaljer, se Importer data til Canvas. Eksempeldataene som brukes er tilgjengelige for nedlasting som en CSV.

Et bilde som viser de første linjene i csv. I tillegg vises et histogram og referanseverdier for en rask forhåndsvisningsmodell.

Kurater dataene med SageMaker Canvas

Etter at dataene er lastet inn, kan domeneeksperten bruke SageMaker Canvas til å kurere dataene som brukes i den endelige modellen. For dette velger eksperten de kolonnene som inneholder karakteristiske mål for det aktuelle problemet. Mer presist velger eksperten kolonner som er relatert til hverandre, for eksempel ved en fysisk sammenheng som en trykk-temperaturkurve, og hvor en endring i dette forholdet er en relevant anomali for deres brukstilfelle. Anomalideteksjonsmodellen vil lære det normale forholdet mellom de valgte kolonnene og indikere når data ikke samsvarer med det, for eksempel en unormalt høy motortemperatur gitt gjeldende belastning på motoren.

I praksis må domeneeksperten velge et sett med passende inndatakolonner og en målkolonne. Inndataene er typisk samlingen av mengder (numeriske eller kategoriske) som bestemmer maskinens oppførsel, fra behovsinnstillinger, til belastning, hastighet eller omgivelsestemperatur. Utgangen er typisk en numerisk størrelse som indikerer ytelsen til maskinens drift, for eksempel en temperatur som måler energitap eller en annen ytelsesmåling som endres når maskinen kjører under suboptimale forhold.

For å illustrere konseptet med hvilke mengder som skal velges for input og output, la oss vurdere noen eksempler:

  • For roterende utstyr, slik som modellen vi bygger i dette innlegget, er typiske innganger rotasjonshastigheten, dreiemomentet (strøm og historikk) og omgivelsestemperaturen, og målene er de resulterende lager- eller motortemperaturene som indikerer gode driftsforhold for rotasjonene
  • For en vindturbin er typiske innganger gjeldende og nyere historie med vindhastighet og rotorbladinnstillinger, og målmengden er produsert kraft eller rotasjonshastighet
  • For en kjemisk prosess er typiske input prosentandelen av forskjellige ingredienser og omgivelsestemperaturen, og målene er varmen som produseres eller viskositeten til sluttproduktet
  • For bevegelig utstyr som skyvedører er typiske innganger krafttilførselen til motorene, og målverdien er hastigheten eller fullføringstiden for bevegelsen
  • For et HVAC-system er typiske innganger oppnådd temperaturforskjell og belastningsinnstillinger, og målmengden er målt energiforbruk

Til syvende og sist vil de riktige inngangene og målene for et gitt utstyr avhenge av brukstilfellet og unormal atferd som skal oppdages, og er best kjent for en domeneekspert som er kjent med vanskelighetene til det spesifikke datasettet.

I de fleste tilfeller betyr å velge passende input- og målmengder å kun velge de høyre kolonnene og merke målkolonnen (for dette eksemplet, bearing_temperature). En domeneekspert kan imidlertid også bruke funksjonene uten kode i SageMaker Canvas til å transformere kolonner og avgrense eller samle dataene. Du kan for eksempel trekke ut eller filtrere spesifikke datoer eller tidsstempler fra dataene som ikke er relevante. SageMaker Canvas støtter denne prosessen, og viser statistikk over mengdene som er valgt, slik at du kan forstå om en mengde har uteliggere og spredning som kan påvirke resultatene av modellen.

Tren, juster og evaluer modellen

Etter at domeneeksperten har valgt passende kolonner i datasettet, kan de trene modellen til å lære forholdet mellom input og output. Mer presist vil modellen lære å forutsi målverdien valgt fra inngangene.

Normalt kan du bruke SageMaker Canvas Forhåndsvisning av modell alternativ. Dette gir en rask indikasjon på modellkvaliteten du kan forvente, og lar deg undersøke effekten som ulike innganger har på utdatametrikken. For eksempel, i det følgende skjermbildet, er modellen mest påvirket av motor_speed og ambient_temperature målinger når du forutsier bearing_temperature. Dette er fornuftig, fordi disse temperaturene er nært beslektet. Samtidig er det sannsynlig at ytterligere friksjon eller andre midler for energitap vil påvirke dette.

For modellkvaliteten er modellens RMSE en indikator på hvor godt modellen var i stand til å lære normal oppførsel i treningsdataene og reprodusere relasjonene mellom input- og outputmålene. For eksempel, i den følgende modellen, skal modellen være i stand til å forutsi det riktige motor_bearing temperatur innenfor 3.67 grader Celsius, så vi kan vurdere et avvik av den reelle temperaturen fra en modellprediksjon som er større enn for eksempel 7.4 grader som en anomali. Den virkelige terskelen du vil bruke, vil imidlertid avhenge av følsomheten som kreves i distribusjonsscenariet.

En graf som viser den faktiske og anslåtte motorhastigheten. Forholdet er lineært med noe støy.

Til slutt, etter at modellevalueringen og -innstillingen er fullført, kan du starte den komplette modellopplæringen som vil lage modellen som skal brukes til slutning.

Distribuer modellen

Selv om SageMaker Canvas kan bruke en modell for slutninger, krever produktiv distribusjon for avviksdeteksjon at du distribuerer modellen utenfor SageMaker Canvas. Mer presist må vi distribuere modellen som et endepunkt.

I dette innlegget og for enkelhets skyld distribuerer vi modellen som et endepunkt fra SageMaker Canvas direkte. For instruksjoner, se Distribuer modellene dine til et endepunkt. Sørg for å notere distribusjonsnavnet og vurder prisen på forekomsttypen du distribuerer til (for dette innlegget bruker vi ml.m5.large). SageMaker Canvas vil da lage et modellendepunkt som kan kalles for å få spådommer.

Et applikasjonsvindu som viser konfigurasjonen av en modellimplementering. Innstillingene som vises er en maskinstørrelse ml.m5.large og et distribusjonsnavn for sample-anomaly-model.

I industrielle omgivelser må en modell gjennomgå grundig testing før den kan distribueres. For dette vil ikke domeneeksperten distribuere den, men i stedet dele modellen til SageMaker Model Registry. Her kan en MLOps operasjonsekspert ta over. Vanligvis vil denne eksperten teste modellens endepunkt, evaluere størrelsen på datautstyret som kreves for målapplikasjonen, og bestemme mest kostnadseffektive distribusjon, for eksempel distribusjon for serverløs slutning eller batch slutning. Disse trinnene er normalt automatiserte (for eksempel ved å bruke Amazon Sagemaker Pipelines eller Amazon SDK).

Et bilde som viser knappen for å dele en modell fra Amazon Sgemaker til et modellregister.

Bruk modellen for å oppdage avvik

I forrige trinn opprettet vi en modelldistribusjon i SageMaker Canvas, kalt canvas-sample-anomaly-model. Vi kan bruke den til å få spådommer om en bearing_temperature verdi basert på de andre kolonnene i datasettet. Nå ønsker vi å bruke dette endepunktet til å oppdage anomalier.

For å identifisere uregelmessige data, vil modellen vår bruke prediksjonsmodellens endepunkt for å få den forventede verdien av målberegningen og deretter sammenligne den anslåtte verdien med den faktiske verdien i dataene. Den anslåtte verdien indikerer forventet verdi for målberegningen vår basert på treningsdataene. Forskjellen mellom denne verdien er derfor en metrikk for abnormiteten til de faktiske observerte dataene. Vi kan bruke 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 koden utfører følgende handlinger:

  1. Inndataene filtreres ned til de riktige funksjonene (funksjon "input_transformer").
  2. SageMaker-modellens endepunkt påkalles med de filtrerte dataene (funksjon "do_inference"), der vi håndterer formatering av input og output i henhold til eksempelkoden som ble oppgitt når vi åpner detaljsiden for distribusjonen vår i SageMaker Canvas.
  3. Resultatet av påkallingen kobles til de originale inngangsdataene og forskjellen lagres i feilkolonnen (funksjon "output_transform").

Finn uregelmessigheter og evaluer uregelmessige hendelser

I et typisk oppsett kjøres koden for å få anomalier i en Lambda-funksjon. Lambda-funksjonen kan kalles fra en applikasjon eller Amazon API-gateway. Hovedfunksjonen returnerer en uregelmessig poengsum for hver rad med inngangsdata – i dette tilfellet en tidsserie av en uregelmessig poengsum.

For testing kan vi også kjøre koden i en SageMaker-notisbok. Følgende grafer viser input og output fra modellen vår når du bruker eksempeldataene. Topper i avviket mellom predikerte og faktiske verdier (avviksscore, vist i den nedre grafen) indikerer anomalier. For eksempel, i grafen, kan vi se tre distinkte topper der anomalipoengsummen (forskjellen mellom forventet og reell temperatur) overstiger 7 grader Celsius: den første etter en lang tomgangstid, den andre ved et bratt fall på bearing_temperature, og den siste hvor bearing_temperature er høy i forhold til motor_speed.

To grafer for tidsserier. Øverst viser tidsseriene for motortemperaturer og motorhastigheter. Den nedre grafen viser anomali-skåren over tid med tre topper som indikerer anomalier.

I mange tilfeller er det allerede tilstrekkelig å kjenne til tidsserien for uregelmessigheten; du kan sette opp en terskel for når du skal varsle om en betydelig anomali basert på behovet for modellsensitivitet. Den nåværende poengsummen indikerer da at en maskin har en unormal tilstand som må undersøkes. For eksempel, for vår modell, er den absolutte verdien av anomalipoengsummen fordelt som vist i følgende graf. Dette bekrefter at de fleste anomaliskårene er under (2xRMS=)8 grader funnet under trening for modellen som den typiske feilen. Grafen kan hjelpe deg med å velge en terskel manuelt, slik at den riktige prosentandelen av de evaluerte prøvene merkes som uregelmessigheter.

Et histogram over forekomsten av verdier for anomalipoengsummen. Kurven minker fra x=0 til x=15.

Hvis den ønskede utgangen er hendelser med uregelmessigheter, krever anomali-skårene gitt av modellen foredling for å være relevante for forretningsbruk. For dette vil ML-eksperten vanligvis legge til etterbehandling for å fjerne støy eller store topper på anomalipoengsummen, for eksempel å legge til et rullende middel. I tillegg vil eksperten typisk evaluere anomalipoengsummen ved hjelp av en logikk som ligner på å øke en Amazon CloudWatch alarm, for eksempel overvåking for brudd på en terskel over en bestemt varighet. For mer informasjon om oppsett av alarmer, se Bruker Amazon CloudWatch-alarmer. Ved å kjøre disse evalueringene i Lambda-funksjonen kan du sende advarsler, for eksempel ved å publisere en advarsel til en Amazon enkel varslingstjeneste (Amazon SNS) emne.

Rydd opp

Etter at du er ferdig med å bruke denne løsningen, bør du rydde opp for å unngå unødvendige kostnader:

  1. I SageMaker Canvas finner du endepunktsmodellen din og sletter den.
  2. Logg ut av SageMaker Canvas for å unngå gebyrer for at den kjører ubrukelig.

Oppsummering

I dette innlegget viste vi hvordan en domeneekspert kan evaluere inngangsdata og lage en ML-modell ved hjelp av SageMaker Canvas uten å måtte skrive kode. Deretter viste vi hvordan du bruker denne modellen til å utføre sanntidsdeteksjon av anomalier ved å bruke SageMaker og Lambda gjennom en enkel arbeidsflyt. Denne kombinasjonen gir domeneeksperter mulighet til å bruke kunnskapen sin til å lage kraftige ML-modeller uten ekstra opplæring i datavitenskap, og gjør det mulig for MLOps-eksperter å bruke disse modellene og gjøre dem tilgjengelige for slutninger på en fleksibel og effektiv måte.

En 2-måneders gratis tier er tilgjengelig for SageMaker Canvas, og etterpå betaler du kun for det du bruker. Begynn å eksperimentere i dag og legg til ML for å få mest mulig ut av dataene dine.


Om forfatteren

Oppdag avvik i produksjonsdata ved å bruke Amazon SageMaker Canvas | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikalt søk. Ai. Helge Aufderheide er en entusiast for å gjøre data brukbare i den virkelige verden med sterkt fokus på automatisering, analyse og maskinlæring i industrielle applikasjoner, som produksjon og mobilitet.

Tidstempel:

Mer fra AWS maskinlæring