Durchführen von Machine Learning-Inferenzen - AWS IoT Greengrass

AWS IoT Greengrass Version 1 trat am 30. Juni 2023 in die erweiterte Lebensphase ein. Weitere Informationen finden Sie in der AWS IoT Greengrass V1 Wartungsrichtlinie. Nach diesem Datum AWS IoT Greengrass V1 werden keine Updates mehr veröffentlicht, die Funktionen, Verbesserungen, Bugfixes oder Sicherheitspatches bieten. Geräte, die auf laufen, werden AWS IoT Greengrass V1 nicht gestört und funktionieren weiterhin und stellen eine Verbindung zur Cloud her. Wir empfehlen Ihnen dringend, zu migrieren AWS IoT Greengrass Version 2, da dies wichtige neue Funktionen und Unterstützung für zusätzliche Plattformen bietet.

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Durchführen von Machine Learning-Inferenzen

Diese Funktion ist verfügbar fürAWS IoT GreengrassCore v1.6 oder höher.

Sie können mit AWS IoT Greengrass Machine Learning (ML)-Inferenz am Edge-Standort mit lokal generierten Daten mithilfe von Cloud-geschulten Modellen durchführen. Sie können von der niedrigen Latenz und Kosteneinsparungen der Ausführung von lokaler Inferenz profitieren und trotzdem die Cloud-Rechenleistung für Schulungsmodelle und komplexe Verarbeitung nutzen.

Hinweise zur Durchführung von lokaler Inferenz finden Sie unter So konfigurieren Sie Machine Learning-Inferenz mit der AWS Management Console.

Funktionsweise der AWS IoT Greengrass-ML-Inferenz

Sie können Ihre Inferenzmodelle überall schulen und lokal bereitstellenMachine Learning-RessourcenIn einer Greengrass-Gruppe greifen Sie über die Greengrass Lambda-Funktionen zu. Sie können beispielsweise Deep-Learning-Modelle in erstellen und schulenSageMakerund setze sie in deinem Greengrass-Kern ein. Anschließend können Ihre Lambda-Funktionen die lokalen Modelle verwenden, um Inferenz auf verbundene Geräte durchzuführen und neue Schulungsdaten zurück in die Cloud zu senden.

Das folgende Diagramm zeigt den AWS IoT Greengrass-ML-Inferenz-Workflow.

Komponenten des Machine Learning-Workflows und des Informationsflusses zwischen dem Core-GerätAWS IoT GreengrassService und Cloud-geschulte Modelle.

Die AWS IoT Greengrass-ML-Inferenz vereinfacht die einzelnen Schritte des ML-Workflows, darunter:

  • Die Entwicklung und Bereitstellung von ML-Framework-Prototypen.

  • Der Zugriff auf Cloud-geschulte Modelle und die deren Bereitstellung in Greengrass Core-Geräten.

  • Erstellen von Inferenz-Apps, die auf Hardware-Beschleuniger (z. B. GPUs und FPGAs) als lokale Ressourcen zugreifen können.

Machine Learning-Ressourcen

Machine Learning-Ressourcen stehen für Cloud-geschulte Inferenzmodelle, die in einerAWS IoT GreengrassCore-Wert. Um Machine Learning-Ressourcen bereitzustellen, fügen Sie die Ressourcen zuerst einer Greengrass-Gruppe hinzu und definieren dann, wie Lambda-Funktionen in der Gruppe darauf zugreifen können. Während der GruppenbereitstellungAWS IoT Greengrassruft die Quellmodellpakete aus der Cloud ab und extrahiert sie in Verzeichnisse innerhalb des Lambda-Laufzeit-Namespace. Anschließend verwenden Greengrass Lambda-Funktionen die lokal bereitgestellten Modelle für die Durchführung der Inferenz.

Um ein lokal bereitgestelltes Modell zu aktualisieren, aktualisieren Sie zuerst das Quellmodell (in der Cloud), das mit der Machine Learning-Ressource übereinstimmt, und stellen Sie dann die Gruppe bereit. Während der Bereitstellung überprüft AWS IoT Greengrass die Quelle auf Änderungen. Wenn Änderungen erkannt werden, dann aktualisiert AWS IoT Greengrass das lokale Modell.

Unterstützte Modellquellen

AWS IoT Greengrassunterstützt SageMaker und Amazon S3 S3-Modellquellen für Machine Learning-Ressourcen.

Die folgenden Anforderungen gelten für Modellquellen:

  • S3-Eimer, in denen Ihr SageMaker Und Amazon S3 S3-Modellquellen dürfen nicht mit SSE-C verschlüsselt werden. Bei Buckets mit serverseitiger VerschlüsselungAWS IoT GreengrassDerzeit unterstützt die ML-Inferenz nur die SSE-S3- oder SSE-KMS-Verschlüsselungsoptionen. Weitere Informationen zu serverseitigen Verschlüsselungsoptionen finden Sie unterSchützen von Daten mithilfe serverseitiger VerschlüsselungimAmazon Simple Storage Service — Benutzerhandbuchaus.

  • Die Namen von S3-Buckets, die Ihre speichern SageMaker Und Amazon S3 S3-Modellquellen dürfen keine Perioden (.) enthalten. Weitere Informationen finden Sie in der Regel über die Verwendung von virtuell gehosteten Buckets mit SSL inRegeln für die Bucket-BenennungimAmazon Simple Storage Service — Benutzerhandbuchaus.

  • Service-LevelAWS-RegionFür beide muss Unterstützung verfügbar seinAWS IoT GreengrassundSageMakeraus. Derzeit istAWS IoT Greengrassunterstützt SageMaker Modelle in den folgenden Regionen:

    • USA Ost (Ohio)

    • USA Ost (Nord-Virginia)

    • USA West (Oregon)

    • Asia Pacific (Mumbai)

    • Asia Pacific (Seoul)

    • Asien-Pazifik (Singapur)

    • Asien-Pazifik (Sydney)

    • Asien-Pazifik (Tokio)

    • Europe (Frankfurt)

    • Europa (Irland)

    • Europe (London)

  • AWS IoT Greengrass muss über read-Berechtigungen für die Modellquelle, wie in den folgenden Abschnitten beschrieben, verfügen.

SageMaker

AWS IoT Greengrassunterstützt Modelle, die als gespeichert werden SageMaker Schulungsaufträge SageMaker ist ein vollständig verwalteter ML-Service, mit dem Sie Modelle mit vordefinierten oder benutzerdefinierten Algorithmen erstellen und schulen können. Weitere Informationen finden Sie unterWas ist SageMaker?imSageMaker-Entwicklerhaus.

Wenn Sie Ihre konfiguriert haben SageMaker environment vonBucket erstellendessen Name enthältsagemaker, dannAWS IoT Greengrasshat ausreichende Erlaubnis, auf Ihr zuzugreifen SageMaker Schulungsaufträge Die verwaltete Richtlinie AWSGreengrassResourceAccessRolePolicy erlaubt den Zugriff auf Buckets, deren Name die Zeichenfolge sagemaker enthält. Diese Richtlinie ist der Greengrass-Servicerolle angefügt.

Andernfalls müssen Sie AWS IoT Greengrass die read-Berechtigung für den Bucket gewähren, in dem Ihr Schulungsauftrag gespeichert ist. Betten Sie zu diesem Zweck die folgende eingebundene Richtlinie in die Greengrass-Servicerolle ein. Sie können mehrere Bucket-ARNs in einer Liste anzeigen.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::my-bucket-name" ] } ] }
Amazon S3

AWS IoT Greengrassunterstützt Modelle, die in Amazon S3 als gespeichert werdentar.gzoder.zipDateien.

So aktivieren SieAWS IoT GreengrassUm auf Modelle zugreifen zu können, die in Amazon S3 S3-Buckets gespeichert sind, müssen Sie gewährenAWS IoT Greengrass readMit der Berechtigung für den Zugriff auf die BucketseinsVon den folgenden:

  • Speichern Sie Ihr Modell in einem Bucket, dessen Name greengrass enthält.

    Die verwaltete Richtlinie AWSGreengrassResourceAccessRolePolicy erlaubt den Zugriff auf Buckets, deren Name die Zeichenfolge greengrass enthält. Diese Richtlinie ist der Greengrass-Servicerolle angefügt.

     

  • Betten Sie eine eingebundene Richtlinie in die Greengrass-Service-Rolle ein.

    Wenn Ihr Bucket-Name nicht greengrass enthält, fügen Sie die folgende eingebundene Richtlinien der Service-Rolle hinzu. Sie können mehrere Bucket-ARNs in einer Liste anzeigen.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::my-bucket-name" ] } ] }

    Weitere Informationen finden Sie unterEinbetten von eingebundenen RichtlinienimIAM User Guideaus.

Voraussetzungen

Die folgenden Anforderungen gelten für die Erstellung und Verwendung von Machine Learning-Ressourcen:

  • Sie müssen verwendenAWS IoT GreengrassCore v1.6 oder höher.

  • Benutzerdefinierte Lambda-Funktionen können ausführenreadoderread and writeOperationen auf der Ressource. Berechtigungen für andere Operationen sind nicht verfügbar. Der Containerisierungsmodus von verbundenen Lambda-Funktionen bestimmt, wie Sie Zugriffsberechtigungen festlegen. Weitere Informationen finden Sie unter Zugriff auf Machine-Learning-Ressourcen über Lambda-Funktionen.

  • Sie müssen den vollständigen Pfad der Ressource im Betriebssystem des Core-Geräts bereitstellen.

  • Der Name oder die ID einer Ressource kann maximal 128 Zeichen umfassen und muss dem Muster [a-zA-Z0-9:_-]+ entsprechen.

Laufzeiten und Bibliotheken für ML-Inferenz

Sie können die folgenden ML-Laufzeiten und -Bibliotheken mit AWS IoT Greengrass verwenden.

Diese Laufzeiten und Bibliotheken können auf den Plattformen NVIDIA Jetson TX2, Intel Atom und Raspberry Pi installiert werden. Informationen zum Download finden Sie unter Unterstützte Machine Learning-Laufzeiten und -Bibliotheken. Sie können sie direkt auf Ihrem Core-Gerät installieren.

Lesen Sie die folgenden Informationen zu Kompatibilität und Einschränkungen.

SageMaker Neo Deep Learning Runtime

Sie können das SageMaker Neo Deep Learning Runtime für die Durchführung von Inferenzen mit optimierten Machine Learning-Modellen aufAWS IoT GreengrassGeräte. Diese Modelle werden mithilfe der SageMaker Der Neo Deep Learning Compiler zur Verbesserung der Machine Learning-Inferenz-Voraussage. Weitere Informationen zur Modelloptimierung in SageMaker finden Sie imSageMaker Neo-Dokumentationaus.

Anmerkung

Derzeit können Sie Machine Learning-Modelle nur mit dem Neo Deep Learning Compiler optimieren. Sie können jedoch die Neo Deep Learning Runtime mit optimierten Modellen in jedem verwendenAWS-RegionwoherAWS IoT Greengrasscore wird unterstützt. Weitere Informationen finden Sie unter So konfigurieren Sie Optimized Machine Learning-Inferenz.

MXNet-Versioning

Apache MXNet stellt derzeit keine Aufwärtskompatibilität sicher, sodass Modelle, die Sie mit späteren Versionen des Frameworks schulen, möglicherweise in früheren Versionen des Frameworks nicht ordnungsgemäß funktionieren. Um Konflikte zwischen den Modellschulungs- und Modellbereitstellungsstufen zu vermeiden und eine konsistente end-to-end erleben, verwenden Sie dieselbe MXNet-Framework-Version in beiden Phasen.

MXNet auf Raspberry Pi

Greengrass Lambda-Funktionen, die auf lokale MXNet-Modelle zugreifen, müssen die folgende Umgebungsvariable festlegen:

MXNET_ENGINE_TYPE=NativeEngine

Sie können die Umgebungsvariable im Funktionscode festlegen oder zur gruppenspezifischen Konfiguration der Funktion hinzufügen. Ein Bespiel, bei dem dieses im Rahmen der Konfigurationseinstellung hinzugefügt wird, finden Sie in diesem Schritt.

Anmerkung

Bei einer allgemeinen Verwendung des MXNet-Frameworks, beispielsweise bei der Ausführung eines Code-Beispiels eines Drittanbieters, muss die Umgebungsvariable auf dem Raspberry Pi konfiguriert werden.

TensorFlow-Modellbereitstellungsbeschränkungen auf dem Raspberry Pi

Die folgenden Empfehlungen zur Verbesserung der Inferenzergebnisse basieren auf unseren Tests mit der TensorFlow 32-Bit-Arm-Bibliotheken auf der Raspberry Pi-Plattform. Diese Empfehlungen sind für erfahrene Benutzer nur zur Referenz ohne Gewährleistung jedweder Art bestimmt.

  • Modelle, die mit dem Checkpoint-Format geschult werden, sollten vor der Bereitstellung im Protokollpufferformat "eingefroren" werden. Ein Beispiel finden Sie in der TensorFlow-Slim-Abbildklassifikations-Modellbibliothek.

  • Verwenden Sie die TF-Estimator- und TF-Slim-Bibliotheken nicht in Schulungen oder Inferenzcodes. Stattdessen verwenden Sie das Modellbereitstellungsmuster der .pb-Datei wie im folgenden Beispiel gezeigt.

    graph = tf.Graph() graph_def = tf.GraphDef() graph_def.ParseFromString(pb_file.read()) with graph.as_default(): tf.import_graph_def(graph_def)
Anmerkung

Weitere Informationen zu den unterstützten Plattformen für TensorFlow finden Sie unterInstallieren von TensorFlowim TensorFlow -Dokumentation.