

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
<a name="get-started-with-edge-manager-on-greengrass"></a>

**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](https://docs.aws.amazon.com/sagemaker/latest/dg/edge-eol.html).

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, consulte[Utilice Amazon SageMaker AI Edge Manager en los dispositivos principales de Greengrass](use-sagemaker-edge-manager.md).

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 ](https://docs.aws.amazon.com/sagemaker/latest/dg/edge.html) 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.

**Topics**
+ [Requisitos previos](#edge-manager-getting-started-prereqs)
+ [Configure su dispositivo principal de Greengrass en SageMaker AI Edge Manager](#greengrass-edge-manager-set-up)
+ [Creación de los componentes de muestra](#create-sample-sme-ml-components)
+ [Ejecución de un ejemplo de inferencia de clasificación de imágenes](#run-sample-sme-image-classification-inference)

## Requisitos previos
<a name="edge-manager-getting-started-prereqs"></a>

Para completar este tutorial, necesita cumplir con los siguientes requisitos previos:
+ <a name="sm-req-core-device"></a>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](getting-started.md).
+ <a name="sm-req-python"></a>[Python](https://www.python.org/downloads/) 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:
  + Versión 3.6 o posterior de [Python](https://www.python.org/downloads/) instalada.
  + AWS CLI instalado y configurado con sus credenciales de usuario de administrador de IAM. Para obtener más información, consulte [Instalación de la AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html) y [Configuración de la AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html). 
+ 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](https://docs.aws.amazon.com/AmazonS3/latest/userguide/GetStartedWithS3.html).
+ El [rol del dispositivo de Greengrass](device-service-role.md) se configuró con lo siguiente: 
  + <a name="sm-req-iam-trust-relationship"></a>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" 
        } 
      ] 
    }
    ```
  + <a name="sm-req-iam-sagemanakeredgedevicefleetpolicy"></a>La política gestionada por [ AmazonSageMakerEdgeDeviceFleetPolicy ](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/service-role/AmazonSageMakerEdgeDeviceFleetPolicy) IAM.
  + La política gestionada por [ AmazonSageMakerFullAccess ](https://console.aws.amazon.com/iamv2/home?region=us-east-1#/policies/details/arn%3Aaws%3Aiam%3A%3Aaws%3Apolicy%2FAmazonSageMakerFullAccess?section=policy_permissions) 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
<a name="greengrass-edge-manager-set-up"></a>

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.

**Topics**
+ [Creación de una flota de dispositivos de periferia](#create-edge-device-fleet-for-greengrass)
+ [Registro del dispositivo principal de Greengrass](#register-greengrass-core-device-in-sme)

### Creación de una flota de dispositivos de periferia
<a name="create-edge-device-fleet-for-greengrass"></a>

**Cómo crear una flota de dispositivos de periferia (consola)**

1. En la consola [ Amazon SageMaker AI](https://console.aws.amazon.com/sagemaker), elige ** Edge Manager y**, a continuación, elige las flotas ** de dispositivos ** Edge.

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

1. 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**. 

1. Elija **Siguiente**.

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

1. Seleccione **Enviar**.

### Registro del dispositivo principal de Greengrass
<a name="register-greengrass-core-device-in-sme"></a>

**Cómo registrar el dispositivo principal de Greengrass como dispositivo de periferia (consola)**

1. En la consola [ Amazon SageMaker AI](https://console.aws.amazon.com/sagemaker), selecciona ** Edge Manager y**, a continuación, elige dispositivos ** ** Edge.

1. En la página **Dispositivos**, seleccione **Registrar dispositivo**.

1. 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**.

1. Elija **Siguiente**.

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

1. Seleccione **Enviar**.

## Creación de los componentes de muestra
<a name="create-sample-sme-ml-components"></a>

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 ](https://github.com/aws-greengrass/aws-greengrass-component-examples/)AWS IoT Greengrass componentes en tu GitHub ordenador de desarrollo. 

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

   ```
   cd {{download-directory}}/machine-learning/sagemaker-edge-manager
   ```

1. 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
   ```

   {{region}}Sustitú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](https://console.aws.amazon.com/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
<a name="run-sample-sme-image-classification-inference"></a>

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. 

**Topics**
+ [Suscripción al tema de notificaciones](#sme-image-classification-subscribe)
+ [Implementación de los componentes de muestra](#sme-image-classification-deploy)
+ [Visualización de los resultados de inferencia](#sme-image-classification-inference-results)

### Suscripción al tema de notificaciones
<a name="sme-image-classification-subscribe"></a>

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](https://console.aws.amazon.com/iot/), seleccione **Prueba, cliente de prueba de MQTT**.

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

1. Seleccione **Suscribirse**.

### Implementación de los componentes de muestra
<a name="sme-image-classification-deploy"></a>

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` 

#### Para implementar sus componentes (consola)
<a name="sme-image-classification-deploy-console"></a>

1. En el menú de navegación de la [consola de AWS IoT Greengrass](https://console.aws.amazon.com/greengrass), elija **Implementaciones** y, a continuación, elija la implementación del dispositivo de destino que desee revisar.

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

1. En la página **Especificar destino**, seleccione **Siguiente**.

1. 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` 

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

   1. Elija **Siguiente**.

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

   1. Seleccione **Configurar componente**.

   1. 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-name}}Sustitú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.

   1. Seleccione **Confirmar** y, a continuación, elija **Siguiente**.

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

1. En la página **Revisar**, elija **Implementar**.

#### Para implementar sus componentes (AWS CLI)
<a name="sme-image-classification-deploy-cli"></a>

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.

1. 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
<a name="sme-image-classification-inference-results"></a>

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](#sme-image-classification-subscribe).
+ **AWS IoT Cliente MQTT**: para ver los resultados que publica el componente de inferencia sobre el tema [ de las notificaciones ](#sme-image-classification-subscribe) por defecto, complete los pasos siguientes:

  1. En el menú de navegación de la [consola de AWS IoT](https://console.aws.amazon.com/iot/), seleccione **Prueba, cliente de prueba de MQTT**.

  1. 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](ml-troubleshooting.md).