AWS Neuron

SDK para optimizar la inferencia de machine learning en chips de AWS Inferentia

AWS Neuron es un kit de desarrollo de software (SDK) para ejecutar la inferencia de machine learning con los chips de AWS Inferentia. Cuenta con un compilador, un tiempo de ejecución y herramientas de generación de perfiles que les permiten a los desarrolladores ejecutar inferencia de alto rendimiento y baja latencia con instancias Inf1 de Amazon EC2 basadas en AWS Inferentia. Al usar Neuron, los desarrolladores pueden formar fácilmente modelos de machine learning en cualquier marco conocido, como TensorFlow, PyTorch y MXNet, y ejecutarlo de forma óptima en instancias Inf1 de Amazon EC2. Puede seguir usando los mismos marcos de ML que usa actualmente y migrar el software a instancias Inf1 con muy pocos cambios en el código y sin tener que recurrir a soluciones específicas de proveedores.

La forma más rápida y fácil de comenzar con las instancias Inf1 es con Amazon SageMaker, un servicio completamente administrado que les permite a los desarrolladores y a los científicos de datos crear, formar e implementar los modelos de machine learning de forma rápida. Los desarrolladores que prefieren administrar sus propios flujos de trabajo de machine learning notarán que AWS Neuron es fácil de integrar en sus flujos de trabajo existentes y futuros, ya que está integrado de forma nativa con marcos populares, como TensorFlow, PyTorch y MXNet. Neuron viene preinstalado en AWS Deep Learning AMIs y AWS Deep Learning Containers. Los clientes que utilizan aplicaciones de contenedor pueden implementar Neuron con Amazon ECS, Amazon EKS o el motor de contenedor nativo que elijan.

Beneficios

Facilidad de uso

El SDK de AWS Neuron está integrado con marcos populares, como TensorFlow, PyTorch y MXNet. Viene preinstalado en Deep Learning AMIs de Amazon y Deep Learning Containers de Amazon para que los clientes comiencen rápidamente a ejecutar inferencia de alto rendimiento y bajo costo en instancias Inf1 de Amazon EC2, que cuentan con chips de AWS Inferentia.

Rendimiento optimizado

El SDK de AWS Neuron les habilita acceso eficiente a la programación y el tiempo de ejecución a los chips de Inferentia. Proporciona capacidades avanzadas, como por ejemplo Auto Casting, que convierte automáticamente modelos FP32 (punto flotante de 32 bits), que están optimizados para una mayor precisión, a bfloat de 16 bits para maximizar el rendimiento del procesamiento. Los desarrolladores pueden mejorar aún más el rendimiento gracias a las características de Neuron, como el paralelismo de modelos, el sistema de procesamiento por lotes, o los grupos de NeuronCore que permiten el paralelismo de datos de los mismos modelos o de modelos diferentes en paralelo para un máximo rendimiento.

Flexibilidad y opciones

Dado que el Neuron está integrado con marcos de machine learning conocidos, los desarrolladores pueden implementar sus modelos existentes en instancias Inf1 de EC2 con mínimos cambios en el código. De esa forma, tendrán libertad para mantener la portabilidad del hardware y aprovechar las tecnologías más recientes sin tener que limitarse a una solución específica del proveedor. Con Neuron, los desarrolladores pueden implementar muchos modelos de machine learning, como el detector de disparo único (SSD) o ResNet para el reconocimiento y la clasificación de imágenes, así como también Transformer y BERT para la traducción y el procesamiento de lenguaje natural. Asimismo, la compatibilidad con el repositorio de modelos HuggingFace en Neuron permite que los clientes puedan compilar y ejecutar inferencias con modelos ya formados, o incluso perfeccionados, de forma fácil. Para ello, basta con cambiar una única línea del código.

Características

Partición inteligente

AWS Neuron optimiza automáticamente la informática de red neuronal para ejecutar tareas intensivas en Inferentia y otras tareas en la CPU para aumentar el rendimiento general. 

FP32 Autocasting

AWS Neuron toma modelos FP32 formados de alta precisión y les aplica la difusión automática a BF16 para lograr una inferencia de alto rendimiento al menor costo y la mayor velocidad del tipo de datos de 16 bits. 

Canalización de NeuronCore

La canalización de NeuronCore habilita un paralelismo de modelos de alto rendimiento para aplicaciones sensibles a la latencia, como por ejemplo, el procesamiento de lenguaje natural mediante la partición de un gráfico informático a través de diferentes NeuronCores, almacenar los parámetros del modelo en la memoria del chip de cada núcleo y luego, transmitir las solicitudes de inferencia a través de los núcleos de manera canalizada. 

Grupos de NeuronCore

Los grupos de NeuronCore les permiten a los desarrolladores implementar actualmente múltiples modelos para utilizar recursos de hardware de la mejor manera y ejecutar diferentes modelos en cada uno de los grupos.

Procesamiento por lotes optimizado

AWS Neuron optimiza cargas de trabajo en el chip de Inferentia para alcanzar una utilización máxima en pequeños lotes, lo que permite un alto rendimiento para aplicaciones que tienen requisitos estrictos de tiempo de respuesta.

Funcionamiento

how-it-works-inf1

Chips de AWS Inferentia

AWS Inferentia es un chip de inferencias de aprendizaje automático diseñado y creado por AWS con el fin de ofrecer un alto rendimiento a un costo bajo. Cada chip de AWS Inferentia tiene 4 núcleos NeuronCores y admite los tipos de datos FP16, BF16 e INT8. Los chips de AWS Inferentia cuentan con una gran cantidad de memoria en chip que se puede utilizar para detectar grandes modelos; esto es particularmente beneficioso para los modelos que requieren un acceso frecuente a la memoria.

Más información »

Instancias Inf1 de Amazon EC2

Las instancias Inf1 de Amazon EC2 basadas en chips de AWS Inferentia brindan un rendimiento 2,3 veces mayor y un costo hasta un 70 % menor por inferencia en comparación con las instancias de Amazon EC2 basadas en GPU. Las instancias Inf1 cuentan con hasta 16 chips de AWS Inferentia, los últimos procesadores personalizados Intel® Xeon® escalables de segunda generación y con redes de hasta 100 Gbps para lograr una inferencia de alto rendimiento.

Más información »

Introducción

Consulte la documentación para ver tutoriales, guías, notas de la aplicación y planes de desarrollo.
Si necesita más ayuda, hay un foro de desarrolladores disponible a través de la consola de AWS o en https://forums.aws.amazon.com/forum.jspa?forumID=355