Tutorial: Inizia a usare SageMaker Edge Manager - AWS IoT Greengrass

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.

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 consente sagemaker.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 AmazonSageMakerEdgeDeviceFleetPolicyIAMgestita.

    • La politica AmazonSageMakerFullAccessIAMgestita.

    • L's3:GetObjectazione 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)
  1. Nella SageMaker console Amazon, scegli Edge Manager, quindi scegli flotte di dispositivi Edge.

  2. Nella pagina Flotte di dispositivi, scegli Crea flotta di dispositivi.

  3. 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.

  4. Scegli Next (Successivo).

  5. In Configurazione di output, per il bucket S3 URI, inserisci il URI bucket S3 che desideri associare al parco dispositivi.

  6. Scegli Invia.

Registra il tuo dispositivo Greengrass core

Per registrare il dispositivo Greengrass core come dispositivo edge (console)
  1. Nella SageMaker console Amazon, scegli Edge Manager, quindi scegli Dispositivi Edge.

  2. Nella pagina Dispositivi, scegli Registra dispositivi.

  3. In Proprietà del dispositivo, in Nome parco dispositivi, inserisci il nome del parco dispositivi che hai creato, quindi scegli Avanti.

  4. Scegli Next (Successivo).

  5. In Origine dispositivo, in Nome dispositivo, inserisci il nome dell' AWS IoT oggetto del tuo dispositivo principale Greengrass.

  6. 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
  1. Scarica l'archivio degli esempi di AWS IoT Greengrass componenti sul tuo computer GitHub di sviluppo.

  2. Vai alla /machine-learning/sagemaker-edge-manager cartella scaricata.

    cd download-directory/machine-learning/sagemaker-edge-manager
  3. 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-bucket

    Replace (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 ImageClassification | ObjectDetectionargomento.

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, scegli Componenti, quindi in I miei componenti, cerca i seguenti componenti:

  • 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.

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
  1. Nel menu di navigazione della AWS IoT console, scegli Test, MQTT test client.

  2. In Sottoscrivi a un argomento, nella casella Nome argomento, inseriscigg/sageMakerEdgeManager/image-classification.

  3. 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

  1. Nel menu di navigazione della AWS IoT Greengrass console, scegli Distribuzioni, quindi scegli la distribuzione per il dispositivo di destinazione che desideri modificare.

  2. Nella pagina di distribuzione, scegli Rivedi, quindi scegli Rivedi distribuzione.

  3. Nella pagina Specificare la destinazione, scegli Avanti.

  4. Nella pagina Seleziona componenti, procedi come segue:

    1. In I miei componenti, seleziona i seguenti componenti:

      • com.greengrass.SageMakerEdgeManager.ImageClassification

      • com.greengrass.SageMakerEdgeManager.ImageClassification.Model

    2. In Componenti pubblici, disattiva l'opzione Mostra solo i componenti selezionati, quindi seleziona il aws.greengrass.SageMakerEdgeManager componente.

    3. Scegli Next (Successivo).

  5. Nella pagina Configura componenti, selezionate il aws.greengrass.SageMakerEdgeManager componente ed effettuate le seguenti operazioni.

    1. Scegli Configura componente.

    2. 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 sostituisci amzn-s3-demo-bucket con il nome del bucket S3 associato al tuo parco dispositivi.

    3. Seleziona Conferma e scegli Avanti.

  6. Nella pagina Configura impostazioni avanzate, mantieni le impostazioni di configurazione predefinite e scegli Avanti.

  7. Nella pagina di revisione, scegli Deploy

  1. 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 targetArn con Amazon Resource Name (ARN) dell'oggetto o del gruppo di oggetti a cui destinare la distribuzione, nel seguente formato:

      • Oggetto: arn:aws:iot:region:account-id:thing/thingName

      • Gruppo di oggetti: arn:aws:iot:region:account-id:thinggroup/thingGroupName

    • Nel merge campo, sostituisci device-fleet-name con il nome del parco dispositivi edge che hai creato. Quindi, sostituisci amzn-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.

  2. 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:

    1. Nel menu di navigazione della AWS IoT console, scegli Test, MQTT test client.

    2. In Abbonamenti, scegligg/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 /greengrass/v2/logs/com.greengrass.SageMakerEdgeManager.ImageClassification.log

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 /greengrass/v2/logs/greengrass.log

Per ulteriori informazioni, consulta Risoluzione dei problemi di inferenza dell'apprendimento automatico.