Amazon SageMaker Neo
Ejecute modelos de aprendizaje automático en cualquier lugar con hasta un rendimiento 25 veces mejor
Amazon SageMaker Neo permite a los desarrolladores optimizar los modelos de aprendizaje automático (ML) para realizar inferencias con SageMaker en la nube y en dispositivos compatibles en el borde.
La inferencia de aprendizaje automático es el proceso que consiste en utilizar un modelo de aprendizaje automático entrenado para efectuar predicciones. Luego de entrenar un modelo para lograr que tenga una precisión alta, los desarrolladores suelen dedicar mucho tiempo y esfuerzo a ajustar el modelo para obtener un alto rendimiento. Para realizar inferencias en la nube, los desarrolladores suelen optar por utilizar grandes instancias con mucha capacidad de memoria e importantes capacidades de procesamiento a costos más altos para lograr un rendimiento mejor. Para efectuar inferencias en los dispositivos de borde con capacidades de memoria y cómputo limitadas, los desarrolladores suelen dedicar meses al ajuste manual del modelo para lograr un rendimiento aceptable dentro de las limitaciones que presenta el hardware del dispositivo.
Amazon SageMaker Neo optimiza automáticamente los modelos de aprendizaje automático para que las inferencias que se realicen en las instancias en la nube y en los dispositivos de borde se lleven a cabo más rápido y sin ninguna pérdida de precisión. Comience con un modelo de machine learning que ya se haya creado con DarkNet, Keras, MXNet, PyTorch, TensorFlow, TensorFlow-Lite, ONNX o XGBoost y que se haya entrenado con Amazon SageMaker o cualquier otra herramienta. Luego, elija la plataforma de equipos de destino, que puede ser una instancia de alojamiento de SageMaker o un dispositivo periférico basado en procesadores de Ambarella, Apple, ARM, Intel, MediaTek, Nvidia, NXP, Qualcomm, RockChip o Texas Instruments. Con un solo clic, SageMaker Neo optimiza el modelo entrenado y lo compila en un archivo ejecutable. El compilador utiliza un modelo de aprendizaje automático para aplicar las optimizaciones de rendimiento que extraen el mejor rendimiento disponible para su modelo en la instancia en la nube o el dispositivo de borde. Luego, implemente el modelo como un punto de enlace de SageMaker o en dispositivos de borde compatibles y comience a efectuar predicciones.
Para la realización de inferencias en la nube, SageMaker Neo acelera el proceso y ahorra costos al crear un contenedor optimizado para la inferencia en el alojamiento de SageMaker. Para la realización de inferencias en el borde, SageMaker Neo ahorra a los desarrolladores meses de trabajo manual al ajustar el modelo automáticamente para el sistema operativo y el hardware de procesador seleccionados.
Amazon SageMaker Neo utiliza Apache TVM y compiladores y bibliotecas de aceleración proporcionados por socios para ofrecer el mejor rendimiento disponible para un modelo y un destino de hardware determinados. AWS aporta el código del compilador al proyecto de Apache TVM y el código de tiempo de ejecución al proyecto de código abierto de Neo-AI, bajo la licencia de software de Apache, para permitir a los proveedores de procesadores y los fabricantes de dispositivos efectuar innovaciones con rapidez en un tiempo de ejecución compacto común.
Funcionamiento
Beneficios
Rendimiento 25 veces superior
Amazon SageMaker Neo optimiza automáticamente los modelos de aprendizaje automático para que trabajen hasta 25 veces más rápido sin perder nada de precisión. SageMaker Neo utiliza la cadena de herramientas que mejor se adapta a su modelo y plataforma de hardware de destino, al mismo tiempo que proporciona una API estándar sencilla para la compilación del modelo.
Tiempo de ejecución consumido menor a una décima parte
El tiempo de ejecución de Amazon SageMaker Neo consume solo la décima parte de lo que consume un marco de aprendizaje profundo como TensorFlow o PyTorch. En lugar de instalar el marco en su hardware de destino, debe cargar la biblioteca de tiempo de ejecución compacto de Neo en su aplicación de aprendizaje automático. A diferencia de un marco compacto como TensorFlow-Lite, el tiempo de ejecución de Neo puede ejecutar modelos entrenados en cualquiera de los marcos admitidos por el compilador de Neo.
Menos tiempo para llegar a la etapa de producción
Amazon SageMaker Neo facilita la preparación del modelo para su implementación en prácticamente cualquier plataforma de hardware con solo unos pocos clics en la consola de Amazon SageMaker. Se obtienen todos los beneficios del ajuste manual sin tener que realizar ninguno de los esfuerzos que implica dicho ajuste.
Características clave
Optimiza la inferencia sin comprometer la precisión
Amazon SageMaker Neo utiliza técnicas basadas en investigaciones en compiladores de aprendizaje automático para optimizar su modelo para el hardware de destino. Mediante la aplicación automática de estas técnicas sistemáticas de optimización, SageMaker Neo acelera los modelos sin provocar ninguna pérdida de precisión.
Es compatible con los marcos de aprendizaje automático más conocidos
Amazon SageMaker Neo convierte un modelo con el formato de marco específico de DarkNet, Keras, MXNet, PyTorch, TensorFlow, TensorFlow-Lite, ONNX o XGBoost en una representación común, optimiza los cómputos y genera un archivo ejecutable específico del hardware para la instancia de alojamiento de destino de SageMaker o el dispositivo de borde.
Proporciona un tiempo de ejecución compacto con API estándar
El tiempo de ejecución de Amazon SageMaker Neo ocupa 1 MB de almacenamiento y 2 MB de memoria, lo que es muchas veces menor que el consumo de almacenamiento y memoria de un marco, al mismo tiempo que ofrece una API común sencilla para ejecutar un modelo compilado originado en cualquier marco.
Es compatible con plataformas de destino conocidas
El tiempo de ejecución de Amazon SageMaker Neo es compatible con los sistemas operativos de Android, Linux y Windows y con los procesadores de Ambarella, ARM, Intel, Nvidia, NXP, Qualcomm y Texas Instruments. SageMaker Neo también convierte los modelos de PyTorch y TensorFlow al formato Core ML para su despliegue en macOS, iOS, iPadOS, watchOS y tvOS en los dispositivos Apple.
Proporciona a las instancias de alojamiento de Amazon SageMaker contenedores optimizados para la inferencia
Para la realización de inferencias en la nube, Amazon SageMaker Neo proporciona contenedores optimizados para la inferencia que incluyen MXNet, PyTorch y TensorFlow integrados al tiempo de ejecución de Neo. Anteriormente, SageMaker Neo no hubiera podido compilar modelos que usaran operadores no compatibles. En la actualidad, SageMaker Neo optimiza cada modelo en la medida en que el compilador admite los operadores del modelo y utiliza el marco para ejecutar el resto del modelo no compilado. Como resultado, puede ejecutar cualquier modelo de MXNet, PyTorch o TensorFlow en los contenedores optimizados para la inferencia y obtener un mejor rendimiento para los modelos que se pueden compilar.
Ofrece partición de modelos para hardware heterogéneo
Amazon SageMaker Neo aprovecha las bibliotecas de aceleradores proporcionadas por socios para obtener el mejor rendimiento disponible para un modelo de aprendizaje profundo en plataformas de hardware heterogéneas con un acelerador de hardware y una CPU. Cada una de las bibliotecas de aceleración como Ambarella CV Tools, Nvidia Tensor RT y Texas Instruments TIDL admiten un conjunto específico de funciones y operadores. SageMaker Neo divide su modelo automáticamente para que la parte con operadores admitidos por el acelerador pueda ejecutarse en él, mientras el resto del modelo se ejecuta en la CPU. De esta manera, SageMaker Neo aprovecha al máximo el acelerador de hardware, lo que incrementa los tipos de modelos que se pueden ejecutar en el hardware mientras mejora el rendimiento del modelo en la medida en que sus operadores sean compatibles con el acelerador.
Ofrece compatibilidad con las instancias INF1 de Amazon SageMaker
Amazon SageMaker Neo ahora compila modelos para los destinos de instancias INF1 de Amazon SageMaker. El alojamiento de SageMaker proporciona un servicio administrado para la inferencia en las instancias INF1, que están basadas en el chip de AWS Inferentia. SageMaker Neo proporciona la API estándar de compilación de modelos mientras utiliza el compilador Neuron específico para el procesador de Inferentia en segundo plano, lo que simplifica la tarea de preparar un modelo para su implementación en la instancia INF1 de SageMaker, al mismo tiempo que ofrece el mejor rendimiento disponible y ahorros de costos de la instancia INF1.
Blogs
Harvesting success using Amazon SageMaker to power Bayer’s digital farming unit
Marisa Messina | 5 de agosto de 2019
Amazon SageMaker Neo Enables Pioneer’s Machine Learning in Cars
Satadal Bhattacharjee | 11 de junio de 2019
Amazon SageMaker Neo Helps Detect Objects and Classify Images on Edge Devices
Satadal Bhattacharjee | 12 de junio de 2019
AWS launches open source Neo-AI project to accelerate ML deployments on edge devices
Sukwon Kim y Vin Sharma | 23 de enero de 2019