View a markdown version of this page

Tutorial: Inizia a usare SageMaker AI 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 AI Edge Manager

Importante

SageMaker AI Edge Manager è stato interrotto il 26 aprile 2024. Per ulteriori informazioni su come continuare a distribuire i modelli su dispositivi edge, vedi la fine del ciclo di vita di SageMaker AI Edge Manager.

Amazon SageMaker AI Edge Manager è un agente software che viene eseguito su dispositivi edge. SageMaker AI Edge Manager fornisce la gestione dei modelli per i dispositivi edge in modo da poter impacchettare e utilizzare Neo-compiled i modelli Amazon SageMaker AI direttamente sui dispositivi principali di Greengrass. Utilizzando SageMaker AI Edge Manager, puoi anche campionare i dati di input e output dei modelli dai tuoi dispositivi principali e inviarli a loro Cloud AWS per il monitoraggio e l'analisi. Per ulteriori informazioni su come funziona SageMaker AI Edge Manager sui dispositivi principali di Greengrass, consultaUsa Amazon SageMaker AI Edge Manager sui dispositivi core Greengrass.

Questo tutorial mostra come iniziare a utilizzare SageMaker AI Edge Manager con componenti AWS di esempio forniti su un dispositivo principale esistente. Questi componenti di esempio utilizzano il componente SageMaker AI Edge Manager come dipendenza per distribuire l'agente Edge Manager ed eseguire l'inferenza utilizzando modelli preaddestrati compilati utilizzando AI Neo. SageMaker Per ulteriori informazioni sull'agente SageMaker AI Edge Manager, consulta AI Edge Manager nella SageMaker Amazon AI Developer Guide. SageMaker

Per configurare e utilizzare l'agente SageMaker AI Edge Manager su un dispositivo principale Greengrass esistente, viene AWS fornito un codice di esempio che puoi 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 AI Edge Manager.

Prerequisiti

Per completare questo tutorial, devi soddisfare i seguenti prerequisiti:

  • Un dispositivo principale Greengrass in esecuzione su Amazon Linux 2, una piattaforma Debian-based Linux (x86_64 o Armv8) o Windows (x86_64). Se non lo hai, consultare Tutorial: Guida introduttiva AWS IoT Greengrass V2.

  • Python 3.6 o successivo, inclusa la versione di Python in uso, installato sul dispositivo pip principale.

  • L'API OpenGL GLX runtime (libgl1-mesa-glx) installato sul dispositivo principale.

  • Un utente AWS Identity and Access Management (IAM) con autorizzazioni di amministratore.

  • Un computer Windows, Mac o di Unix-like sviluppo con accesso a Internet che soddisfa i seguenti requisiti:

  • I seguenti bucket S3 creati nello stesso dispositivo principale Greengrass Account AWS e Regione AWS in quello utilizzato:

    • Un bucket S3 per archiviare gli artefatti inclusi nell'inferenza del campione e nei componenti del modello. Questo tutorial usa amzn-s3-demo-bucket1 per fare riferimento a questo bucket.

    • Un bucket S3 da associare alla tua flotta di dispositivi AI edge. SageMaker SageMaker AI Edge Manager richiede un bucket S3 per creare la flotta di dispositivi edge e archiviare dati di esempio derivanti dall'esecuzione di inferenze sul dispositivo. Questo tutorial utilizza amzn-s3-demo-bucket2 per fare riferimento a questo bucket.

    Per informazioni sulla creazione di bucket S3, consulta Getting started with Amazon S3. https://docs.aws.amazon.com/AmazonS3/latest/userguide/GetStartedWithS3.html

  • Il ruolo del dispositivo Greengrass è configurato con quanto segue:

    • Una relazione di fiducia che consente credentials.iot.amazonaws.com e sagemaker.amazonaws.com può assumere il ruolo, come mostrato nel seguente esempio di policy IAM.

      { "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 AmazonSageMakerEdgeDeviceFleetPolicy policy gestita da IAM.

    • La AmazonSageMakerFullAccess policy gestita da IAM.

    • L's3:GetObjectazione per il bucket S3 che contiene gli artefatti dei componenti, come mostrato nel seguente esempio di policy IAM.

      JSON
      { "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 AI Edge Manager SageMaker

Le flotte di dispositivi Edge in SageMaker AI Edge Manager sono raccolte di dispositivi raggruppati logicamente. Per utilizzare SageMaker AI Edge Manager con AWS IoT Greengrass, devi creare un parco dispositivi edge che utilizzi lo stesso alias di AWS IoT ruolo del dispositivo principale Greengrass su cui distribuisci l'agente AI Edge Manager. SageMaker Quindi, devi registrare il dispositivo principale come parte di quel parco dispositivi.

Crea una flotta di dispositivi edge

Per creare un parco dispositivi edge (console)
  1. Nella console Amazon SageMaker AI, scegli Edge Manager, quindi scegli flotte di dispositivi Edge.

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

  3. In Proprietà del parco dispositivi, procedi come segue:

    • Per Nome del parco dispositivi, inserisci un nome per il tuo parco dispositivi.

    • Per il ruolo IAM, inserisci l'Amazon Resource Name (ARN) dell'alias del AWS IoT ruolo specificato durante la configurazione del dispositivo principale Greengrass.

    • Disattiva l'opzione Crea alias di ruolo IAM.

  4. Scegli Avanti.

  5. In Configurazione dell'output, per l'URI del bucket S3, inserisci l'URI del bucket S3 che desideri associare al parco dispositivi.

  6. Seleziona Invia.

Registra il tuo dispositivo principale Greengrass

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

  2. Nella pagina Dispositivi, scegli Registra dispositivi.

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

  4. Scegli Avanti.

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

  6. Seleziona Invia.

Create i componenti di esempio

Per aiutarti a iniziare a utilizzare il componente SageMaker AI Edge Manager, AWS fornisce uno script Python GitHub che crea l'inferenza di esempio e i componenti del modello e li carica per te. Cloud AWS Completa i passaggi seguenti su un computer di sviluppo.

Per creare i componenti di esempio
  1. Scarica il repository degli esempi dei AWS IoT Greengrass componenti sul tuo computer GitHub di sviluppo.

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

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

    Sostituiscilo region con il Regione AWS luogo in cui hai creato il dispositivo principale Greengrass e sostituisci amzn-s3-demo-bucket1 con il nome del bucket S3 per archiviare 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 AI Edge Manager vengono ora creati nel tuo. Account AWS Per vedere 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 esempio di inferenza sulla classificazione delle immagini

Per eseguire l'inferenza di classificazione delle immagini utilizzando i componenti di esempio AWS forniti e l'agente SageMaker AI Edge Manager, è necessario distribuire questi componenti sul dispositivo principale. L'implementazione di questi componenti scarica un Resnet-50 modello SageMaker AI Neo-compiled pre-addestrato e installa l'agente SageMaker AI Edge Manager sul dispositivo. L'agente SageMaker AI Edge Manager carica il modello e pubblica i risultati di inferenza sull'argomento. gg/sageMakerEdgeManager/image-classification Per visualizzare questi risultati di inferenza, usa il client AWS IoT MQTT nella AWS IoT console per iscriverti a questo argomento.

Iscriviti all'argomento delle notifiche

In questo passaggio, si configura il client AWS IoT MQTT nella AWS IoT console per guardare i messaggi MQTT pubblicati dal componente di inferenza di esempio. Per impostazione predefinita, il componente pubblica i risultati di inferenza sull'argomento. gg/sageMakerEdgeManager/image-classification Abbonatevi a questo argomento prima di distribuire il componente sul 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, client di test MQTT.

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

  3. Scegli Abbonati.

Distribuisci 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 Revisione, quindi scegli Rivedi distribuzione.

  3. Nella pagina Specifica destinazione, scegli Avanti.

  4. Nella pagina Seleziona componenti, effettuate le seguenti operazioni:

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

  5. Nella pagina Configura componenti, seleziona il aws.greengrass.SageMakerEdgeManager componente ed esegui 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" }

      Sostituiscilo device-fleet-name con il nome del parco dispositivi edge che hai creato e sostituiscilo 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 Distribuisci

  1. Sul tuo computer di sviluppo, crea un deployment.json file per definire la configurazione di distribuzione dei componenti SageMaker AI 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 campo targetArn, sostituisci targetArn con il nome della risorsa Amazon (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, sostituiscilo 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 client AWS IoT MQTT nella console. AWS IoT Per abbonarsi all'argomento su cui il componente pubblica i risultati di inferenza, vedere. Iscriviti all'argomento delle notifiche

  • AWS IoT Client MQTT: per visualizzare i risultati pubblicati dal componente di inferenza sull'argomento delle notifiche predefinito, completare i seguenti passaggi:

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

    2. In Abbonamenti, scegli. gg/sageMakerEdgeManager/image-classification

     

  • Registro dei componenti: per visualizzare i risultati dell'inferenza nel registro dei componenti, eseguite il seguente comando sul dispositivo principale Greengrass.

    sudo tail -f /greengrass/v2/logs/com.greengrass.SageMakerEdgeManager.ImageClassification.log

Se non riuscite a visualizzare i risultati dell'inferenza nel registro dei componenti o nel client MQTT, 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 seguente comando sul tuo dispositivo principale per visualizzare il file di registro del software AWS IoT Greengrass principale. 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 relativi all'inferenza dell'apprendimento automatico.