Descargar y configurar el agente de Edge Manager manualmente - Amazon SageMaker AI

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.

Descargar y configurar el agente de Edge Manager manualmente

Descargue el agente de Edge Manager en función del sistema operativo, la arquitectura y la región AWS . El agente se actualiza periódicamente, por lo que tiene la opción de elegir su agente en función de las fechas de lanzamiento y las versiones. Una vez que tenga el agente, cree un archivo de configuración JSON. Especifique el nombre del dispositivo IoT, el nombre de la flota, las credenciales del dispositivo y otros pares clave-valor. Consulte Ejecutar el agente de Edge Manager para obtener la lista completa de claves que debe especificar en el archivo de configuración. Puede ejecutar el agente como un archivo binario ejecutable o vincularlo a él como objeto compartido dinámico (DSO).

Cómo funciona el agente

El agente se ejecuta en la CPU de sus dispositivos. El agente realiza inferencias sobre la estructura y el hardware del dispositivo de destino especificado durante el trabajo de compilación. Por ejemplo, si compiló el modelo para Jetson Nano, el agente es compatible con la GPU en el Deep Learning Runtime (DLR) proporcionado.

El agente se publica en formato binario para los sistemas operativos compatibles. Compruebe que su sistema operativo sea compatible y cumpla los requisitos mínimos de sistema operativo de la siguiente tabla:

Linux

Versión: Ubuntu 18.04

Formatos binarios compatibles: x86-64 bits (binario ELF) y ARMv8 64 bits (binario ELF)

Windows

Versión: Windows 10 versión 1909

Formatos binarios compatibles: x86-32 bits (DLL) y x86-64 bits (DLL)

Instalación del agente de Edge Manager

Para usar el agente de Edge Manager, primero debe obtener los artefactos de versión y un certificado raíz. Los artefactos de versión se almacenan en un bucket de Amazon S3 en la región us-west-2. Para descargar los artefactos, especifique su sistema operativo (<OS>) y la <VERSION>.

En función del sistema operativo, sustituya <OS> por uno de los siguientes elementos:

Windows de 32 bits Windows de 64 bits Linux x86-64 Linux ARMv8
Windows x86 windows-x64 Linux x64 linux-armv8

La VERSION se divide en tres componentes: <MAJOR_VERSION>.<YYYY-MM-DD>-<SHA-7>, donde:

  • <MAJOR_VERSION>: Versión de lanzamiento. La versión de lanzamiento está configurada actualmente en 1.

  • <YYYY-MM-DD>: La marca de tiempo de versión de los artefactos.

  • <SHA-7>: El ID de confirmación del repositorio a partir del cual se creó la versión.

Debe proporcionar la <MAJOR_VERSION> y la marca de tiempo en formato YYYY-MM-DD. Le sugerimos que utilice la última marca de tiempo de versión del artefacto.

Ejecute lo siguiente en su línea de comandos para obtener la última marca de tiempo. Sustituya <OS> por su sistema operativo:

aws s3 ls s3://sagemaker-edge-release-store-us-west-2-<OS>/Releases/ | sort -r

Por ejemplo, si tiene un sistema operativo Windows de 32 bits, ejecute:

aws s3 ls s3://sagemaker-edge-release-store-us-west-2-windows-x86/Releases/ | sort -r

Esto muestra:

2020-12-01 23:33:36 0 PRE 1.20201218.81f481f/ PRE 1.20201207.02d0e97/

El resultado que aparece en este ejemplo muestra dos artefactos de versión. El archivo de artefactos de la primera versión indica que la versión publicada tiene una versión principal de1, una marca de tiempo 20201218 (en YYYY-MM-DD formato) y un identificador de confirmación de 81f481f SHA-7.

nota

El comando anterior supone que ha configurado AWS Command Line Interface. Para obtener más información sobre cómo configurar los ajustes con los AWS CLI que interactúa AWS, consulte Configuración de la AWS CLI.

Según el sistema operativo, utilice los siguientes comandos para instalar los artefactos:

Windows 32-bit
aws s3 cp s3://sagemaker-edge-release-store-us-west-2-windows-x86/Releases/<VERSION>/<VERSION>.zip . aws s3 cp s3://sagemaker-edge-release-store-us-west-2-windows-x86/Releases/<VERSION>/sha256_hex.shasum .
Windows 64-bit
aws s3 cp s3://sagemaker-edge-release-store-us-west-2-windows-x64/Releases/<VERSION>/<VERSION>.zip . aws s3 cp s3://sagemaker-edge-release-store-us-west-2-windows-x64/Releases/<VERSION>/sha256_hex.shasum .
Linux x86-64
aws s3 cp s3://sagemaker-edge-release-store-us-west-2-linux-x64/Releases/<VERSION>/<VERSION>.tgz . aws s3 cp s3://sagemaker-edge-release-store-us-west-2-linux-x64/Releases/<VERSION>/sha256_hex.shasum .
Linux ARMv8
aws s3 cp s3://sagemaker-edge-release-store-us-west-2-linux-armv8/Releases/<VERSION>/<VERSION>.tgz . aws s3 cp s3://sagemaker-edge-release-store-us-west-2-linux-armv8/Releases/<VERSION>/sha256_hex.shasum .

También debe descargar un certificado raíz. Este certificado valida los artefactos del modelo firmados por ellos AWS antes de cargarlos en los dispositivos perimetrales.

Sustituya el <OS> correspondiente a su plataforma de la lista de sistemas operativos compatibles y sustituya <REGION> por su región AWS .

aws s3 cp s3://sagemaker-edge-release-store-us-west-2-<OS>/Certificates/<REGION>/<REGION>.pem .

Ejecutar el agente de Edge Manager

Puede ejecutar el agente SageMaker AI Edge Manager como un proceso independiente en forma de archivo binario ejecutable y enlazable (ELF), o bien puede crear un enlace con él como un objeto compartido dinámico (.dll). Linux admite su ejecución como binario ejecutable independiente, siendo éste el modo preferido. Windows admite su ejecución como un objeto compartido (.dll).

En Linux, se recomienda ejecutar el binario a través de un servicio que forme parte de su sistema de inicialización (init). Si desea ejecutar el binario directamente, puede hacerlo en un terminal como se muestra en el siguiente ejemplo. Si tiene un sistema operativo moderno, no es necesario realizar ninguna otra instalación antes de ejecutar el agente, ya que todos los requisitos están integrados de forma estática en el ejecutable. Esto le da flexibilidad para ejecutar el agente en la terminal, como servicio o dentro de un contenedor.

Para ejecutar el agente, cree un archivo de configuración JSON. Especifique los siguientes pares clave-valor:

  • sagemaker_edge_core_device_name: el nombre del dispositivo. El nombre de este dispositivo debe registrarse junto con la flota de dispositivos en la consola de SageMaker Edge Manager.

  • sagemaker_edge_core_device_fleet_name: el nombre de la flota a la que pertenece el dispositivo.

  • sagemaker_edge_core_region: la AWS región asociada al dispositivo, la flota y los depósitos de Amazon S3. Esto corresponde a la región en la que está registrado el dispositivo y en la que se creó el bucket de Amazon S3 (está previsto que sean iguales). Los propios modelos se pueden compilar con SageMaker Neo en una región diferente; esta configuración no está relacionada con la región de compilación de modelos.

  • sagemaker_edge_core_root_certs_path: la ruta absoluta de la carpeta a certificados raíz. Se utiliza para validar el dispositivo con la AWS cuenta correspondiente.

  • sagemaker_edge_provider_aws_ca_cert_file: La ruta absoluta al certificado Amazon Root CA (AmazonRootCA1.pem). Se utiliza para validar el dispositivo con la cuenta correspondiente AWS . AmazonCAes un certificado propiedad de AWS.

  • sagemaker_edge_provider_aws_cert_file: La ruta absoluta para AWS IoT firmar el certificado raíz (*.pem.crt).

  • sagemaker_edge_provider_aws_cert_pk_file: La ruta absoluta a la clave AWS IoT privada. (*.pem.key).

  • sagemaker_edge_provider_aws_iot_cred_endpoint: El punto final de AWS IoT las credenciales (identifier.iot. region.amazonaws.com). Este punto de conexión se utiliza para la validación de credenciales. Consulte Conexión de dispositivos a AWS IoT para obtener más información.

  • sagemaker_edge_provider_provider: esto indica la implementación de la interfaz de proveedor que se está utilizando. La interfaz de proveedor se comunica con los servicios de red finales para cargas, latidos y validación de registros. De forma predeterminada, se establece en "Aws". Permitimos implementaciones personalizadas de la interfaz de proveedor. Se puede configurar en None para ningún proveedor o Custom para una implementación personalizada con la ruta de objetos compartidos correspondiente proporcionada.

  • sagemaker_edge_provider_provider_path: proporciona la ruta absoluta al objeto compartido de implementación del proveedor (archivo .so o .dll). El archivo .dll o .so de proveedor "Aws" se suministra con la versión del agente. Este campo es obligatorio.

  • sagemaker_edge_provider_s3_bucket_name: el nombre del bucket de Amazon S3 (no el URI del bucket de Amazon S3). El bucket debe tener una cadena sagemaker en su nombre.

  • sagemaker_edge_log_verbose (Booleano): opcional. Esto configura el registro de depuración. Seleccione True o False.

  • sagemaker_edge_telemetry_libsystemd_path: solo para Linux, systemd implementa la métrica del contador de bloqueos del agente. Configure la ruta absoluta de libsystemd para activar la métrica del contador de bloqueos. Puede encontrar la ruta predeterminada de libsystemd ejecutando whereis libsystemd en el terminal del dispositivo.

  • sagemaker_edge_core_capture_data_destination: el destino para cargar los datos de captura. Elija "Cloud" o "Disk". El valor predeterminado se establece en "Disk". Si lo configura en "Disk" escribe los tensores de entrada y salida y los datos auxiliares en el sistema de archivos local, en la ubicación que prefiera. Al escribir en "Cloud" para usar el nombre del bucket de Amazon S3 proporcionado en la configuración sagemaker_edge_provider_s3_bucket_name.

  • sagemaker_edge_core_capture_data_disk_path: establezca la ruta absoluta en el sistema de archivos local, en el que se escriben los archivos de datos de captura cuando "Disk" es el destino. Este campo no se utiliza cuando "Cloud" se especifica como destino.

  • sagemaker_edge_core_folder_prefix: el prefijo principal en Amazon S3 donde se almacenan los datos capturados cuando se especifica "Cloud" como destino de los datos de captura (sagemaker_edge_core_capture_data_disk_path). Los datos capturados se almacenan en una subcarpeta de sagemaker_edge_core_capture_data_disk_path si "Disk" se establece como destino de datos.

  • sagemaker_edge_core_capture_data_buffer_size (Valor entero): tamaño del búfer circular de datos de captura. Indica el número máximo de solicitudes almacenadas en el búfer.

  • sagemaker_edge_core_capture_data_batch_size (Valor entero): tamaño del lote de datos de captura. Indica el tamaño de un lote de solicitudes que se gestionan desde el búfer. Este valor debe ser inferior a sagemaker_edge_core_capture_data_buffer_size. Se recomienda un máximo de la mitad del tamaño del búfer para el tamaño del lote.

  • sagemaker_edge_core_capture_data_push_period_seconds (Valor entero): el período de inserción de datos de captura en segundos. Un lote de solicitudes en el búfer se gestiona cuando hay solicitudes del tamaño de un lote en el búfer o cuando se ha completado este período de tiempo (lo que ocurra primero). Esta configuración establece ese período de tiempo.

  • sagemaker_edge_core_capture_data_base64_embed_limit: el límite para cargar los datos de captura en bytes. Valor entero.

El archivo de configuración debe ser similar al siguiente ejemplo (con sus valores específicos especificados). En este ejemplo se utiliza el AWS proveedor predeterminado ("Aws") y no se especifica una carga periódica.

{ "sagemaker_edge_core_device_name": "device-name", "sagemaker_edge_core_device_fleet_name": "fleet-name", "sagemaker_edge_core_region": "region", "sagemaker_edge_core_root_certs_path": "<Absolute path to root certificates>", "sagemaker_edge_provider_provider": "Aws", "sagemaker_edge_provider_provider_path" : "/path/to/libprovider_aws.so", "sagemaker_edge_provider_aws_ca_cert_file": "<Absolute path to Amazon Root CA certificate>/AmazonRootCA1.pem", "sagemaker_edge_provider_aws_cert_file": "<Absolute path to AWS IoT signing root certificate>/device.pem.crt", "sagemaker_edge_provider_aws_cert_pk_file": "<Absolute path to AWS IoT private key.>/private.pem.key", "sagemaker_edge_provider_aws_iot_cred_endpoint": "https://<AWS IoT Endpoint Address>", "sagemaker_edge_core_capture_data_destination": "Cloud", "sagemaker_edge_provider_s3_bucket_name": "sagemaker-bucket-name", "sagemaker_edge_core_folder_prefix": "Amazon S3 folder prefix", "sagemaker_edge_core_capture_data_buffer_size": 30, "sagemaker_edge_core_capture_data_batch_size": 10, "sagemaker_edge_core_capture_data_push_period_seconds": 4000, "sagemaker_edge_core_capture_data_base64_embed_limit": 2, "sagemaker_edge_log_verbose": false }

El artefacto de versión incluye un ejecutable binario llamado sagemaker_edge_agent_binary en el directorio /bin. Para ejecutar el binario, utilice la marca -a para crear un descriptor de archivo de socket (.sock) en el directorio que elija y especifique la ruta del archivo de configuración JSON del agente que creó con la marca -c.

./sagemaker_edge_agent_binary -a <ADDRESS_TO_SOCKET> -c <PATH_TO_CONFIG_FILE>

En el siguiente ejemplo, se muestra el fragmento de código con una ruta de archivo y un directorio especificados:

./sagemaker_edge_agent_binary -a /tmp/sagemaker_edge_agent_example.sock -c sagemaker_edge_config.json

En este ejemplo, se crea un descriptor de archivo de socket denominado sagemaker_edge_agent_example.sock en el directorio /tmp y apunta a un archivo de configuración que se encuentra en el mismo directorio de trabajo del agente denominado sagemaker_edge_config.json.