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.
Tutorial: Erste Schritte mit SageMaker Edge Manager
Wichtig
SageMaker Edge Manager wurde am 26. April 2024 eingestellt. Weitere Informationen zur weiteren Bereitstellung Ihrer Modelle auf Edge-Geräten finden Sie unter Ende der Nutzungsdauer von SageMaker Edge Manager.
Amazon SageMaker Edge Manager ist ein Softwareagent, der auf Edge-Geräten ausgeführt wird. SageMaker Edge Manager bietet Modellverwaltung für Edge-Geräte, sodass Sie mit Amazon SageMaker Neo kompilierte Modelle direkt auf Greengrass-Core-Geräten verpacken und verwenden können. Mithilfe von SageMaker Edge Manager können Sie auch Modelleingabe- und -ausgabedaten von Ihren Kerngeräten abfragen und diese Daten AWS Cloud zur Überwachung und Analyse an die senden. Weitere Informationen zur Funktionsweise von SageMaker Edge Manager auf Greengrass-Core-Geräten finden Sie unterVerwenden Sie Amazon SageMaker Edge Manager auf Greengrass-Kerngeräten.
In diesem Tutorial erfahren Sie, wie Sie mit der Verwendung von SageMaker Edge Manager beginnen können. Die AWS bereitgestellten Beispielkomponenten werden auf einem vorhandenen Core-Gerät verwendet. Diese Beispielkomponenten verwenden die SageMaker Edge Manager-Komponente als Abhängigkeit, um den Edge Manager-Agenten bereitzustellen und Inferenzen mithilfe vortrainierter Modelle durchzuführen, die mit Neo kompiliert wurden. SageMaker Weitere Informationen zum SageMaker Edge Manager-Agenten finden Sie unter SageMaker Edge Manager im Amazon SageMaker Developer Guide.
Um den SageMaker Edge Manager-Agenten auf einem vorhandenen Greengrass-Core-Gerät einzurichten und zu verwenden, AWS enthält Beispielcode, mit dem Sie die folgenden Beispiel-Inferenz- und Modellkomponenten erstellen können.
-
Klassifizierung von Bildern
-
com.greengrass.SageMakerEdgeManager.ImageClassification
-
com.greengrass.SageMakerEdgeManager.ImageClassification.Model
-
-
Objekterkennung
-
com.greengrass.SageMakerEdgeManager.ObjectDetection
-
com.greengrass.SageMakerEdgeManager.ObjectDetection.Model
-
In diesem Tutorial erfahren Sie, wie Sie die Beispielkomponenten und den SageMaker Edge Manager-Agenten bereitstellen.
Themen
Voraussetzungen
Um dieses Tutorial abschließen zu können, müssen Sie die folgenden Voraussetzungen erfüllen:
-
Ein Greengrass-Core-Gerät, das auf Amazon Linux 2, einer Debian-basierten Linux-Plattform (x86_64 oder Armv8) oder Windows (x86_64) läuft. Falls Sie noch keines haben, beachten Sie die Informationen unter Tutorial: Erste Schritte mit AWS IoT Greengrass V2.
-
Python
3.6 oder höher, auch pip
für Ihre Version von Python, die auf Ihrem Kerngerät installiert ist. -
Die auf Ihrem Kerngerät installierte API GLX OpenGL-Runtime (
libgl1-mesa-glx
). -
Ein AWS Identity and Access Management (IAM) Benutzer mit Administratorrechten.
-
Ein internetfähiger Windows-, Mac- oder UNIX-ähnlicher Entwicklungscomputer, der die folgenden Anforderungen erfüllt:
-
Python
3.6 oder höher installiert. -
AWS CLI installiert und mit Ihren IAM Administrator-Benutzeranmeldedaten konfiguriert. Weitere Informationen finden Sie unter Installation AWS CLI und Konfiguration von AWS CLI.
-
-
Die folgenden S3-Buckets wurden in demselben AWS-Konto und AWS-Region wie Ihr Greengrass-Core-Gerät erstellt:
-
Ein S3-Bucket zum Speichern der Artefakte, die in den Inferenz- und Modellkomponenten der Stichprobe enthalten sind. In diesem Tutorial wird amzn-s3-demo-bucket1 verwendet, um auf diesen Bucket zu verweisen.
-
Ein S3-Bucket, den Sie Ihrer Edge-Geräteflotte zuordnen. SageMaker SageMaker Edge Manager benötigt einen S3-Bucket, um die Edge-Geräteflotte zu erstellen und Beispieldaten aus laufenden Inferenzen auf Ihrem Gerät zu speichern. In diesem Tutorial wird amzn-s3-demo-bucket2 verwendet, um auf diesen Bucket zu verweisen.
Informationen zum Erstellen von S3-Buckets finden Sie unter Erste Schritte mit Amazon S3.
-
-
Die Greengrass-Geräterolle wurde wie folgt konfiguriert:
-
Eine Vertrauensbeziehung, die es
sagemaker.amazonaws.com
ermöglichtcredentials.iot.amazonaws.com
und die Übernahme der Rolle ermöglicht, wie im folgenden IAM Richtlinienbeispiel dargestellt.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "credentials.iot.amazonaws.com" }, "Action": "sts:AssumeRole" }, { "Effect": "Allow", "Principal": { "Service": "sagemaker.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
-
Die AmazonSageMakerEdgeDeviceFleetPolicy
IAMverwaltete Richtlinie. -
Die AmazonSageMakerFullAccess
IAMverwaltete Richtlinie. -
Die
s3:GetObject
Aktion für den S3-Bucket, der Ihre Komponentenartefakte enthält, wie im folgenden IAM Richtlinienbeispiel dargestellt.{ "Version": "2012-10-17", "Statement": [ { "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket1/*" ], "Effect": "Allow" } ] }
-
Richten Sie Ihr Greengrass Core-Gerät in SageMaker Edge Manager ein
Edge-Geräteflotten in SageMaker Edge Manager sind Sammlungen logisch gruppierter Geräte. Um SageMaker Edge Manager mit zu verwenden AWS IoT Greengrass, müssen Sie eine Edge-Geräteflotte erstellen, die denselben AWS IoT Rollenalias wie das Greengrass-Core-Gerät verwendet, auf dem Sie den SageMaker Edge Manager-Agent bereitstellen. Anschließend müssen Sie das Kerngerät als Teil dieser Flotte registrieren.
Erstellen Sie eine Flotte von Edge-Geräten
Um eine Edge-Geräteflotte (Konsole) zu erstellen
-
Wählen Sie in der SageMaker Amazon-Konsole
Edge Manager und dann Edge-Geräteflotten aus. -
Wählen Sie auf der Seite Geräteflotten die Option Geräteflotte erstellen aus.
-
Gehen Sie unter Eigenschaften der Geräteflotte wie folgt vor:
-
Geben Sie unter Name der Geräteflotte einen Namen für Ihre Geräteflotte ein.
-
Geben Sie für IAMRolle den Amazon-Ressourcennamen (ARN) des AWS IoT Rollenalias ein, den Sie bei der Einrichtung Ihres Greengrass-Core-Geräts angegeben haben.
-
Deaktivieren Sie den Schalter IAMRollenalias erstellen.
-
-
Wählen Sie Weiter.
-
Geben Sie unter Ausgabekonfiguration für S3-Bucket URI den URI des S3-Buckets ein, den Sie der Geräteflotte zuordnen möchten.
-
Wählen Sie Absenden aus.
Registrieren Sie Ihr Greengrass Core-Gerät
Um Ihr Greengrass Core-Gerät als Edge-Gerät (Konsole) zu registrieren
-
Wählen Sie in der SageMaker Amazon-Konsole
Edge Manager und dann Edge-Geräte aus. -
Wählen Sie auf der Seite Geräte die Option Geräte registrieren aus.
-
Geben Sie unter Geräteeigenschaften für Name der Geräteflotte den Namen der Geräteflotte ein, die Sie erstellt haben, und wählen Sie dann Weiter aus.
-
Wählen Sie Weiter.
-
Geben Sie unter Gerätequelle für Gerätename den AWS IoT Dingnamen Ihres Greengrass-Core-Geräts ein.
-
Wählen Sie Absenden aus.
Erstellen Sie die Beispielkomponenten
Um Ihnen den Einstieg in die Verwendung der SageMaker Edge Manager-Komponente zu erleichtern, AWS stellt es ein Python-Skript bereit GitHub , das die Beispielinferenz- und Modellkomponenten erstellt und sie AWS Cloud für Sie in die hochlädt. Führen Sie die folgenden Schritte auf einem Entwicklungscomputer aus.
Um die Beispielkomponenten zu erstellen
-
Laden Sie das Repository mit den AWS IoT Greengrass Komponentenbeispielen
GitHub auf Ihren Entwicklungscomputer herunter. -
Navigieren Sie zum heruntergeladenen
/machine-learning/sagemaker-edge-manager
Ordner.cd
download-directory
/machine-learning/sagemaker-edge-manager -
Führen Sie den folgenden Befehl aus, um die Beispielkomponenten zu erstellen und in den hochzuladen AWS Cloud.
python3 create_components.py -r
region
-b amzn-s3-demo-bucketErsetzen
region
mit dem AWS-Region Ort, an dem Sie Ihr Greengrass-Core-Gerät erstellt haben, und ersetzen Sie amzn-s3-demo-bucket1 durch den Namen des S3-Buckets, in dem Sie Ihre Komponentenartefakte speichern möchten.Anmerkung
Standardmäßig erstellt das Skript Beispielkomponenten sowohl für die Bildklassifizierung als auch für die Inferenz zur Objekterkennung. Um Komponenten nur für einen bestimmten Inferenztyp zu erstellen, geben Sie das
-i
Argument an.ImageClassification | ObjectDetection
Beispielinferenz- und Modellkomponenten für die Verwendung mit SageMaker Edge Manager werden jetzt in Ihrem erstellt. AWS-Konto Um die Beispielkomponenten in der AWS IoT Greengrass Konsole
-
com.greengrass.SageMakerEdgeManager.ImageClassification
-
com.greengrass.SageMakerEdgeManager.ImageClassification.Model
-
com.greengrass.SageMakerEdgeManager.ObjectDetection
-
com.greengrass.SageMakerEdgeManager.ObjectDetection.Model
Führen Sie ein Beispiel für die Inferenz zur Bildklassifizierung aus
Um die Inferenz zur Bildklassifizierung mithilfe der AWS bereitgestellten Beispielkomponenten und des SageMaker Edge Manager-Agenten auszuführen, müssen Sie diese Komponenten auf Ihrem Kerngerät bereitstellen. Durch die Bereitstellung dieser Komponenten wird ein SageMaker NEO-kompiliertes, vortrainiertes Resnet-50-Modell heruntergeladen und der SageMaker Edge Manager-Agent auf Ihrem Gerät installiert. Der SageMaker Edge Manager-Agent lädt das Modell und veröffentlicht Inferenzergebnisse zu diesem Thema. gg/sageMakerEdgeManager/image-classification
Verwenden Sie zum Anzeigen dieser Inferenzergebnisse den AWS IoT MQTT Client in der AWS IoT Konsole, um dieses Thema zu abonnieren.
Themen
Abonnieren Sie das Thema Benachrichtigungen
In diesem Schritt konfigurieren Sie den AWS IoT MQTT Client in der AWS IoT Konsole so, dass er MQTT Nachrichten überwacht, die von der Beispiel-Inferenzkomponente veröffentlicht wurden. Standardmäßig veröffentlicht die Komponente Inferenzergebnisse zu diesem Thema. gg/sageMakerEdgeManager/image-classification
Abonnieren Sie dieses Thema, bevor Sie die Komponente auf Ihrem Greengrass-Core-Gerät bereitstellen, um die Inferenzergebnisse zu sehen, wenn die Komponente zum ersten Mal ausgeführt wird.
Um das Thema Standardbenachrichtigungen zu abonnieren
-
Wählen Sie im Navigationsmenü der AWS IoT Konsole
Test, MQTT Test Client aus. -
Geben Sie unter Thema abonnieren in das Feld Themenname den Text ein
gg/sageMakerEdgeManager/image-classification
. -
Wählen Sie Subscribe (Abonnieren) aus.
Stellen Sie die Beispielkomponenten bereit
In diesem Schritt konfigurieren und implementieren Sie die folgenden Komponenten auf Ihrem Kerngerät:
-
aws.greengrass.SageMakerEdgeManager
-
com.greengrass.SageMakerEdgeManager.ImageClassification
-
com.greengrass.SageMakerEdgeManager.ImageClassification.Model
-
Wählen Sie im Navigationsmenü der AWS IoT Greengrass Konsole
Bereitstellungen und dann die Bereitstellung für Ihr Zielgerät aus, die Sie überarbeiten möchten. -
Wählen Sie auf der Bereitstellungsseite die Option Überarbeiten und anschließend Bereitstellung überarbeiten aus.
-
Wählen Sie auf der Seite „Ziel angeben“ die Option Weiter aus.
-
Gehen Sie auf der Seite „Komponenten auswählen“ wie folgt vor:
-
Wählen Sie unter Meine Komponenten die folgenden Komponenten aus:
-
com.greengrass.SageMakerEdgeManager.ImageClassification
-
com.greengrass.SageMakerEdgeManager.ImageClassification.Model
-
-
Deaktivieren Sie unter Öffentliche Komponenten die Option Nur ausgewählte Komponenten anzeigen und wählen Sie dann die
aws.greengrass.SageMakerEdgeManager
Komponente aus. -
Wählen Sie Weiter.
-
-
Wählen Sie auf der Seite Komponenten konfigurieren die
aws.greengrass.SageMakerEdgeManager
Komponente aus und gehen Sie wie folgt vor.-
Wählen Sie Komponente konfigurieren aus.
-
Geben Sie unter Konfigurationsupdate unter Zusammenzuführende Konfiguration die folgende Konfiguration ein.
{ "DeviceFleetName": "
device-fleet-name
", "BucketName": "amzn-s3-demo-bucket
" }Ersetzen
device-fleet-name
mit dem Namen der Edge-Geräteflotte, die Sie erstellt und ersetzt habenamzn-s3-demo-bucket
mit dem Namen des S3-Buckets, der Ihrer Geräteflotte zugeordnet ist. -
Wählen Sie Bestätigen aus, und wählen Sie dann Weiter.
-
-
Behalten Sie auf der Seite Erweiterte Einstellungen konfigurieren die Standardkonfigurationseinstellungen bei und wählen Sie Weiter.
-
Wählen Sie auf der Seite „Überprüfen“ die Option Bereitstellen
-
Erstellen Sie auf Ihrem Entwicklungscomputer eine
deployment.json
Datei, um die Bereitstellungskonfiguration für Ihre SageMaker Edge Manager-Komponenten zu definieren. Diese Datei sollte wie im folgenden Beispiel aussehen.{ "targetArn":"
targetArn
", "components": { "aws.greengrass.SageMakerEdgeManager": { "componentVersion": "1.0.x
", "configurationUpdate": { "merge": "{\"DeviceFleetName\":\"device-fleet-name
\",\"BucketName\":\"amzn-s3-demo-bucket2
\"}" } }, "com.greengrass.SageMakerEdgeManager.ImageClassification": { "componentVersion": "1.0.x
", "configurationUpdate": { } }, "com.greengrass.SageMakerEdgeManager.ImageClassification.Model": { "componentVersion": "1.0.x
", "configurationUpdate": { } }, } }-
Ersetzen Sie dastargetArn
targetArn
Feld durch den Amazon-Ressourcennamen (ARN) der Sache oder der Dinggruppe, auf die die Bereitstellung ausgerichtet werden soll, und zwar im folgenden Format:-
Objekt:
arn:aws:iot:
region
:account-id
:thing/thingName
-
Objektgruppe:
arn:aws:iot:
region
:account-id
:thinggroup/thingGroupName
-
-
Ersetzen Sie im
merge
Felddevice-fleet-name
durch den Namen der Edge-Geräteflotte, die Sie erstellt haben. Ersetzen Sie dannamzn-s3-demo-bucket2
mit dem Namen des S3-Buckets, der Ihrer Geräteflotte zugeordnet ist. -
Ersetzen Sie die Versionen aller Komponenten durch die neueste verfügbare Version.
-
-
Führen Sie den folgenden Befehl aus, um die Komponenten auf dem Gerät bereitzustellen:
aws greengrassv2 create-deployment \ --cli-input-json file://
path/to/
deployment.json
Es kann einige Minuten dauern, bis die Bereitstellung abgeschlossen ist. Überprüfen Sie im nächsten Schritt im Komponentenprotokoll, ob die Bereitstellung erfolgreich abgeschlossen wurde, und schauen Sie sich die Inference-Ergebnisse an.
Inferenzergebnisse anzeigen
Nachdem Sie die Komponenten bereitgestellt haben, können Sie die Inferenzergebnisse im Komponentenprotokoll auf Ihrem Greengrass-Core-Gerät und im AWS IoT MQTT Client in der AWS IoT Konsole einsehen. Informationen zum Abonnieren des Themas, zu dem die Komponente Inferenzergebnisse veröffentlicht, finden Sie unter. Abonnieren Sie das Thema Benachrichtigungen
-
AWS IoT MQTTclient — Gehen Sie wie folgt vor, um die Ergebnisse anzuzeigen, die die Inferenzkomponente zum Thema Standardbenachrichtigungen veröffentlicht:
-
Wählen Sie im Navigationsmenü der AWS IoT Konsole
die Optionen Test, MQTT Client testen aus. -
Wählen Sie unter Abonnements die Option
gg/sageMakerEdgeManager/image-classification
.
-
-
Komponentenprotokoll — Um die Inferenzergebnisse im Komponentenprotokoll anzuzeigen, führen Sie den folgenden Befehl auf Ihrem Greengrass-Core-Gerät aus.
sudo tail -f
/logs/com.greengrass.SageMakerEdgeManager.ImageClassification.log/greengrass/v2
Wenn Sie keine Inferenzergebnisse im Komponentenprotokoll oder im MQTT Client sehen können, ist die Bereitstellung fehlgeschlagen oder hat das Kerngerät nicht erreicht. Dies kann der Fall sein, wenn Ihr Kerngerät nicht mit dem Internet verbunden ist oder nicht über die erforderlichen Berechtigungen zum Ausführen der Komponente verfügt. Führen Sie den folgenden Befehl auf Ihrem Core-Gerät aus, um die AWS IoT Greengrass Core-Software-Protokolldatei anzuzeigen. Diese Datei enthält Protokolle vom Bereitstellungsdienst des Greengrass-Core-Geräts.
sudo tail -f
/logs/greengrass.log
/greengrass/v2
Weitere Informationen finden Sie unter Fehlerbehebung bei Machine Learning-Inferenzen.