Bygg, träna och distribuera Amazon Lookout for Equipment-modeller med hjälp av Python Toolbox PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Bygg, träna och distribuera Amazon Lookout for Equipment-modeller med Python Toolbox

Förutsägande underhåll kan vara ett effektivt sätt att förhindra industriella maskinfel och dyra stillestånd genom att proaktivt övervaka din utrustnings tillstånd, så att du kan uppmärksammas på eventuella avvikelser innan utrustningsfel inträffar. Installation av sensorer och nödvändig infrastruktur för dataanslutning, lagring, analys och larm är grundelementen för att möjliggöra förutsägande underhållslösningar. Men även efter att ha installerat ad hoc-infrastrukturen använder många företag grundläggande dataanalys och enkla modelleringsmetoder som ofta är ineffektiva för att upptäcka problem tidigt nog för att undvika stillestånd. Det kan också vara svårt och tidskrävande att implementera en maskininlärningslösning (ML) för din utrustning.

Med Amazon Lookout för utrustning, kan du automatiskt analysera sensordata för din industriella utrustning för att upptäcka onormalt maskinbeteende – utan att ha erfarenhet av ML. Detta innebär att du kan upptäcka utrustningsavvikelser med snabbhet och precision, snabbt diagnostisera problem och vidta åtgärder för att minska dyra stillestånd.

Lookout for Equipment analyserar data från dina sensorer och system, såsom tryck, flödeshastighet, varvtal, temperatur och effekt, för att automatiskt träna en modell som är specifik för din utrustning baserat på dina data. Den använder din unika ML-modell för att analysera inkommande sensordata i realtid och identifierar tidiga varningstecken som kan leda till maskinfel. För varje detekterad varning pekar Lookout for Equipment ut vilka specifika sensorer som indikerar problemet och storleken på påverkan på den upptäckta händelsen.

Med ett uppdrag att lägga ML i händerna på varje utvecklare vill vi presentera ytterligare ett tillägg till Lookout for Equipment: en öppen källkod Python verktygslåda som gör det möjligt för utvecklare och datavetare att bygga, träna och distribuera Lookout for Equipment-modeller på samma sätt som du är van vid med Amazon SageMaker. Det här biblioteket är ett omslag ovanpå Lookout for Equipment boto3 python API och tillhandahålls för att kickstarta din resa med den här tjänsten. Om du har några förbättringsförslag eller buggar att rapportera, vänligen skicka ett problem mot verktygslådan GitHub repository.

I det här inlägget ger vi en steg-för-steg-guide för att använda Lookout for Equipment med öppen källkod i Python-verktygslådan från en SageMaker-anteckningsbok.

Miljöuppsättning

För att använda verktygslådan Lookout for Equipment med öppen källkod från en SageMaker-anteckningsbok måste vi ge SageMaker-anteckningsboken nödvändiga behörigheter för att anropa Lookout for Equipment API:er. För det här inlägget antar vi att du redan har skapat en SageMaker-anteckningsbokinstans. För instruktioner, se Kom igång med Amazon SageMaker Notebook Instances. Notebook-instansen associeras automatiskt med en exekveringsroll.

  1. För att hitta rollen som är kopplad till instansen, välj instansen på SageMaker-konsolen.
    Bygg, träna och distribuera Amazon Lookout for Equipment-modeller med hjälp av Python Toolbox PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.
  2. På nästa skärm, scrolla ner för att hitta AWS identitets- och åtkomsthantering (IAM) roll kopplad till instansen i Behörigheter och kryptering sektion.
  3. Välj rollen för att öppna IAM-konsolen.
    Bygg, träna och distribuera Amazon Lookout for Equipment-modeller med hjälp av Python Toolbox PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Därefter bifogar vi en integrerad policy till vår SageMaker IAM-roll.

  1. behörigheter fliken för rollen du öppnade, välj Lägg till inline policy.
    Bygg, träna och distribuera Amazon Lookout for Equipment-modeller med hjälp av Python Toolbox PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.
  2. JSON fliken anger du följande kod. Vi använder en jokerteckenåtgärd (lookoutequipment:*) för tjänsten för demoändamål. För verkliga användningsfall, tillhandahåll endast de nödvändiga behörigheterna för att köra lämpliga SDK API-anrop.
     { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "lookoutequipment:*" ], "Resource": "*" } ] }

  3. Välja Granska policy.
  4. Ange ett namn för policyn och skapa policyn.

Utöver den föregående inline-policyn, på samma IAM-roll, måste vi skapa en förtroenderelation så att Lookout for Equipment kan ta denna roll. SageMaker-rollen har redan rätt dataåtkomst till Amazon enkel lagringstjänst (Amazon S3); Genom att tillåta Lookout for Equipment att ta den här rollen säkerställs att den har samma tillgång till data som din bärbara dator. I din miljö kanske du redan har en specifik roll som säkerställer att Lookout for Equipment har tillgång till dina data, i vilket fall du inte behöver justera förtroendeförhållandet för denna gemensamma roll.

  1. Inuti vår SageMaker IAM roll på Förtroendeförhållanden fliken, välj Redigera förtroendeförhållandet.
  2. Under policydokumentet ersätter du hela policyn med följande kod:
     { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "lookoutequipment.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

  3. Välja Uppdatera förtroendepolicy.

Nu är vi alla redo att använda Lookout for Equipment-verktygslådan i vår SageMaker-anteckningsbokmiljö. Verktygslådan Lookout for Equipment är ett Python-paket med öppen källkod som gör det möjligt för datavetare och mjukvaruutvecklare att enkelt bygga och distribuera modeller för upptäckt av tidsserieavvikelser med hjälp av Lookout for Equipment. Låt oss titta på vad du kan uppnå lättare tack vare verktygslådan!

beroenden

I skrivande stund behöver verktygslådan följande installerat:

När du har uppfyllt dessa beroenden kan du installera och starta verktygslådan Lookout for Equipment med följande kommando från en Jupyter-terminal:

pip install lookoutequipment

Verktygslådan är nu redo att användas. I det här inlägget visar vi hur man använder verktygslådan genom att träna och distribuera en avvikelsedetekteringsmodell. En typisk ML-utvecklingslivscykel består av att bygga datamängden för utbildning, träna modellen, distribuera modellen och utföra slutsatser om modellen. Verktygslådan är ganska omfattande när det gäller funktionerna den tillhandahåller, men i det här inlägget fokuserar vi på följande funktioner:

  • Förbered datasetet
  • Träna en modell för avvikelsedetektering med hjälp av Lookout for Equipment
  • Bygg visualiseringar för din modellutvärdering
  • Konfigurera och starta en inferensschemaläggare
  • Visualisera resultat från schemaläggarens slutsatser

Låt oss förstå hur vi kan använda verktygslådan för var och en av dessa funktioner.

Förbered datasetet

Lookout for Equipment kräver att en datauppsättning skapas och tas in. Utför följande steg för att förbereda datamängden:

  1. Innan vi skapar datamängden måste vi ladda en exempeldatauppsättning och ladda upp den till en Amazon enkel lagringstjänst (Amazon S3) hink. I det här inlägget använder vi expander dataset:
    from lookoutequipment import dataset data = dataset.load_dataset(dataset_name='expander', target_dir='expander-data')
    dataset.upload_dataset('expander-data', bucket, prefix)

Den återvände data objekt representerar en ordbok som innehåller följande:

    • En träningsdata DataFrame
    • En etikett DataFrame
    • Utbildningens start- och slutdatum
    • Utvärderingens start- och slutdatum
    • En taggbeskrivning DataFrame

Tränings- och etikettdata laddas upp från målkatalogen till Amazon S3 på platsen för hinken/prefixet.

  1. Efter att ha laddat upp datasetet i S3 skapar vi ett objekt av LookoutEquipmentDataset klass som hanterar datamängden:
    lookout_dataset = dataset.LookoutEquipmentDataset( dataset_name='my_dataset', access_role_arn=role_arn, component_root_dir=f's3://{bucket}/{prefix}training-data'
    ) # creates the dataset
    lookout_dataset.create()

Smakämnen access_role_arn som tillhandahålls måste ha tillgång till S3-hinken där data finns. Du kan hämta rollen ARN för SageMaker-anteckningsbokförekomsten från föregående Miljöuppsättning och lägg till en IAM-policy för att ge åtkomst till din S3-hink. För mer information, se Skriva IAM-policyer: Hur man ger tillgång till en Amazon S3-hink.

Smakämnen component_root_dir parametern ska ange platsen i Amazon S3 där träningsdata lagras.

Efter att vi lanserat de föregående API:erna har vår datauppsättning skapats.

  1. Mata in data i datamängden:
    response = lookout_dataset.ingest_data(bucket, prefix + 'training-data/')

Nu när din data är tillgänglig på Amazon S3, är det bara en fråga om tre rader kod att skapa en datauppsättning och mata in data i den. Du behöver inte bygga ett långt JSON-schema manuellt; verktygslådan upptäcker din filstruktur och bygger den åt dig. När din data har intagits är det dags att gå över till träning!

Träna en modell för avvikelsedetektering

Efter att data har matats in i datamängden kan vi starta modellträningsprocessen. Se följande kod:

from lookoutequipment import model lookout_model = model.LookoutEquipmentModel(model_name='my_model', dataset_name='my_dataset') lookout_model.set_time_periods(data['evaluation_start'],data['evaluation_end'],data['training_start'],data['training_end'])
lookout_model.set_label_data(bucket=bucket,prefix=prefix + 'label-data/',access_role_arn=role_arn)
lookout_model.set_target_sampling_rate(sampling_rate='PT5M') #trigger training job
response = lookout_model.train() #poll every 5 minutes to check the status of the training job
lookout_model.poll_model_training(sleep_time=300)

Innan vi startar utbildningen måste vi specificera utbildnings- och utvärderingsperioderna i datasetet. Vi ställer också in platsen i Amazon S3 där märkta data lagras och ställer in samplingsfrekvensen till 5 minuter. Efter att vi startat utbildningen, poll_model_training kontrollerar träningsjobbets status var 5:e minut tills träningen är framgångsrik.

Utbildningsmodulen i verktygslådan Lookout for Equipment låter dig träna en modell med mindre än 10 rader kod. Den bygger alla strängar för begäran om längdskapande som behövs av lågnivå-API:et för din räkning, vilket tar bort behovet för dig att bygga långa, felbenägna JSON-dokument.

Efter att modellen har tränats kan vi antingen kontrollera resultaten under utvärderingsperioden eller konfigurera en inferensschemaläggare med hjälp av verktygslådan.

Utvärdera en utbildad modell

Efter att en modell har tränats, Beskrivmodell API från Lookout for Equipment registrerar de mätvärden som är kopplade till utbildningen. Detta API returnerar ett JSON-dokument med två intressefält för att plotta utvärderingsresultaten: labeled_ranges och predicted_ranges, som innehåller de kända respektive förutsagda anomalierna i utvärderingsintervallet. Verktygslådan tillhandahåller verktyg för att ladda dessa i en Pandas DataFrame istället:

from lookoutequipment import evaluation LookoutDiagnostics = evaluation.LookoutEquipmentAnalysis(model_name='my_model', tags_df=data['data']) predicted_ranges = LookoutDiagnostics.get_predictions()
labels_fname = os.path.join('expander-data', 'labels.csv')
labeled_range = LookoutDiagnostics.get_labels(labels_fname)

Fördelen med att ladda intervallen i en DataFrame är att vi kan skapa snygga visualiseringar genom att plotta en av de ursprungliga tidsseriesignalerna och lägga till en överlagring av de märkta och förutspådda anomala händelserna genom att använda TimeSeriesVisualization klass av verktygslådan:

from lookoutequipment import plot TSViz = plot.TimeSeriesVisualization(timeseries_df=data['data'], data_format='tabular')
TSViz.add_signal(['signal-001'])
TSViz.add_labels(labeled_range)
TSViz.add_predictions([predicted_ranges])
TSViz.add_train_test_split(data['evaluation_start'])
TSViz.add_rolling_average(60*24)
TSViz.legend_format = {'loc': 'upper left', 'framealpha': 0.4, 'ncol': 3}
fig, axis = TSViz.plot()

Dessa få rader kod genererar en plot med följande funktioner:

  • Ett linjediagram för den valda signalen; den del som används för att träna modellen visas i blått medan utvärderingsdelen är i grått
  • Det rullande medelvärdet visas som en tunn röd linje över tidsserien
  • Etiketterna visas i ett grönt band märkt "Kända anomalier" (som standard)
  • De förutsagda händelserna visas i ett rött band märkt "Detekterade händelser"

Bygg, träna och distribuera Amazon Lookout for Equipment-modeller med hjälp av Python Toolbox PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Verktygslådan utför allt det tunga lyftet med att lokalisera, ladda och analysera JSON-filerna samtidigt som den tillhandahåller färdiga visualiseringar som ytterligare minskar tiden för att få insikter från dina anomalidetekteringsmodeller. I detta skede låter verktygslådan dig fokusera på att tolka resultaten och vidta åtgärder för att leverera direkt affärsvärde till dina slutanvändare. Utöver dessa tidsserievisualiseringar tillhandahåller SDK andra plotter såsom en histogramjämförelse av värdena på dina signaler mellan normala och onormala tider. För att lära dig mer om de andra visualiseringsfunktionerna du kan använda direkt ur lådan, se Håll utkik efter dokumentation för utrustningsverktygslåda.

Schemalägg slutledning

Låt oss se hur vi kan schemalägga slutsatser med hjälp av verktygslådan:

from lookout import scheduler #prepare dummy inference data
dataset.prepare_inference_data( root_dir='expander-data', sample_data_dict=data, bucket=bucket, prefix=prefix
) #setup the scheduler
lookout_scheduler = scheduler.LookoutEquipmentScheduler(scheduler_name='my_scheduler',model_name='my_model')
scheduler_params = { 'input_bucket': bucket, 'input_prefix': prefix + 'inference-data/input/', 'output_bucket': bucket, 'output_prefix': prefix + 'inference-data/output/', 'role_arn': role_arn, 'upload_frequency': 'PT5M', 'delay_offset': None, 'timezone_offset': '+00:00', 'component_delimiter': '_', 'timestamp_format': 'yyyyMMddHHmmss' } lookout_scheduler.set_parameters(**scheduler_params)
response = lookout_scheduler.create()

Denna kod skapar en schemaläggare som bearbetar en fil var 5:e minut (matchar uppladdningsfrekvensen som ställts in när schemaläggaren konfigureras). Efter 15 minuter eller så borde vi ha några resultat tillgängliga. För att få dessa resultat från schemaläggaren i en Pandas DataFrame behöver vi bara köra följande kommando:

results_df = lookout_scheduler.get_predictions()

Härifrån kan vi också plotta funktionens betydelse för en förutsägelse med hjälp av visualiserings-API:erna i verktygslådan:

event_details = pd.DataFrame(results_df.iloc[0, 1:]).reset_index()
fig, ax = plot.plot_event_barh(event_details)

Den producerar följande visualisering av funktionsvikt på exempeldata.

Bygg, träna och distribuera Amazon Lookout for Equipment-modeller med hjälp av Python Toolbox PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Verktygslådan tillhandahåller också ett API för att stoppa schemaläggaren. Se följande kodavsnitt:

scheduler.stop()

Städa upp

För att ta bort alla artefakter som skapats tidigare kan vi anropa delete_dataset API med namnet på vår datauppsättning:

dataset.delete_dataset(dataset_name='my_dataset', delete_children=True, verbose=True)

Slutsats

När vi pratar med industri- och tillverkningskunder är en vanlig utmaning vi hör när det gäller att dra fördel av AI och ML den stora mängden anpassning och specifikt utvecklings- och datavetenskapligt arbete som krävs för att få tillförlitliga och genomförbara resultat. Att utbilda modeller för avvikelsedetektering och få handlingsbar förvarning för många olika industriella maskiner är en förutsättning för att minska underhållsinsatser, minska omarbeten eller avfall, öka produktkvaliteten och förbättra den totala utrustningseffektiviteten (OEE) eller produktlinjer. Fram till nu har detta krävt en enorm mängd specifikt utvecklingsarbete, vilket är svårt att skala och underhålla över tid.

Amazon Applied AI-tjänster som Lookout for Equipment gör det möjligt för tillverkare att bygga AI-modeller utan att ha tillgång till ett mångsidigt team av datavetare, dataingenjörer och processingenjörer. Nu, med Lookout for Equipment-verktygslådan, kan dina utvecklare ytterligare minska den tid som behövs för att utforska insikter i dina tidsseriedata och vidta åtgärder. Denna verktygslåda ger ett lättanvänt, utvecklarvänligt gränssnitt för att snabbt bygga modeller för avvikelsedetektering med Lookout for Equipment. Verktygslådan är öppen källkod och all SDK-kod kan hittas på amazon-lookout-for-equipment-python-sdk GitHub repo. Den finns också som en PyPi-paket.

Det här inlägget täcker bara några av de viktigaste API:erna. Intresserade läsare kan kolla in verktygslådan dokumentation för att titta på mer avancerade funktioner i verktygslådan. Ge det ett försök och låt oss veta vad du tycker i kommentarerna!


Om författarna

Bygg, träna och distribuera Amazon Lookout for Equipment-modeller med hjälp av Python Toolbox PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.Vikesh Pandey är en Machine Learning Specialist Solutions Architect på AWS, som hjälper kunder i Storbritannien och EMEA-regionen att designa och bygga ML-lösningar. Utanför jobbet tycker Vikesh om att prova olika maträtter och utöva utomhussporter.

Bygg, träna och distribuera Amazon Lookout for Equipment-modeller med hjälp av Python Toolbox PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.Ioan Catana är en lösningsarkitekt för artificiell intelligens och maskininlärning på AWS. Han hjälper kunder att utveckla och skala sina ML-lösningar i AWS Cloud. Ioan har över 20 års erfarenhet, mestadels inom mjukvaruarkitekturdesign och molnteknik.

Bygg, träna och distribuera Amazon Lookout for Equipment-modeller med hjälp av Python Toolbox PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.Michael Hoarau är en AI/ML Specialist Solutions Architect på AWS som alternerar mellan datavetare och maskininlärningsarkitekt, beroende på ögonblicket. Han brinner för att föra kraften i AI/ML till sina industriella kunders verkstadsgolv och har arbetat med ett brett spektrum av ML-användningsfall, allt från avvikelsedetektering till prediktiv produktkvalitet eller tillverkningsoptimering. När han inte hjälper kunder att utveckla de näst bästa maskininlärningsupplevelserna tycker han om att observera stjärnorna, resa eller spela piano.

Tidsstämpel:

Mer från AWS maskininlärning