Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Tutorial: Inizia a usare SageMaker Edge Manager
Importante
SageMaker Edge Manager è stato interrotto il 26 aprile 2024. Per ulteriori informazioni su come continuare a distribuire i modelli sui dispositivi edge, consulta SageMaker Edge Manager End of Life.
Amazon SageMaker Edge Manager è un agente software che funziona su dispositivi edge. SageMaker Edge Manager fornisce la gestione dei modelli per i dispositivi edge in modo da poter impacchettare e utilizzare i modelli SageMaker compilati da Amazon NEO direttamente sui dispositivi core Greengrass. Utilizzando SageMaker Edge Manager, puoi anche campionare i dati di input e output del modello dai tuoi dispositivi principali e inviarli a loro Cloud AWS per il monitoraggio e l'analisi. Per ulteriori informazioni sul funzionamento di SageMaker Edge Manager sui dispositivi core Greengrass, vedere. Usa Amazon SageMaker Edge Manager sui dispositivi core Greengrass
Questo tutorial mostra come iniziare a utilizzare SageMaker Edge Manager con componenti AWS di esempio forniti su un dispositivo principale esistente. Questi componenti di esempio utilizzano il componente SageMaker Edge Manager come dipendenza per distribuire l'agente Edge Manager ed eseguono l'inferenza utilizzando modelli preaddestrati compilati utilizzando Neo. SageMaker Per ulteriori informazioni sull'agente SageMaker Edge Manager, consulta SageMaker Edge Manager nella Amazon SageMaker Developer Guide.
Per configurare e utilizzare l'agente SageMaker Edge Manager su un dispositivo principale Greengrass esistente, AWS fornisce codice di esempio che è possibile utilizzare per creare i seguenti componenti di inferenza e modello di esempio.
-
Classificazione delle immagini
-
com.greengrass.SageMakerEdgeManager.ImageClassification
-
com.greengrass.SageMakerEdgeManager.ImageClassification.Model
-
-
Rilevamento di oggetti
-
com.greengrass.SageMakerEdgeManager.ObjectDetection
-
com.greengrass.SageMakerEdgeManager.ObjectDetection.Model
-
Questo tutorial mostra come distribuire i componenti di esempio e l'agente SageMaker Edge Manager.
Argomenti
Prerequisiti
Per completare questo tutorial, è necessario soddisfare i seguenti prerequisiti:
-
Un dispositivo core Greengrass in esecuzione su Amazon Linux 2, una piattaforma Linux basata su Debian (x86_64 o Armv8) o Windows (x86_64). Se non lo hai, consultare Tutorial: Nozioni di base su AWS IoT Greengrass V2.
-
Python
3.6 o versione successiva, inclusa pip
la tua versione di Python, installato sul tuo dispositivo principale. -
Il runtime API GLX OpenGL
libgl1-mesa-glx
() installato sul dispositivo principale. -
Un utente AWS Identity and Access Management (IAM) con autorizzazioni di amministratore.
-
Un computer di sviluppo simile a Windows, Mac o Unix abilitato a Internet che soddisfa i seguenti requisiti:
-
Python
3.6 o successivo installato. -
AWS CLI installato e configurato con le credenziali utente dell'IAMamministratore. Per ulteriori informazioni, vedere Installazione AWS CLI e configurazione di. AWS CLI
-
-
I seguenti bucket S3 creati nello Regione AWS stesso Account AWS dispositivo principale Greengrass:
-
Un bucket S3 per archiviare gli artefatti inclusi nell'inferenza del campione e nei componenti del modello. Questo tutorial utilizza amzn-s3-demo-bucket1 per fare riferimento a questo bucket.
-
Un bucket S3 che associ alla tua flotta di dispositivi edge. SageMaker SageMaker Edge Manager richiede un bucket S3 per creare la flotta di dispositivi edge e per archiviare dati di esempio derivanti dall'esecuzione dell'inferenza sul dispositivo. Questo tutorial utilizza amzn-s3-demo-bucket2 per fare riferimento a questo bucket.
Per informazioni sulla creazione di bucket S3, consulta Guida introduttiva ad Amazon S3.
-
-
Il ruolo del dispositivo Greengrass è configurato con quanto segue:
-
Una relazione di fiducia che consente
credentials.iot.amazonaws.com
e consentesagemaker.amazonaws.com
di assumere il ruolo, come illustrato nel seguente esempio di IAM policy.{ "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" } ] }
-
La politica AmazonSageMakerEdgeDeviceFleetPolicy
IAMgestita. -
La politica AmazonSageMakerFullAccess
IAMgestita. -
L'
s3:GetObject
azione per il bucket S3 che contiene gli artefatti dei componenti, come illustrato nel seguente esempio di policy. IAM{ "Version": "2012-10-17", "Statement": [ { "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket1/*" ], "Effect": "Allow" } ] }
-
Configura il tuo dispositivo principale Greengrass in SageMaker Edge Manager
Le flotte di dispositivi SageMaker Edge in Edge Manager sono raccolte di dispositivi raggruppati logicamente. Per utilizzare SageMaker Edge Manager con AWS IoT Greengrass, è necessario creare una flotta di dispositivi edge che utilizzi lo stesso alias di AWS IoT ruolo del dispositivo principale Greengrass su cui viene distribuito SageMaker l'agente Edge Manager. Quindi, è necessario registrare il dispositivo principale come parte di quel parco dispositivi.
Crea una flotta di dispositivi edge
Per creare una flotta di dispositivi periferici (console)
-
Nella SageMaker console Amazon
, scegli Edge Manager, quindi scegli flotte di dispositivi Edge. -
Nella pagina Flotte di dispositivi, scegli Crea flotta di dispositivi.
-
In Proprietà del parco dispositivi, procedi come segue:
-
Per Nome parco dispositivi, inserisci un nome per il tuo parco dispositivi.
-
Per il IAMruolo, inserisci l'Amazon Resource Name (ARN) dell'alias del AWS IoT ruolo che hai specificato durante la configurazione del tuo dispositivo principale Greengrass.
-
Disattiva l'opzione Crea alias IAM del ruolo.
-
-
Scegli Next (Successivo).
-
In Configurazione di output, per il bucket S3 URI, inserisci il URI bucket S3 che desideri associare al parco dispositivi.
-
Scegli Invia.
Registra il tuo dispositivo Greengrass core
Per registrare il dispositivo Greengrass core come dispositivo edge (console)
-
Nella SageMaker console Amazon
, scegli Edge Manager, quindi scegli Dispositivi Edge. -
Nella pagina Dispositivi, scegli Registra dispositivi.
-
In Proprietà del dispositivo, in Nome parco dispositivi, inserisci il nome del parco dispositivi che hai creato, quindi scegli Avanti.
-
Scegli Next (Successivo).
-
In Origine dispositivo, in Nome dispositivo, inserisci il nome dell' AWS IoT oggetto del tuo dispositivo principale Greengrass.
-
Scegli Invia.
Create i componenti di esempio
Per aiutarti a iniziare a utilizzare il componente SageMaker Edge Manager, AWS fornisce uno script Python GitHub che crea i componenti di inferenza e modello di esempio e li carica al posto tuo. Cloud AWS Completa i seguenti passaggi su un computer di sviluppo.
Per creare i componenti di esempio
-
Scarica l'archivio degli esempi di AWS IoT Greengrass componenti
sul tuo computer GitHub di sviluppo. -
Vai alla
/machine-learning/sagemaker-edge-manager
cartella scaricata.cd
download-directory
/machine-learning/sagemaker-edge-manager -
Eseguite il comando seguente per creare e caricare i componenti di esempio in Cloud AWS.
python3 create_components.py -r
region
-b amzn-s3-demo-bucketReplace (Sostituisci)
region
con il Regione AWS luogo in cui hai creato il tuo dispositivo principale Greengrass e sostituisci amzn-s3-demo-bucket1 con il nome del bucket S3 per memorizzare gli artefatti dei componenti.Nota
Per impostazione predefinita, lo script crea componenti di esempio sia per la classificazione delle immagini che per l'inferenza del rilevamento degli oggetti. Per creare componenti solo per un tipo specifico di inferenza, specificate l'
-i
argomento.ImageClassification | ObjectDetection
I componenti di inferenza e modello di esempio da utilizzare con SageMaker Edge Manager vengono ora creati in. Account AWS Per visualizzare i componenti di esempio nella AWS IoT Greengrass console
-
com.greengrass.SageMakerEdgeManager.ImageClassification
-
com.greengrass.SageMakerEdgeManager.ImageClassification.Model
-
com.greengrass.SageMakerEdgeManager.ObjectDetection
-
com.greengrass.SageMakerEdgeManager.ObjectDetection.Model
Esegui un'inferenza di classificazione delle immagini di esempio
Per eseguire l'inferenza della classificazione delle immagini utilizzando i componenti di esempio AWS forniti e l'agente SageMaker Edge Manager, è necessario distribuire questi componenti sul dispositivo principale. L'implementazione di questi componenti scarica un modello Resnet-50 pre-addestrato SageMaker compilato da NEO e installa l'agente Edge Manager sul dispositivo. SageMaker L'agente SageMaker Edge Manager carica il modello e pubblica i risultati dell'inferenza sull'argomento. gg/sageMakerEdgeManager/image-classification
Per visualizzare questi risultati di inferenza, utilizzate il AWS IoT MQTT client nella AWS IoT console per iscrivervi a questo argomento.
Argomenti
Iscriviti all'argomento delle notifiche
In questo passaggio, configuri il AWS IoT MQTT client nella AWS IoT console per guardare MQTT i messaggi pubblicati dal componente di inferenza di esempio. Per impostazione predefinita, il componente pubblica i risultati di inferenza sull'argomento. gg/sageMakerEdgeManager/image-classification
Abbonati a questo argomento prima di distribuire il componente sul tuo dispositivo principale Greengrass per vedere i risultati dell'inferenza quando il componente viene eseguito per la prima volta.
Per sottoscrivere l'argomento delle notifiche predefinito
-
Nel menu di navigazione della AWS IoT console
, scegli Test, MQTT test client. -
In Sottoscrivi a un argomento, nella casella Nome argomento, inserisci
gg/sageMakerEdgeManager/image-classification
. -
Scegliere Subscribe (Effettua sottoscrizione).
Distribuite i componenti di esempio
In questo passaggio, configuri e distribuisci i seguenti componenti sul tuo dispositivo principale:
-
aws.greengrass.SageMakerEdgeManager
-
com.greengrass.SageMakerEdgeManager.ImageClassification
-
com.greengrass.SageMakerEdgeManager.ImageClassification.Model
-
Nel menu di navigazione della AWS IoT Greengrass console
, scegli Distribuzioni, quindi scegli la distribuzione per il dispositivo di destinazione che desideri modificare. -
Nella pagina di distribuzione, scegli Rivedi, quindi scegli Rivedi distribuzione.
-
Nella pagina Specificare la destinazione, scegli Avanti.
-
Nella pagina Seleziona componenti, procedi come segue:
-
In I miei componenti, seleziona i seguenti componenti:
-
com.greengrass.SageMakerEdgeManager.ImageClassification
-
com.greengrass.SageMakerEdgeManager.ImageClassification.Model
-
-
In Componenti pubblici, disattiva l'opzione Mostra solo i componenti selezionati, quindi seleziona il
aws.greengrass.SageMakerEdgeManager
componente. -
Scegli Next (Successivo).
-
-
Nella pagina Configura componenti, selezionate il
aws.greengrass.SageMakerEdgeManager
componente ed effettuate le seguenti operazioni.-
Scegli Configura componente.
-
In Aggiornamento della configurazione, in Configurazione da unire, inserisci la seguente configurazione.
{ "DeviceFleetName": "
device-fleet-name
", "BucketName": "amzn-s3-demo-bucket
" }Replace (Sostituisci)
device-fleet-name
con il nome del parco dispositivi edge che hai creato e sostituisciamzn-s3-demo-bucket
con il nome del bucket S3 associato al tuo parco dispositivi. -
Seleziona Conferma e scegli Avanti.
-
-
Nella pagina Configura impostazioni avanzate, mantieni le impostazioni di configurazione predefinite e scegli Avanti.
-
Nella pagina di revisione, scegli Deploy
-
Sul computer di sviluppo, create un
deployment.json
file per definire la configurazione di distribuzione per i componenti di SageMaker Edge Manager. Questo file dovrebbe essere simile all'esempio seguente.{ "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": { } }, } }-
Nel
targetArn
campo, sostituisci
con Amazon Resource Name (ARN) dell'oggetto o del gruppo di oggetti a cui destinare la distribuzione, nel seguente formato:targetArn
-
Oggetto:
arn:aws:iot:
region
:account-id
:thing/thingName
-
Gruppo di oggetti:
arn:aws:iot:
region
:account-id
:thinggroup/thingGroupName
-
-
Nel
merge
campo, sostituiscidevice-fleet-name
con il nome del parco dispositivi edge che hai creato. Quindi, sostituisciamzn-s3-demo-bucket2
con il nome del bucket S3 associato al tuo parco dispositivi. -
Sostituisci le versioni dei componenti di ogni componente con l'ultima versione disponibile.
-
-
Eseguire comando seguente per distribuire i componenti sul dispositivo:
aws greengrassv2 create-deployment \ --cli-input-json file://
path/to/
deployment.json
La distribuzione può richiedere alcuni minuti. Nella fase successiva, controlla il registro dei componenti per verificare che l’implementazione sia stata completata correttamente e per visualizzare i risultati dell'inferenza.
Visualizza i risultati dell'inferenza
Dopo aver distribuito i componenti, è possibile visualizzare i risultati dell'inferenza nel registro dei componenti sul dispositivo principale Greengrass e nel AWS IoT MQTT client nella console. AWS IoT Per sottoscrivere l'argomento in cui il componente pubblica i risultati dell'inferenza, vedere. Iscriviti all'argomento delle notifiche
-
AWS IoT MQTTclient: per visualizzare i risultati pubblicati dal componente di inferenza sull'argomento delle notifiche predefinite, completa i seguenti passaggi:
-
Nel menu di navigazione della AWS IoT console
, scegli Test, MQTT test client. -
In Abbonamenti, scegli
gg/sageMakerEdgeManager/image-classification
.
-
-
Registro dei componenti: per visualizzare i risultati dell'inferenza nel registro dei componenti, esegui il seguente comando sul tuo dispositivo principale Greengrass.
sudo tail -f
/logs/com.greengrass.SageMakerEdgeManager.ImageClassification.log/greengrass/v2
Se non riesci a visualizzare i risultati dell'inferenza nel registro dei componenti o nel MQTT client, la distribuzione non è riuscita o non ha raggiunto il dispositivo principale. Ciò può verificarsi se il dispositivo principale non è connesso a Internet o non dispone delle autorizzazioni necessarie per eseguire il componente. Esegui il comando seguente sul tuo dispositivo principale per visualizzare il file di registro del software AWS IoT Greengrass Core. Questo file include i log del servizio di distribuzione del dispositivo principale Greengrass.
sudo tail -f
/logs/greengrass.log
/greengrass/v2
Per ulteriori informazioni, consulta Risoluzione dei problemi di inferenza dell'apprendimento automatico.