Tutorial: Cómo empezar a usar SageMaker Edge Manager - AWS IoT Greengrass

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Tutorial: Cómo empezar a usar SageMaker Edge Manager

importante

SageMaker Edge Manager se suspendió el 26 de abril de 2024. Para obtener más información sobre cómo seguir implementando sus modelos en los dispositivos perimetrales, consulte SageMaker Edge Manager al final del ciclo de vida.

Amazon SageMaker Edge Manager es un agente de software que se ejecuta en dispositivos periféricos. SageMaker Edge Manager proporciona administración de modelos para dispositivos perimetrales para que pueda empaquetar y usar modelos SageMaker compilados por Amazon NEO directamente en los dispositivos principales de Greengrass. Al usar SageMaker Edge Manager, también puede muestrear los datos de entrada y salida del modelo de sus dispositivos principales y enviar esos datos a ellos Nube de AWS para su supervisión y análisis. Para obtener más información sobre cómo funciona SageMaker Edge Manager en los dispositivos principales de Greengrass, consulte. Utilice Amazon SageMaker Edge Manager en los dispositivos principales de Greengrass

En este tutorial, se muestra cómo empezar a utilizar SageMaker Edge Manager con los componentes AWS de muestra proporcionados en un dispositivo principal existente. Estos componentes de ejemplo utilizan el componente SageMaker Edge Manager como dependencia para implementar el agente de Edge Manager y realizar inferencias mediante modelos previamente entrenados que se compilaron con Neo. SageMaker Para obtener más información sobre el agente de SageMaker Edge Manager, consulte SageMaker Edge Manager en la Guía para SageMaker desarrolladores de Amazon.

Para configurar y usar el agente SageMaker Edge Manager en un dispositivo principal de Greengrass existente, AWS proporciona un código de ejemplo que puede usar para crear los siguientes ejemplos de componentes de inferencia y modelo.

  • Clasificación de imágenes

    • com.greengrass.SageMakerEdgeManager.ImageClassification

    • com.greengrass.SageMakerEdgeManager.ImageClassification.Model

  • Detección de objetos

    • com.greengrass.SageMakerEdgeManager.ObjectDetection

    • com.greengrass.SageMakerEdgeManager.ObjectDetection.Model

En este tutorial, se muestra cómo implementar los componentes de muestra y el agente de SageMaker Edge Manager.

Requisitos previos

Para completar este tutorial, debe cumplir los siguientes requisitos previos:

  • Un dispositivo principal de Greengrass que se ejecuta en Amazon Linux 2, una plataforma Linux basada en Debian (x86_64 o Armv8) o Windows (x86_64). Si no dispone de una, consulte Tutorial: Introducción a AWS IoT Greengrass V2.

  • Python 3.6 o posterior, incluida pip la versión de Python, instalada en el dispositivo principal.

  • El tiempo de ejecución de API GLX OpenGL libgl1-mesa-glx () instalado en su dispositivo principal.

  • Un usuario AWS Identity and Access Management (IAM) con permisos de administrador.

  • Un ordenador de desarrollo tipo Windows, Mac o Unix con acceso a Internet que cumpla los siguientes requisitos:

  • Los siguientes depósitos de S3 se crearon en el mismo dispositivo principal de Greengrass Cuenta de AWS y en el Región de AWS mismo que él:

    • Un depósito de S3 para almacenar los artefactos que se incluyen en los componentes de inferencia y del modelo de muestra. En este tutorial se utiliza amzn-s3-demo-bucket1 para hacer referencia a este depósito.

    • Un bucket de S3 que asocie a su flota de dispositivos periféricos. SageMaker SageMaker Edge Manager requiere un depósito S3 para crear la flota de dispositivos perimetrales y almacenar datos de muestra derivados de la ejecución de inferencias en su dispositivo. En este tutorial, se utiliza amzn-s3-demo-bucket2 para hacer referencia a este depósito.

    Para obtener información sobre la creación de buckets de S3, consulte Introducción a Amazon S3.

  • El rol del dispositivo Greengrass se configuró con lo siguiente:

    • Una relación de confianza que sagemaker.amazonaws.com permite credentials.iot.amazonaws.com y asume el rol, como se muestra en el siguiente ejemplo IAM de política.

      { "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 política AmazonSageMakerEdgeDeviceFleetPolicyIAMgestionada.

    • La política AmazonSageMakerFullAccessIAMgestionada.

    • La s3:GetObject acción del depósito de S3 que contiene los artefactos de sus componentes, como se muestra en el siguiente ejemplo IAM de política.

      { "Version": "2012-10-17", "Statement": [ { "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket1/*" ], "Effect": "Allow" } ] }

Configura tu dispositivo principal de Greengrass en Edge Manager SageMaker

Las flotas de dispositivos perimetrales de SageMaker Edge Manager son conjuntos de dispositivos agrupados de forma lógica. Para usar SageMaker Edge Manager con AWS IoT Greengrass, debe crear una flota de dispositivos perimetrales que utilice el mismo alias de AWS IoT rol que el dispositivo principal de Greengrass en el que implementa el agente de SageMaker Edge Manager. A continuación, debe registrar el dispositivo principal como parte de esa flota.

Cree una flota de dispositivos periféricos

Para crear una flota de dispositivos periféricos (consola)
  1. En la SageMaker consola de Amazon, selecciona Edge Manager y, a continuación, selecciona Flotas de dispositivos Edge.

  2. En la página Flotas de dispositivos, selecciona Crear flota de dispositivos.

  3. En Propiedades de la flota de dispositivos, haz lo siguiente:

    • En Nombre de la flota de dispositivos, introduce un nombre para tu flota de dispositivos.

    • Para el IAMrol, introduzca el nombre del recurso de Amazon (ARN) del alias del AWS IoT rol que especificó al configurar su dispositivo principal de Greengrass.

    • Desactive la opción Crear alias de IAM rol.

  4. Elija Next (Siguiente).

  5. En Configuración de salida, para el depósito de S3 URI, introduzca el URI del depósito de S3 que desee asociar a la flota de dispositivos.

  6. Elija Enviar.

Registra tu dispositivo principal de Greengrass

Para registrar su dispositivo principal Greengrass como dispositivo perimetral (consola)
  1. En la SageMaker consola de Amazon, selecciona Edge Manager y, a continuación, elige dispositivos Edge.

  2. En la página Dispositivos, selecciona Registrar dispositivos.

  3. En Propiedades del dispositivo, en Nombre de la flota de dispositivos, introduce el nombre de la flota de dispositivos que has creado y, a continuación, selecciona Siguiente.

  4. Elija Next (Siguiente).

  5. En Fuente del dispositivo, en Nombre del dispositivo, introduzca el AWS IoT nombre del dispositivo principal de Greengrass.

  6. Elija Enviar.

Cree los componentes de muestra

Para ayudarle a empezar a utilizar el componente SageMaker Edge Manager, AWS proporciona un script de Python GitHub que crea los componentes de inferencia y modelo de muestra y los carga en su lugar Nube de AWS . Complete los siguientes pasos en un ordenador de desarrollo.

Para crear los componentes de muestra
  1. Descargue el repositorio de ejemplos de AWS IoT Greengrass componentes en GitHub su ordenador de desarrollo.

  2. Navegue hasta la /machine-learning/sagemaker-edge-manager carpeta descargada.

    cd download-directory/machine-learning/sagemaker-edge-manager
  3. Ejecute el siguiente comando para crear y cargar los componentes de muestra en Nube de AWS.

    python3 create_components.py -r region -b amzn-s3-demo-bucket

    Reemplazar region con el Región de AWS lugar donde creó su dispositivo principal de Greengrass y sustituya amzn-s3-demo-bucket1 por el nombre del depósito S3 para almacenar los artefactos de sus componentes.

    nota

    De forma predeterminada, el script crea componentes de muestra tanto para la clasificación de imágenes como para la inferencia de detección de objetos. Para crear componentes solo para un tipo específico de inferencia, especifique el -i ImageClassification | ObjectDetection argumento.

Los componentes de inferencia y modelo de muestra para usarlos con SageMaker Edge Manager ahora se crean en su. Cuenta de AWS Para ver los componentes de muestra en la AWS IoT Greengrass consola, elija Componentes y, a continuación, en Mis componentes, busque los siguientes componentes:

  • com.greengrass.SageMakerEdgeManager.ImageClassification

  • com.greengrass.SageMakerEdgeManager.ImageClassification.Model

  • com.greengrass.SageMakerEdgeManager.ObjectDetection

  • com.greengrass.SageMakerEdgeManager.ObjectDetection.Model

Ejecute un ejemplo de inferencia de clasificación de imágenes

Para realizar una inferencia de clasificación de imágenes con los componentes AWS de muestra proporcionados y el agente de SageMaker Edge Manager, debe implementar estos componentes en su dispositivo principal. Al implementar estos componentes, se descarga un modelo Resnet-50 previamente preparado y SageMaker compilado en NEO e se instala el agente Edge Manager en el dispositivo. SageMaker El agente de SageMaker Edge Manager carga el modelo y publica los resultados de las inferencias sobre el tema. gg/sageMakerEdgeManager/image-classification Para ver estos resultados de inferencia, utilice el AWS IoT MQTT cliente de la AWS IoT consola para suscribirse a este tema.

Suscríbase al tema de notificaciones

En este paso, configurará el AWS IoT MQTT cliente de la AWS IoT consola para que vea MQTT los mensajes publicados por el componente de inferencia de muestra. De forma predeterminada, el componente publica los resultados de las inferencias sobre el gg/sageMakerEdgeManager/image-classification tema. Consulte este tema antes de implementar el componente en su dispositivo principal de Greengrass para ver los resultados de la inferencia cuando el componente se ejecute por primera vez.

Para suscribirse al tema de notificaciones predeterminado
  1. En el menú de navegación de la AWS IoT consola, selecciona Probar, MQTT probar cliente.

  2. En Suscribirse a un tema, en el cuadro Nombre del tema, introduzcagg/sageMakerEdgeManager/image-classification.

  3. Elija Suscribirse.

Implemente los componentes de muestra

En este paso, debe configurar e implementar los siguientes componentes en su dispositivo principal:

  • aws.greengrass.SageMakerEdgeManager

  • com.greengrass.SageMakerEdgeManager.ImageClassification

  • com.greengrass.SageMakerEdgeManager.ImageClassification.Model

  1. En el menú de navegación de la AWS IoT Greengrass consola, elija Implementaciones y, a continuación, elija la implementación del dispositivo de destino que desee revisar.

  2. En la página de despliegue, elija Revisar y, a continuación, elija Revisar despliegue.

  3. En la página Especificar destino, seleccione Siguiente.

  4. En la página Seleccionar componentes, haga lo siguiente:

    1. En Mis componentes, seleccione los siguientes componentes:

      • com.greengrass.SageMakerEdgeManager.ImageClassification

      • com.greengrass.SageMakerEdgeManager.ImageClassification.Model

    2. En Componentes públicos, desactive la opción Mostrar solo los componentes seleccionados y, a continuación, seleccione el aws.greengrass.SageMakerEdgeManager componente.

    3. Elija Next (Siguiente).

  5. En la página Configurar componentes, seleccione el aws.greengrass.SageMakerEdgeManager componente y haga lo siguiente.

    1. Seleccione Configurar componente.

    2. En Actualización de la configuración, en Configuración para fusionar, introduzca la siguiente configuración.

      { "DeviceFleetName": "device-fleet-name", "BucketName": "amzn-s3-demo-bucket" }

      Reemplazar device-fleet-name con el nombre de la flota de dispositivos perimetrales que creó y sustituya amzn-s3-demo-bucket con el nombre del depósito de S3 asociado a su flota de dispositivos.

    3. Seleccione Confirmar y, a continuación, elija Siguiente.

  6. En la página Configurar ajustes avanzados, mantenga los ajustes de configuración predeterminados y seleccione Siguiente.

  7. En la página de revisión, selecciona Implementar

  1. En su computadora de desarrollo, cree un deployment.json archivo para definir la configuración de implementación de los componentes de SageMaker Edge Manager. Este archivo debería ser igual al siguiente ejemplo.

    { "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": { } }, } }
    • En el targetArn campo, targetArn sustitúyalo por el nombre de recurso de Amazon (ARN) de la cosa o grupo de cosas a la que apunte la implementación, en el siguiente formato:

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

      • Grupo de cosas: arn:aws:iot:region:account-id:thinggroup/thingGroupName

    • En el merge campo, sustituya device-fleet-name por el nombre de la flota de dispositivos periféricos que ha creado. A continuación, sustituya amzn-s3-demo-bucket2 con el nombre del depósito de S3 asociado a su flota de dispositivos.

    • Sustituya las versiones de cada componente por la última versión disponible.

  2. Ejecute el siguiente comando para implementar los componentes en el dispositivo:

    aws greengrassv2 create-deployment \ --cli-input-json file://path/to/deployment.json

La implementación puede tardar varios minutos en completarse. En el siguiente paso, compruebe el registro de componentes para comprobar que la implementación se ha completado correctamente y para ver los resultados de la inferencia.

Vea los resultados de las inferencias

Tras implementar los componentes, puede ver los resultados de la inferencia en el registro de componentes de su dispositivo principal de Greengrass y en AWS IoT MQTT el cliente de la consola. AWS IoT Para suscribirse al tema sobre el que el componente publica los resultados de las inferencias, consulte. Suscríbase al tema de notificaciones

  • AWS IoT MQTTcliente: para ver los resultados que publica el componente de inferencia sobre el tema de notificaciones predeterminado, complete los siguientes pasos:

    1. En el menú de navegación de la AWS IoT consola, elija Probar, MQTT pruebe el cliente.

    2. En Suscripciones, seleccionagg/sageMakerEdgeManager/image-classification.

     

  • Registro de componentes: para ver los resultados de la inferencia en el registro de componentes, ejecute el siguiente comando en su dispositivo principal de Greengrass.

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

Si no puede ver los resultados de la inferencia en el registro de componentes o en el MQTT cliente, significa que la implementación ha fallado o no ha llegado al dispositivo principal. Esto puede ocurrir si el dispositivo principal no está conectado a Internet o no tiene los permisos adecuados para ejecutar el componente. Ejecute el siguiente comando en el dispositivo principal para ver el archivo de registro del software AWS IoT Greengrass principal. Este archivo incluye registros del servicio de despliegue del dispositivo principal de Greengrass.

sudo tail -f /greengrass/v2/logs/greengrass.log

Para obtener más información, consulte Solución de problemas de inferencia de aprendizaje automático.