Erstellen, trainieren und implementieren Sie Amazon Lookout for Equipment-Modelle mit der Python Toolbox PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Erstellen, trainieren und implementieren Sie Amazon Lookout for Equipment-Modelle mit der Python Toolbox

Vorausschauende Wartung kann ein wirksames Mittel sein, um Ausfälle von Industriemaschinen und teure Ausfallzeiten zu verhindern, indem der Zustand Ihrer Ausrüstung proaktiv überwacht wird, sodass Sie auf Anomalien aufmerksam gemacht werden, bevor es zu Ausfällen der Ausrüstung kommt. Die Installation von Sensoren und der notwendigen Infrastruktur für Datenkonnektivität, -speicherung, -analyse und -benachrichtigung sind die grundlegenden Elemente für die Ermöglichung vorausschauender Wartungslösungen. Doch selbst nach der Installation der Ad-hoc-Infrastruktur verwenden viele Unternehmen grundlegende Datenanalysen und einfache Modellierungsansätze, die häufig ineffektiv sind, um Probleme früh genug zu erkennen, um Ausfallzeiten zu vermeiden. Außerdem kann die Implementierung einer Lösung für maschinelles Lernen (ML) für Ihre Geräte schwierig und zeitaufwändig sein.

Mit der Amazon Lookout für Ausrüstungkönnen Sie Sensordaten für Ihre Industrieanlagen automatisch analysieren, um abnormales Maschinenverhalten zu erkennen – ohne dass ML-Erfahrung erforderlich ist. Das bedeutet, dass Sie Geräteanomalien schnell und präzise erkennen, Probleme schnell diagnostizieren und Maßnahmen ergreifen können, um teure Ausfallzeiten zu reduzieren.

Lookout for Equipment analysiert die Daten Ihrer Sensoren und Systeme, wie z. B. Druck, Durchflussrate, Drehzahl, Temperatur und Leistung, um basierend auf Ihren Daten automatisch ein für Ihre Ausrüstung spezifisches Modell zu trainieren. Es verwendet Ihr einzigartiges ML-Modell, um eingehende Sensordaten in Echtzeit zu analysieren und Frühwarnzeichen zu identifizieren, die zu Maschinenausfällen führen könnten. Für jede erkannte Warnung zeigt Lookout for Equipment an, welche spezifischen Sensoren das Problem anzeigen und wie groß die Auswirkungen auf das erkannte Ereignis sind.

Mit der Mission, ML in die Hände aller Entwickler zu legen, möchten wir ein weiteres Add-on für Lookout for Equipment vorstellen: an Open-Source-Python-Toolbox Damit können Entwickler und Data Scientists Lookout for Equipment-Modelle ähnlich wie gewohnt erstellen, trainieren und bereitstellen Amazon Sage Maker. Diese Bibliothek ist ein Wrapper auf der boto3-Python-API von Lookout for Equipment und wird bereitgestellt, um Ihre Reise mit diesem Service anzukurbeln. Sollten Sie Verbesserungsvorschläge oder Fehler zu melden haben, reichen Sie bitte ein Problem gegen die Toolbox ein GitHub-Repository.

In diesem Beitrag stellen wir eine Schritt-für-Schritt-Anleitung für die Verwendung der Open-Source-Python-Toolbox von Lookout for Equipment in einem SageMaker-Notebook bereit.

Umgebung einrichten

Um die Open-Source-Toolbox Lookout for Equipment von einem SageMaker-Notebook aus verwenden zu können, müssen wir dem SageMaker-Notebook die erforderlichen Berechtigungen zum Aufrufen von Lookout for Equipment-APIs erteilen. Für diesen Beitrag gehen wir davon aus, dass Sie bereits eine SageMaker-Notebook-Instanz erstellt haben. Anweisungen finden Sie unter Erste Schritte mit Amazon SageMaker Notebook-Instances. Die Notebook-Instance wird automatisch einer Ausführungsrolle zugeordnet.

  1. Um die Rolle zu finden, die der Instanz zugeordnet ist, wählen Sie die Instanz in der SageMaker-Konsole aus.
    Erstellen, trainieren und implementieren Sie Amazon Lookout for Equipment-Modelle mit der Python Toolbox PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.
  2. Scrollen Sie auf dem nächsten Bildschirm nach unten, um die zu finden AWS Identity and Access Management and (IAM)-Rolle, die der Instance in der zugewiesen ist Berechtigungen und Verschlüsselung .
  3. Wählen Sie die Rolle aus, um die IAM-Konsole zu öffnen.
    Erstellen, trainieren und implementieren Sie Amazon Lookout for Equipment-Modelle mit der Python Toolbox PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Als Nächstes hängen wir eine Inline-Richtlinie an unsere SageMaker-IAM-Rolle an.

  1. Auf dem Berechtigungen Registerkarte der geöffneten Rolle wählen Inline-Richtlinie hinzufügen.
    Erstellen, trainieren und implementieren Sie Amazon Lookout for Equipment-Modelle mit der Python Toolbox PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.
  2. Auf dem JSON geben Sie den folgenden Code ein. Wir verwenden eine Joker-Aktion (lookoutequipment:*) für den Dienst zu Demozwecken. Geben Sie für echte Anwendungsfälle nur die erforderlichen Berechtigungen zum Ausführen der entsprechenden SDK-API-Aufrufe an.
     { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "lookoutequipment:*" ], "Resource": "*" } ] }

  3. Auswählen Richtlinien überprüfen.
  4. Geben Sie einen Namen für die Richtlinie an und erstellen Sie die Richtlinie.

Zusätzlich zur vorangehenden Inline-Richtlinie müssen wir für dieselbe IAM-Rolle eine Vertrauensstellung einrichten, damit Lookout for Equipment diese Rolle übernehmen kann. Die SageMaker-Rolle verfügt bereits über den entsprechenden Datenzugriff Amazon Simple Storage-Service (Amazon S3); Durch die Übernahme dieser Rolle durch Lookout for Equipment wird sichergestellt, dass es denselben Zugriff auf die Daten hat wie Ihr Notebook. In Ihrer Umgebung haben Sie möglicherweise bereits eine bestimmte Rolle, die sicherstellt, dass Lookout for Equipment Zugriff auf Ihre Daten hat. In diesem Fall müssen Sie die Vertrauensbeziehung dieser gemeinsamen Rolle nicht anpassen.

  1. Innerhalb unserer SageMaker-IAM-Rolle auf der Vertrauensbeziehungen Tab, wählen Sie Vertrauensbeziehung bearbeiten.
  2. Ersetzen Sie unter dem Richtliniendokument die gesamte Richtlinie durch den folgenden Code:
     { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "lookoutequipment.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

  3. Auswählen Vertrauensrichtlinie aktualisieren.

Jetzt können wir die Lookout for Equipment-Toolbox in unserer SageMaker-Notebook-Umgebung verwenden. Die Lookout for Equipment-Toolbox ist ein Open-Source-Python-Paket, mit dem Datenwissenschaftler und Softwareentwickler mithilfe von Lookout for Equipment auf einfache Weise Modelle zur Erkennung von Zeitreihenanomalien erstellen und bereitstellen können. Schauen wir uns an, was Sie dank der Toolbox einfacher erreichen können!

Abhängigkeiten

Zum Zeitpunkt des Schreibens muss für die Toolbox Folgendes installiert sein:

Nachdem Sie diese Abhängigkeiten erfüllt haben, können Sie die Lookout for Equipment-Toolbox mit dem folgenden Befehl von einem Jupyter-Terminal aus installieren und starten:

pip install lookoutequipment

Die Toolbox ist nun einsatzbereit. In diesem Beitrag zeigen wir, wie Sie die Toolbox verwenden, indem Sie ein Anomalieerkennungsmodell trainieren und bereitstellen. Ein typischer ML-Entwicklungslebenszyklus besteht aus dem Erstellen des Datasets für das Training, dem Trainieren des Modells, dem Bereitstellen des Modells und dem Durchführen von Rückschlüssen auf das Modell. Die Toolbox ist in Bezug auf die bereitgestellten Funktionalitäten recht umfangreich, aber in diesem Beitrag konzentrieren wir uns auf die folgenden Funktionen:

  • Bereiten Sie den Datensatz vor
  • Trainieren Sie ein Anomalieerkennungsmodell mit Lookout for Equipment
  • Erstellen Sie Visualisierungen für Ihre Modellbewertung
  • Konfigurieren und starten Sie einen Inferenzplaner
  • Visualisieren Sie die Ergebnisse der Scheduler-Inferenzen

Lassen Sie uns verstehen, wie wir die Toolbox für jede dieser Funktionen verwenden können.

Bereiten Sie den Datensatz vor

Für Lookout for Equipment muss ein Datensatz erstellt und aufgenommen werden. Führen Sie die folgenden Schritte aus, um das Dataset vorzubereiten:

  1. Bevor wir das Dataset erstellen, müssen wir ein Beispiel-Dataset laden und in ein hochladen Amazon Simple Storage-Service (Amazon S3) Eimer. In diesem Beitrag verwenden wir die expander Datensatz:
    from lookoutequipment import dataset data = dataset.load_dataset(dataset_name='expander', target_dir='expander-data')
    dataset.upload_dataset('expander-data', bucket, prefix)

Die zurückgekehrte data Objekt stellt ein Wörterbuch dar, das Folgendes enthält:

    • Ein Trainingsdaten-DataFrame
    • A beschriftet DataFrame
    • Die Start- und Enddaten der Schulung
    • Die Start- und Enddatumszeiten der Auswertung
    • Eine Tag-Beschreibung DataFrame

Die Trainings- und Bezeichnungsdaten werden aus dem Zielverzeichnis in Amazon S3 am Bucket-/Präfix-Speicherort hochgeladen.

  1. Nach dem Hochladen des Datensatzes in S3 erstellen wir ein Objekt von LookoutEquipmentDataset Klasse, die den Datensatz verwaltet:
    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()

Das access_role_arn muss Zugriff auf den S3-Bucket haben, in dem die Daten vorhanden sind. Sie können den Rollen-ARN der SageMaker-Notebookinstanz aus der vorherigen abrufen Umgebung einrichten Abschnitt und fügen Sie eine IAM-Richtlinie hinzu, um Zugriff auf Ihren S3-Bucket zu gewähren. Weitere Informationen finden Sie unter Schreiben von IAM-Richtlinien: Gewähren des Zugriffs auf einen Amazon S3-Bucket.

Das component_root_dir -Parameter sollte den Speicherort in Amazon S3 angeben, an dem die Trainingsdaten gespeichert sind.

Nachdem wir die vorherigen APIs gestartet haben, wurde unser Datensatz erstellt.

  1. Nehmen Sie die Daten in das Dataset auf:
    response = lookout_dataset.ingest_data(bucket, prefix + 'training-data/')

Jetzt, da Ihre Daten auf Amazon S3 verfügbar sind, sind das Erstellen eines Datensatzes und das Einlesen der darin enthaltenen Daten nur noch eine Frage von drei Codezeilen. Sie müssen kein langwieriges JSON-Schema manuell erstellen; Die Toolbox erkennt Ihre Dateistruktur und baut sie für Sie auf. Nachdem Ihre Daten aufgenommen wurden, ist es an der Zeit, mit dem Training fortzufahren!

Trainieren Sie ein Anomalieerkennungsmodell

Nachdem die Daten in den Datensatz aufgenommen wurden, können wir mit dem Modelltraining beginnen. Siehe folgenden Code:

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)

Bevor wir das Training starten, müssen wir die Trainings- und Evaluierungszeiträume innerhalb des Datensatzes angeben. Wir legen auch den Speicherort in Amazon S3 fest, an dem die gekennzeichneten Daten gespeichert werden, und stellen die Abtastrate auf 5 Minuten ein. Nachdem wir das Training gestartet haben, wird die poll_model_training fragt den Trainingsauftragsstatus alle 5 Minuten ab, bis das Training erfolgreich ist.

Mit dem Trainingsmodul der Lookout for Equipment-Toolbox können Sie ein Modell mit weniger als 10 Codezeilen trainieren. Es erstellt in Ihrem Namen alle Anforderungszeichenfolgen für die Erstellung von Längen, die von der Low-Level-API benötigt werden, sodass Sie keine langen, fehleranfälligen JSON-Dokumente erstellen müssen.

Nachdem das Modell trainiert wurde, können wir entweder die Ergebnisse über den Evaluierungszeitraum überprüfen oder mithilfe der Toolbox einen Inferenzplaner konfigurieren.

Evaluieren Sie ein trainiertes Modell

Nachdem ein Modell trainiert wurde, wird die BeschreibenModell Die API von Lookout for Equipment zeichnet die mit dem Training verbundenen Metriken auf. Diese API gibt ein JSON-Dokument mit zwei Interessenfeldern zurück, um die Bewertungsergebnisse darzustellen: labeled_ranges und predicted_ranges, die die bekannten bzw. vorhergesagten Anomalien im Bewertungsbereich enthalten. Die Toolbox bietet Dienstprogramme, um diese stattdessen in einen Pandas DataFrame zu laden:

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)

Der Vorteil des Ladens der Bereiche in einen DataFrame besteht darin, dass wir schöne Visualisierungen erstellen können, indem wir eines der ursprünglichen Zeitreihensignale zeichnen und eine Überlagerung der gekennzeichneten und vorhergesagten anomalen Ereignisse hinzufügen, indem wir die verwenden TimeSeriesVisualization Klasse der Toolbox:

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()

Diese wenigen Codezeilen erzeugen ein Diagramm mit den folgenden Merkmalen:

  • Ein Liniendiagramm für das ausgewählte Signal; Der zum Trainieren des Modells verwendete Teil wird in Blau angezeigt, während der Evaluierungsteil in Grau dargestellt wird
  • Der gleitende Durchschnitt erscheint als dünne rote Linie, die über die Zeitreihe gelegt wird
  • Die Labels werden in einem grünen Band mit der Bezeichnung „Bekannte Anomalien“ (standardmäßig) angezeigt.
  • Die vorhergesagten Ereignisse werden in einem roten Band mit der Bezeichnung „Erkannte Ereignisse“ angezeigt.

Erstellen, trainieren und implementieren Sie Amazon Lookout for Equipment-Modelle mit der Python Toolbox PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Die Toolbox übernimmt die gesamte Schwerarbeit beim Auffinden, Laden und Analysieren der JSON-Dateien und bietet gleichzeitig gebrauchsfertige Visualisierungen, die die Zeit zum Gewinnen von Erkenntnissen aus Ihren Anomalieerkennungsmodellen weiter verkürzen. In dieser Phase können Sie sich mit der Toolbox darauf konzentrieren, die Ergebnisse zu interpretieren und Maßnahmen zu ergreifen, um Ihren Endbenutzern einen direkten Geschäftswert zu bieten. Zusätzlich zu diesen Zeitreihen-Visualisierungen bietet das SDK weitere Diagramme, z. B. einen Histogrammvergleich der Werte Ihrer Signale zwischen normalen und anormalen Zeiten. Weitere Informationen zu den anderen Visualisierungsfunktionen, die Sie sofort verwenden können, finden Sie unter Suchen Sie nach der Dokumentation zur Equipment-Toolbox.

Zeitplan-Inferenz

Mal sehen, wie wir Inferenzen mit der Toolbox planen können:

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()

Dieser Code erstellt einen Planer, der alle 5 Minuten eine Datei verarbeitet (entsprechend der bei der Konfiguration des Planers festgelegten Upload-Häufigkeit). Nach ungefähr 15 Minuten sollten wir einige Ergebnisse zur Verfügung haben. Um diese Ergebnisse vom Scheduler in einem Pandas DataFrame zu erhalten, müssen wir nur den folgenden Befehl ausführen:

results_df = lookout_scheduler.get_predictions()

Von hier aus können wir auch die Feature-Wichtigkeit für eine Vorhersage mithilfe der Visualisierungs-APIs der Toolbox darstellen:

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

Es erzeugt die folgende Merkmalwichtigkeitsvisualisierung für die Beispieldaten.

Erstellen, trainieren und implementieren Sie Amazon Lookout for Equipment-Modelle mit der Python Toolbox PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Die Toolbox bietet auch eine API zum Stoppen des Schedulers. Siehe das folgende Code-Snippet:

scheduler.stop()

Aufräumen

Um alle zuvor erstellten Artefakte zu löschen, können wir die aufrufen delete_dataset API mit dem Namen unseres Datensatzes:

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

Zusammenfassung

Wenn wir mit Industrie- und Fertigungskunden sprechen, ist eine häufige Herausforderung bei der Nutzung von KI und ML die schiere Menge an Anpassung und spezifischer Entwicklungs- und Data-Science-Arbeit, die erforderlich ist, um zuverlässige und umsetzbare Ergebnisse zu erhalten. Das Trainieren von Anomalieerkennungsmodellen und das Erhalten umsetzbarer Vorwarnungen für viele verschiedene Industriemaschinen ist eine Voraussetzung, um den Wartungsaufwand zu reduzieren, Nacharbeiten oder Ausschuss zu reduzieren, die Produktqualität zu steigern und die Gesamtanlageneffizienz (OEE) oder Produktlinien zu verbessern. Bisher erforderte dies eine enorme Menge an spezifischer Entwicklungsarbeit, die schwer zu skalieren und langfristig zu warten ist.

Angewandte KI-Dienste von Amazon wie Lookout for Equipment ermöglichen es Herstellern, KI-Modelle zu erstellen, ohne Zugriff auf ein vielseitiges Team von Datenwissenschaftlern, Dateningenieuren und Prozessingenieuren zu haben. Mit der Lookout for Equipment-Toolbox können Ihre Entwickler jetzt die Zeit weiter reduzieren, die erforderlich ist, um Einblicke in Ihre Zeitreihendaten zu gewinnen und Maßnahmen zu ergreifen. Diese Toolbox bietet eine benutzerfreundliche, entwicklerfreundliche Oberfläche zum schnellen Erstellen von Anomalieerkennungsmodellen mit Lookout for Equipment. Die Toolbox ist Open Source und der gesamte SDK-Code ist auf der zu finden amazon-lookout-for-equipment-python-sdk GitHub-Repository. Es ist auch erhältlich als PyPi-Paket.

Dieser Beitrag behandelt nur einige der wichtigsten APIs. Interessierte Leser können sich das ansehen Toolbox-Dokumentation um sich erweiterte Funktionen der Toolbox anzusehen. Probieren Sie es aus und teilen Sie uns Ihre Meinung in den Kommentaren mit!


Über die Autoren

Erstellen, trainieren und implementieren Sie Amazon Lookout for Equipment-Modelle mit der Python Toolbox PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.Vikesh Pandey ist Machine Learning Specialist Specialist Solutions Architect bei AWS und hilft Kunden in Großbritannien und der gesamten EMEA-Region beim Design und Aufbau von ML-Lösungen. Außerhalb der Arbeit probiert Vikesh gerne verschiedene Küchen aus und treibt Sport im Freien.

Erstellen, trainieren und implementieren Sie Amazon Lookout for Equipment-Modelle mit der Python Toolbox PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.Ioan Catana ist Lösungsarchitekt für künstliche Intelligenz und maschinelles Lernen bei AWS. Er hilft Kunden bei der Entwicklung und Skalierung ihrer ML-Lösungen in der AWS Cloud. Ioan verfügt über mehr als 20 Jahre Erfahrung, hauptsächlich in den Bereichen Softwarearchitekturdesign und Cloud-Engineering.

Erstellen, trainieren und implementieren Sie Amazon Lookout for Equipment-Modelle mit der Python Toolbox PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.Michael Hoarau ist AI/ML Specialist Solutions Architect bei AWS, der je nach Moment zwischen Data Scientist und Machine Learning Architect wechselt. Er ist leidenschaftlich daran interessiert, die Leistungsfähigkeit von KI/ML in die Produktionsstätten seiner Industriekunden zu bringen, und hat an einer Vielzahl von ML-Anwendungsfällen gearbeitet, die von der Anomalieerkennung bis hin zur prädiktiven Produktqualität oder Fertigungsoptimierung reichen. Wenn er Kunden nicht dabei hilft, die nächstbesten Erfahrungen mit maschinellem Lernen zu entwickeln, beobachtet er gerne die Sterne, reist oder spielt Klavier.

Zeitstempel:

Mehr von AWS Maschinelles Lernen