View a markdown version of this page

Tutorial: Cómo empezar a SageMaker usar AI 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 SageMaker usar AI Edge Manager

importante

SageMaker AI Edge Manager dejó de fabricarse el 26 de abril de 2024. Para obtener más información sobre cómo seguir implementando tus modelos en dispositivos periféricos, consulta el artículo sobre el final del ciclo de vida de SageMaker AI Edge Manager.

Amazon SageMaker AI Edge Manager es un agente de software que se ejecuta en dispositivos periféricos. SageMaker AI Edge Manager proporciona una gestión de modelos para dispositivos periféricos, de modo que pueda empaquetar y utilizar los Neo-compiled modelos de Amazon SageMaker AI directamente en los dispositivos principales de Greengrass. Al usar SageMaker AI Edge Manager, también puede muestrear los datos de entrada y salida del modelo de sus dispositivos principales y enviar esos datos a los dispositivos principales Nube de AWS para su supervisión y análisis. Para obtener más información sobre cómo funciona SageMaker AI Edge Manager en los dispositivos principales de Greengrass, consulteUtilice Amazon SageMaker AI Edge Manager en los dispositivos principales de Greengrass.

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

Para configurar y usar el agente SageMaker AI Edge Manager en un dispositivo principal de Greengrass existente, AWS proporciona un código de ejemplo que puedes 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 SageMaker AI Edge Manager.

Requisitos previos

Para completar este tutorial, necesita cumplir con los siguientes requisitos previos:

  • Un dispositivo principal de Greengrass que se ejecute en Amazon Linux 2, una plataforma Debian-based Linux (x86_64 o Armv8) o Windows (x86_64). Si no dispone de una, consulte Tutorial: Cómo empezar con AWS IoT Greengrass V2.

  • Python 3.6 o posterior, incluido pip para la versión de Python, instalado en el dispositivo principal.

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

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

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

  • Los siguientes buckets de S3 se crearon en el mismo dispositivo central de Greengrass Cuenta de AWS y Región de AWS en él:

    • Un bucket de S3 para almacenar los artefactos que se incluyen en los componentes de inferencia y modelo de muestra. En este tutorial se utiliza amzn-s3-demo-bucket1 para referirse a este bucket.

    • Un bucket de S3 que asocias a tu flota de dispositivos SageMaker periféricos de IA. SageMaker AI Edge Manager requiere un depósito de S3 para crear la flota de dispositivos periféricos y almacenar datos de muestra obtenidos de la ejecución de inferencias en tu dispositivo. En este tutorial se utiliza amzn-s3-demo-bucket2 para referirse a este bucket.

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

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

    • Una relación de confianza que permite a credentials.iot.amazonaws.com y a sagemaker.amazonaws.com asumir 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 AmazonSageMakerEdgeDeviceFleetPolicy IAM.

    • La política gestionada por AmazonSageMakerFullAccess IAM.

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

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

Configure su dispositivo principal de Greengrass en SageMaker AI Edge Manager

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

Creación de una flota de dispositivos de periferia

Cómo crear una flota de dispositivos de periferia (consola)
  1. En la consola Amazon SageMaker AI, elige Edge Manager y, a continuación, elige las flotas de dispositivos Edge.

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

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

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

    • Para el rol de IAM, ingrese el nombre de recurso de Amazon (ARN) del alias del rol AWS IoT que especificó cuando configuró el 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. Seleccione Enviar.

Registro del dispositivo principal de Greengrass

Cómo registrar el dispositivo principal de Greengrass como dispositivo de periferia (consola)
  1. En la consola Amazon SageMaker AI, selecciona Edge Manager y, a continuación, elige dispositivos Edge.

  2. En la página Dispositivos, seleccione Registrar dispositivo.

  3. Dentro de Propiedades del dispositivo, en Nombre de la flota de dispositivos, introduzca el nombre de la flota de dispositivos que creó y, a continuación, seleccione Siguiente.

  4. Elija Siguiente.

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

  6. Seleccione Enviar.

Creación de los componentes de muestra

Para ayudarle a empezar a utilizar el componente SageMaker AI Edge Manager, encontrará una secuencia AWS de comandos de Python en la GitHub que se crean los componentes de ejemplo de inferencia y modelo y se cargan en él. Nube de AWS Complete los siguientes pasos en una computadora de desarrollo.

Cómo crear los componentes de muestra
  1. Descarga el repositorio de ejemplos de AWS IoT Greengrass componentes en tu GitHub ordenador de desarrollo.

  2. Diríjase a la carpeta /machine-learning/sagemaker-edge-manager descargada.

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

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

    regionSustitúyalo por el Región de AWS lugar en el que creó su dispositivo principal de Greengrass y sustituya amzn-s3-demo-bucket1 por el nombre del bucket de 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 argumento -i ImageClassification | ObjectDetection.

Los ejemplos de componentes de inferencia y modelo para usarlos con AI Edge Manager ya se crean en tu. SageMaker Cuenta de AWS Para ver los componentes de muestra en la consola de AWS IoT Greengrass, 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

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

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

Suscripción al tema de notificaciones

En este paso, configurará el cliente AWS IoT MQTT en la AWS IoT consola para ver los mensajes de 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 el dispositivo principal de Greengrass para ver los resultados de la inferencia cuando el componente se ejecute por primera vez.

Cómo suscribirse al tema de notificaciones predeterminado
  1. En el menú de navegación de la consola de AWS IoT, seleccione Prueba, cliente de prueba de MQTT.

  2. En Suscripción a un tema, en el cuadro Nombre del tema, introduzca gg/sageMakerEdgeManager/image-classification.

  3. Seleccione Suscribirse.

Implementación de los componentes de muestra

En este paso, configurará e implementará los siguientes componentes en el dispositivo principal:

  • aws.greengrass.SageMakerEdgeManager

  • com.greengrass.SageMakerEdgeManager.ImageClassification

  • com.greengrass.SageMakerEdgeManager.ImageClassification.Model

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

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

  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 componente aws.greengrass.SageMakerEdgeManager.

    3. Elija Siguiente.

  5. En la página Configurar componentes, seleccione el componente aws.greengrass.SageMakerEdgeManager 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" }

      device-fleet-nameSustitúyalos por el nombre de la flota de dispositivos periféricos que creó y amzn-s3-demo-bucket sustitúyalos por el nombre del bucket de S3 que está 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 Revisar, elija Implementar.

  1. En tu ordenador de desarrollo, crea un deployment.json archivo para definir la configuración de implementación de tus componentes de SageMaker AI 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 campo targetArn, sustituya targetArn 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-name sustitúyelo por el nombre de la flota de dispositivos periféricos que creaste. A continuación, amzn-s3-demo-bucket2 sustitúyalo por el nombre del bucket 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.

Visualización de los resultados de inferencia

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

  • AWS IoT Cliente MQTT: para ver los resultados que publica el componente de inferencia sobre el tema de las notificaciones por defecto, complete los pasos siguientes:

    1. En el menú de navegación de la consola de AWS IoT, seleccione Prueba, cliente de prueba de MQTT.

    2. En Suscripciones, elija gg/sageMakerEdgeManager/image-classification.

     

  • Registro de componentes: para ver los resultados de la inferencia en el registro de componentes, ejecute el siguiente comando en el 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 falló o no llegó 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 su dispositivo principal para ver el archivo de registro del software AWS IoT Greengrass principal. Este archivo incluye registros del servicio de implementación del dispositivo principal de Greengrass.

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

Para obtener más información, consulte Resolución de problemas de inferencia de machine learning.