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 dejará de fabricarse el 26 de abril de 2024. Para obtener más información sobre cómo seguir implementando sus modelos en los dispositivos periféricos, consulte el final del ciclo de vida de SageMaker Edge Manager.

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 periféricos 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 monitoreo 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 GLX de la API 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 DOC-EXAMPLE-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 el documento DOC-EXAMPLE-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 de política de 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 política gestionada por AmazonSageMakerEdgeDeviceFleetPolicyIAM.

    • La política gestionada por AmazonSageMakerFullAccessIAM.

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

      { "Version": "2012-10-17", "Statement": [ { "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-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 conAWS 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 rol de IAM, introduzca el nombre de recurso de Amazon (ARN) del alias AWS IoT del rol que especificó al configurar su dispositivo principal de Greengrass.

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

  4. Elija Siguiente.

  5. En Configuración de salida, para el URI del bucket de S3, introduzca el URI del bucket 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 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 lugarNube 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 enNube de AWS.

    python3 create_components.py -r region -b DOC-EXAMPLE-BUCKET

    Sustituya la región por la Región de AWS que creó su dispositivo principal de Greengrass y sustituya DOC-EXAMPLE-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 Greengrassconsola, 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 cliente AWS IoT MQTT de la AWS IoT consola para suscribirse a este tema.

Suscríbase al tema de notificaciones

En este paso, configurará el cliente AWS IoT MQTT de la AWS IoT consola para ver los mensajes MQTT publicados por el componente de inferencia de muestra. De forma predeterminada, el componente publica los resultados de las inferencias sobre el tema. gg/sageMakerEdgeManager/image-classification 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 IoTconsola, elija Test, MQTT test client.

  2. En Suscribirse a un tema, en el cuadro Nombre del tema, escribagg/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 Greengrassconsola, 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 Select components, 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 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": "DOC-EXAMPLE-BUCKET" }

      device-fleet-nameSustitúyalo por el nombre de la flota de dispositivos perimetrales que has creado y sustituye DOC-EXAMPLE-BUCKET por el nombre del depósito de S3 que está asociado a tu 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\":\"DOC-EXAMPLE-BUCKET2\"}" } }, "com.greengrass.SageMakerEdgeManager.ImageClassification": { "componentVersion": "1.0.x", "configurationUpdate": { } }, "com.greengrass.SageMakerEdgeManager.ImageClassification.Model": { "componentVersion": "1.0.x", "configurationUpdate": { } }, } }
    • En el targetArn campo, targetArnsustitú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, device-fleet-namesustitúyalo por el nombre de la flota de dispositivos perimetrales que creaste. A continuación, sustituya DOC-EXAMPLE-BUCKET2 por el nombre del depósito 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 el cliente MQTT 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 IoTCliente MQTT: 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 IoTconsola, elija Test, MQTT test client.

    2. En Suscripciones, elijagg/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 cliente MQTT, 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.