Upptäck avvikelser i tillverkningsdata med Amazon SageMaker Canvas | Amazon webbtjänster

Upptäck avvikelser i tillverkningsdata med Amazon SageMaker Canvas | Amazon webbtjänster

Med användning av cloud computing, big data och maskininlärning (ML) verktyg som Amazonas Athena or Amazon SageMaker har blivit tillgängliga och användbara för alla utan större ansträngning för att skapa och underhålla. Industriföretag tittar allt mer på dataanalys och datadrivet beslutsfattande för att öka resurseffektiviteten i hela sin portfölj, från drift till att utföra förutsägande underhåll eller planering.

På grund av den snabba förändringen inom IT står kunder i traditionella branscher inför ett kompetensdilemma. Å ena sidan har analytiker och domänexperter en mycket djup kunskap om data i fråga och dess tolkning, men saknar ofta exponering för datavetenskapliga verktyg och högnivåprogrammeringsspråk som Python. Å andra sidan saknar datavetenskapsexperter ofta erfarenhet av att tolka maskindatainnehållet och filtrera det efter vad som är relevant. Detta dilemma hindrar skapandet av effektiva modeller som använder data för att generera affärsrelevanta insikter.

Amazon SageMaker Canvas löser detta dilemma genom att tillhandahålla domänexperter ett kodfritt gränssnitt för att skapa kraftfulla analyser och ML-modeller, såsom prognoser, klassificering eller regressionsmodeller. Det låter dig också distribuera och dela dessa modeller med ML- och MLOps-specialister efter att de har skapats.

I det här inlägget visar vi dig hur du använder SageMaker Canvas för att kurera och välja rätt funktioner i din data, och sedan träna en prediktionsmodell för avvikelsedetektering, med hjälp av den kodfria funktionen hos SageMaker Canvas för modelljustering.

Anomalidetektering för tillverkningsindustrin

I skrivande stund fokuserar SageMaker Canvas på typiska affärsanvändningsfall, såsom prognoser, regression och klassificering. För det här inlägget visar vi hur dessa funktioner också kan hjälpa till att upptäcka komplexa onormala datapunkter. Detta användningsfall är till exempel relevant för att lokalisera funktionsfel eller ovanliga funktioner hos industrimaskiner.

Avvikelsedetektering är viktig inom industriområdet, eftersom maskiner (från tåg till turbiner) normalt är mycket tillförlitliga, med tider mellan fel som sträcker sig över år. De flesta data från dessa maskiner, såsom temperatursensoravläsningar eller statusmeddelanden, beskriver den normala driften och har begränsat värde för beslutsfattande. Ingenjörer letar efter onormala data när de undersöker grundorsakerna till ett fel eller som varningsindikatorer för framtida fel, och prestandahanterare undersöker onormala data för att identifiera potentiella förbättringar. Därför bygger det typiska första steget i att gå mot datadrivet beslutsfattande på att hitta relevanta (onormala) data.

I det här inlägget använder vi SageMaker Canvas för att kurera och välja rätt funktioner i data, och sedan träna en prediktionsmodell för avvikelsedetektering, med hjälp av SageMaker Canvas no-code funktionalitet för modellinställning. Sedan distribuerar vi modellen som en SageMaker-slutpunkt.

Lösningsöversikt

För vårt användningsfall för avvikelsedetektering tränar vi en förutsägelsemodell för att förutsäga en karakteristisk egenskap för normal drift av en maskin, såsom motortemperaturen indikerad i en bil, från att påverka funktioner, såsom hastigheten och det senaste vridmomentet som applicerats i bilen . För avvikelsedetektering på ett nytt urval av mätningar jämför vi modellförutsägelserna för den karakteristiska egenskapen med de observationer som tillhandahålls.

För exemplet med bilmotorn erhåller en domänexpert mätningar av den normala motortemperaturen, senaste motormoment, omgivningstemperatur och andra potentiella påverkande faktorer. Dessa låter dig träna en modell för att förutsäga temperaturen från de andra funktionerna. Sedan kan vi använda modellen för att förutsäga motortemperaturen på en regelbunden basis. När den förutsagda temperaturen för dessa data liknar den observerade temperaturen i dessa data, fungerar motorn normalt; en avvikelse kommer att peka på en anomali, som att kylsystemet inte fungerar eller en defekt i motorn.

Följande diagram illustrerar lösningsarkitekturen.

Översikt över processen: En modell skapas i SageMaker Canvas, distribueras och nås sedan från en AWS Lambda Funcino.

Lösningen består av fyra nyckelsteg:

  1. Domänexperten skapar den initiala modellen, inklusive dataanalys och funktionskurering med SageMaker Canvas.
  2. Domänexperten delar modellen via Amazon SageMaker Model Registry eller distribuerar den direkt som en slutpunkt i realtid.
  3. En MLOps-expert skapar inferensinfrastrukturen och koden och översätter modellens utdata från en förutsägelse till en anomaliindikator. Denna kod körs vanligtvis inuti en AWS Lambda funktion.
  4. När en applikation kräver en anomalidetektering anropar den Lambda-funktionen, som använder modellen för slutledning och ger svaret (oavsett om det är en anomali eller inte).

Förutsättningar

För att följa detta inlägg måste du uppfylla följande krav:

Skapa modellen med SageMaker

Modellskapandeprocessen följer standardstegen för att skapa en regressionsmodell i SageMaker Canvas. För mer information, se Komma igång med att använda Amazon SageMaker Canvas.

Först laddar domänexperten in relevant data i SageMaker Canvas, till exempel en tidsserie av mätningar. För det här inlägget använder vi en CSV-fil som innehåller (syntetiskt genererade) mätningar av en elektrisk motor. För detaljer, se Importera data till Canvas. Provdatan som används är tillgänglig för nedladdning som en CSV.

En bild som visar de första raderna i csv. Dessutom visas ett histogram och benchmark-mått för en snabbförhandsgranskning.

Kurera data med SageMaker Canvas

Efter att data har laddats kan domänexperten använda SageMaker Canvas för att kurera data som används i den slutliga modellen. För detta väljer experten de kolumner som innehåller karakteristiska mått för det aktuella problemet. Närmare bestämt väljer experten kolumner som är relaterade till varandra, till exempel genom ett fysiskt samband såsom en tryck-temperaturkurva, och där en förändring i detta förhållande är en relevant anomali för deras användningsfall. Avvikelsedetekteringsmodellen kommer att lära sig det normala förhållandet mellan de valda kolumnerna och indikera när data inte överensstämmer med det, till exempel en onormalt hög motortemperatur givet den aktuella belastningen på motorn.

I praktiken måste domänexperten välja en uppsättning lämpliga inmatningskolumner och en målkolumn. Indata är vanligtvis samlingen av kvantiteter (numeriska eller kategoriska) som bestämmer en maskins beteende, från behovsinställningar till belastning, hastighet eller omgivningstemperatur. Utgången är vanligtvis en numerisk storhet som indikerar prestandan för maskinens drift, till exempel en temperaturmätning av energiförlust eller ett annat prestandamått som ändras när maskinen körs under suboptimala förhållanden.

För att illustrera konceptet med vilka kvantiteter som ska väljas för input och output, låt oss överväga några exempel:

  • För roterande utrustning, såsom modellen vi bygger i det här inlägget, är typiska indata rotationshastighet, vridmoment (ström och historik) och omgivningstemperatur, och målen är de resulterande lager- eller motortemperaturerna som indikerar goda driftsförhållanden för rotationerna
  • För en vindturbin är typiska indata den aktuella och senaste historiken för vindhastighet och rotorbladsinställningar, och målmängden är den producerade effekten eller rotationshastigheten
  • För en kemisk process är typiska insatser procentandelen av olika ingredienser och omgivningstemperaturen, och målen är värmen som produceras eller slutproduktens viskositet
  • För rörlig utrustning som skjutdörrar är typiska ingångar effekttillförseln till motorerna, och målvärdet är hastigheten eller slutförandetiden för rörelsen
  • För ett HVAC-system är typiska ingångar den uppnådda temperaturskillnaden och belastningsinställningarna, och målmängden är den uppmätta energiförbrukningen

I slutändan kommer de rätta ingångarna och målen för en given utrustning att bero på användningsfallet och det avvikande beteendet att upptäcka, och är bäst kända för en domänexpert som är bekant med den specifika datamängden.

I de flesta fall innebär att välja lämpliga inmatnings- och målkvantiteter att endast välja de högra kolumnerna och markera målkolumnen (för det här exemplet, bearing_temperature). En domänexpert kan dock också använda de kodfria funktionerna i SageMaker Canvas för att transformera kolumner och förfina eller aggregera data. Du kan till exempel extrahera eller filtrera specifika datum eller tidsstämplar från data som inte är relevanta. SageMaker Canvas stöder denna process, visar statistik över de valda kvantiteterna, så att du kan förstå om en kvantitet har extremvärden och spridning som kan påverka modellens resultat.

Träna, trimma och utvärdera modellen

Efter att domänexperten har valt lämpliga kolumner i datamängden kan de träna modellen att lära sig förhållandet mellan indata och utdata. Mer exakt kommer modellen att lära sig att förutsäga det målvärde som valts från indata.

Normalt kan du använda SageMaker Canvas Förhandsvisning av modell alternativ. Detta ger en snabb indikation på vilken modellkvalitet du kan förvänta dig och låter dig undersöka effekten som olika indata har på utdatamåttet. Till exempel, i följande skärmdump, är modellen mest påverkad av motor_speed och ambient_temperature mätvärden vid förutsägelse bearing_temperature. Detta är förnuftigt, eftersom dessa temperaturer är nära relaterade. Samtidigt kommer sannolikt ytterligare friktion eller andra medel för energiförlust att påverka detta.

För modellkvaliteten är modellens RMSE en indikator på hur väl modellen kunde lära sig det normala beteendet i träningsdatan och reproducera sambanden mellan input- och outputmåtten. Till exempel, i följande modell bör modellen kunna förutsäga det korrekta motor_bearing temperatur inom 3.67 grader Celsius, så vi kan betrakta en avvikelse av den verkliga temperaturen från en modellförutsägelse som är större än till exempel 7.4 grader som en anomali. Den verkliga tröskeln som du skulle använda kommer dock att bero på den känslighet som krävs i distributionsscenariot.

En graf som visar den faktiska och förutspådda motorhastigheten. Förhållandet är linjärt med visst brus.

Slutligen, efter att modellutvärderingen och justeringen är klar, kan du starta den kompletta modellutbildningen som kommer att skapa modellen att använda för slutledning.

Distribuera modellen

Även om SageMaker Canvas kan använda en modell för slutledning, kräver produktiv distribution för avvikelsedetektering att du distribuerar modellen utanför SageMaker Canvas. Mer exakt måste vi distribuera modellen som en slutpunkt.

I det här inlägget och för enkelhets skull distribuerar vi modellen som en slutpunkt från SageMaker Canvas direkt. För instruktioner, se Distribuera dina modeller till en slutpunkt. Se till att notera distributionsnamnet och överväga prissättningen för instanstypen du distribuerar till (för det här inlägget använder vi ml.m5.large). SageMaker Canvas kommer sedan att skapa en modellslutpunkt som kan anropas för att få förutsägelser.

Ett applikationsfönster som visar konfigurationen av en modelldistribution. De inställningar som visas är en maskinstorlek ml.m5.large och ett distributionsnamn för sample-anomaly-model.

I industriella miljöer måste en modell genomgå grundliga tester innan den kan användas. För detta kommer domänexperten inte att distribuera den, utan istället dela modellen till SageMaker Model Registry. Här kan en MLOps operationsexpert ta över. Vanligtvis kommer den experten att testa modellens slutpunkt, utvärdera storleken på datorutrustningen som krävs för målapplikationen och bestämma den mest kostnadseffektiva driftsättningen, såsom distribution för serverlös slutledning eller batch-inferens. Dessa steg är normalt automatiserade (till exempel med hjälp av Amazon Sagemaker Pipelines eller Amazon SDK).

En bild som visar knappen för att dela en modell från Amazon Sgemaker till ett modellregister.

Använd modellen för avvikelsedetektering

I föregående steg skapade vi en modelldistribution i SageMaker Canvas, kallad canvas-sample-anomaly-model. Vi kan använda den för att få förutsägelser om en bearing_temperature värde baserat på de andra kolumnerna i datamängden. Nu vill vi använda denna slutpunkt för att upptäcka anomalier.

För att identifiera avvikande data kommer vår modell att använda förutsägelsemodellens slutpunkt för att få det förväntade värdet av målmåttet och sedan jämföra det förutsagda värdet med det faktiska värdet i datan. Det förutsagda värdet indikerar det förväntade värdet för vårt målvärde baserat på träningsdata. Skillnaden mellan detta värde är därför ett mått för abnormiteten i de faktiska observerade data. Vi kan använda följande kod:

# 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 föregående koden utför följande åtgärder:

  1. Indata filtreras ner till rätt funktioner (funktion "input_transformer").
  2. SageMaker-modellens slutpunkt anropas med den filtrerade datan (funktion "do_inference"), där vi hanterar in- och utformatering enligt exempelkoden som tillhandahålls när vi öppnar informationssidan för vår implementering i SageMaker Canvas.
  3. Resultatet av anropet kopplas till den ursprungliga indata och skillnaden lagras i felkolumnen (funktion "output_transform").

Hitta anomalier och utvärdera avvikande händelser

I en typisk installation körs koden för att erhålla anomalier i en lambdafunktion. Lambdafunktionen kan anropas från en applikation eller Amazon API Gateway. Huvudfunktionen returnerar en anomalipoäng för varje rad av indata - i det här fallet en tidsserie av en anomalipoäng.

För testning kan vi även köra koden i en SageMaker-anteckningsbok. Följande grafer visar indata och utdata från vår modell när du använder exempeldata. Toppar i avvikelsen mellan predikterade och faktiska värden (avvikelsepoäng, som visas i den nedre grafen) indikerar anomalier. I grafen kan vi till exempel se tre distinkta toppar där anomalipoängen (skillnaden mellan förväntad och verklig temperatur) överstiger 7 grader Celsius: den första efter en lång vilotid, den andra vid ett brant fall på bearing_temperature, och den sista var bearing_temperature är hög jämfört med motor_speed.

Två grafer för tidsserier. Överst visas tidsserierna för motortemperaturer och motorvarvtal. Den nedre grafen visar anomalipoängen över tid med tre toppar som indikerar anomalier.

I många fall är det redan tillräckligt att känna till tidsserien för anomalipoängen; du kan ställa in en tröskel för när du ska varna för en betydande anomali baserat på behovet av modellkänslighet. Den aktuella poängen indikerar då att en maskin har ett onormalt tillstånd som behöver undersökas. Till exempel, för vår modell, är det absoluta värdet av anomalipoängen fördelat som visas i följande graf. Detta bekräftar att de flesta anomalipoäng är under (2xRMS=)8 grader som hittats under träning för modellen som det typiska felet. Grafen kan hjälpa dig att välja ett tröskelvärde manuellt, så att rätt procentandel av de utvärderade proverna markeras som anomalier.

Ett histogram över förekomsten av värden för anomalipoängen. Kurvan minskar från x=0 till x=15.

Om den önskade produktionen är händelser av anomalier, kräver de anomalipoäng som modellen tillhandahåller förfining för att vara relevanta för affärsanvändning. För detta lägger ML-experten vanligtvis till efterbearbetning för att ta bort brus eller stora toppar på anomalipoängen, som att lägga till ett rullande medelvärde. Dessutom kommer experten vanligtvis att utvärdera anomalipoängen med en logik som liknar att höja en amazoncloudwatch larm, såsom övervakning av överskridande av en tröskel under en specifik varaktighet. För mer information om att ställa in larm, se Använder Amazon CloudWatch-larm. Genom att köra dessa utvärderingar i Lambda-funktionen kan du skicka varningar, till exempel genom att publicera en varning till en Amazon enkel meddelandetjänst (Amazon SNS) ämne.

Städa upp

När du har slutat använda den här lösningen bör du städa upp för att undvika onödiga kostnader:

  1. I SageMaker Canvas, hitta din modell för slutpunktsdistribution och ta bort den.
  2. Logga ut från SageMaker Canvas för att undvika avgifter för att den körs passivt.

Sammanfattning

I det här inlägget visade vi hur en domänexpert kan utvärdera indata och skapa en ML-modell med SageMaker Canvas utan att behöva skriva kod. Sedan visade vi hur man använder den här modellen för att utföra anomalidetektering i realtid med SageMaker och Lambda genom ett enkelt arbetsflöde. Denna kombination ger domänexperter möjlighet att använda sin kunskap för att skapa kraftfulla ML-modeller utan ytterligare utbildning i datavetenskap, och gör det möjligt för MLOps-experter att använda dessa modeller och göra dem tillgängliga för slutledning flexibelt och effektivt.

En 2-månaders gratis nivå är tillgänglig för SageMaker Canvas, och efteråt betalar du bara för det du använder. Börja experimentera idag och lägg till ML för att få ut det mesta av din data.


Om författaren

Upptäck avvikelser i tillverkningsdata med Amazon SageMaker Canvas | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikal sökning. Ai. Helge Aufderheide är en entusiast av att göra data användbar i den verkliga världen med stort fokus på automation, analys och maskininlärning i industriella applikationer, såsom tillverkning och mobilitet.

Tidsstämpel:

Mer från AWS maskininlärning