Acelerando Hugging Face Transformers con AWS Inferentia2

'Acelerando Hugging Face Transformers con AWS Inferentia2' - Translating to English, it means 'Accelerating Hugging Face Transformers with AWS Inferentia2.'

En los últimos cinco años, los modelos Transformer [1] se han convertido en el estándar de facto para muchas tareas de aprendizaje automático (ML), como el procesamiento del lenguaje natural (NLP), la visión por computadora (CV), el habla y más. Hoy en día, muchos científicos de datos e ingenieros de ML confían en arquitecturas de transformadores populares como BERT [2], RoBERTa [3], el Vision Transformer [4] o cualquiera de los más de 130,000 modelos preentrenados disponibles en el repositorio de Hugging Face para resolver problemas empresariales complejos con una precisión de vanguardia.

Sin embargo, a pesar de todas sus ventajas, los Transformers pueden ser difíciles de implementar en producción. Además de la infraestructura típicamente asociada con la implementación de modelos, que en gran medida hemos resuelto con nuestro servicio de Puntos de Inferencia, los Transformers son modelos grandes que suelen superar la marca de varios gigabytes. Los modelos de lenguaje grandes (LLM) como GPT-J-6B, Flan-T5 o Opt-30B tienen decenas de gigabytes, por no mencionar a los gigantes como BLOOM, nuestro propio LLM, que alcanza los 350 gigabytes.

Ajustar estos modelos en un solo acelerador puede ser bastante difícil, y mucho más obtener el alto rendimiento y la baja latencia de inferencia que requieren las aplicaciones, como las aplicaciones de conversación y búsqueda. Hasta ahora, los expertos en ML han diseñado técnicas manuales complejas para dividir modelos grandes, distribuirlos en un clúster de aceleradores y optimizar su latencia. Desafortunadamente, este trabajo es extremadamente difícil, lleva mucho tiempo y está completamente fuera del alcance de muchos profesionales de ML.

En Hugging Face, democratizamos el ML y siempre buscamos asociarnos con empresas que también creen que todos los desarrolladores y organizaciones deben beneficiarse de los modelos de vanguardia. Con este propósito, nos complace asociarnos con Amazon Web Services para optimizar los Transformers de Hugging Face para AWS Inferentia 2. ¡Es un nuevo acelerador de inferencia especialmente diseñado que ofrece niveles sin precedentes de rendimiento, latencia, rendimiento por vatio y escalabilidad!

Presentando AWS Inferentia2

AWS Inferentia2 es la próxima generación de Inferentia1 lanzada en 2019. Impulsado por Inferentia1, las instancias de Amazon EC2 Inf1 ofrecieron un 25% más de rendimiento y un 70% menos de costo que las instancias G5 comparables basadas en la GPU NVIDIA A10G, y con Inferentia2, AWS está empujando los límites nuevamente.

El nuevo chip Inferentia2 ofrece un aumento de 4 veces en el rendimiento y una reducción de 10 veces en la latencia en comparación con Inferentia. De manera similar, las nuevas instancias de Amazon EC2 Inf2 tienen hasta un 2.6 veces mejor rendimiento, una latencia un 8.1 veces menor y un rendimiento por vatio un 50% mejor que las instancias G5 comparables. Inferentia 2 te ofrece lo mejor de ambos mundos: optimización del costo por inferencia gracias al alto rendimiento y tiempo de respuesta bajo para tu aplicación gracias a una baja latencia de inferencia.

Las instancias Inf2 están disponibles en varios tamaños, que están equipados con entre 1 y 12 chips Inferentia 2. Cuando hay varios chips presentes, están interconectados mediante una conexión directa de alta velocidad de Inferentia2 a Inferentia2 para inferencia distribuida en modelos grandes. Por ejemplo, el tamaño de instancia más grande, inf2.48xlarge, tiene 12 chips y suficiente memoria para cargar un modelo de 175 mil millones de parámetros como GPT-3 o BLOOM.

Afortunadamente, nada de esto afecta la complejidad del desarrollo. Con optimum neuron, no necesitas dividir ni modificar tu modelo. Gracias a la integración nativa en el SDK de AWS Neuron, todo lo que se necesita es una línea de código para compilar tu modelo para Inferentia 2. ¡Puedes experimentar en minutos! Prueba el rendimiento que tu modelo podría alcanzar en Inferentia 2 y compruébalo por ti mismo.

Hablando de eso, permítenos mostrarte cómo se ejecutan varios modelos de Hugging Face en Inferentia 2. ¡Tiempo de comparar!

Comparación de modelos de Hugging Face en AWS Inferentia 2

Evaluamos algunos de los modelos de NLP más populares del repositorio de Hugging Face, incluyendo BERT, RoBERTa, DistilBERT y modelos de visión como Vision Transformers.

La primera comparación de rendimiento se realiza entre Inferentia, Inferentia 2 y GPUs. Realizamos todos los experimentos en AWS con los siguientes tipos de instancias:

  • Inferentia1 – inf1.2xlarge impulsado por un solo chip Inferentia.
  • Inferentia2 – inf2.xlarge impulsado por un solo chip Inferentia2.
  • GPU – g5.2xlarge impulsado por una sola GPU NVIDIA A10G.

Nota: no hemos optimizado el modelo para el entorno de GPU, los modelos fueron evaluados en fp32.

Cuando se trata de medir el rendimiento de los modelos Transformer, hay dos métricas que son las más adoptadas:

  • Latencia: el tiempo que tarda el modelo en realizar una única predicción (preprocesamiento, predicción, postprocesamiento).
  • Rendimiento: el número de ejecuciones realizadas en una cantidad fija de tiempo para una configuración de referencia.

Analizamos la latencia en diferentes configuraciones y modelos para comprender los beneficios y las compensaciones de la nueva instancia Inferentia2. Si desea ejecutar el benchmark usted mismo, hemos creado un repositorio de Github con toda la información y los scripts necesarios.

Resultados

El benchmark confirma que las mejoras de rendimiento afirmadas por AWS se pueden reproducir y validar mediante casos de uso y ejemplos reales. En promedio, AWS Inferentia2 ofrece una latencia 4,5 veces mejor que las GPUs NVIDIA A10G y una latencia 4 veces mejor que las instancias Inferentia1.

Ejecutamos 144 experimentos en 6 arquitecturas de modelos diferentes:

  • Aceleradores: Inf1, Inf2, NVIDIA A10G
  • Modelos: BERT-base, BERT-Large, RoBERTa-base, DistilBERT, ALBERT-base, ViT-base
  • Longitud de secuencia: 8, 16, 32, 64, 128, 256, 512
  • Tamaño de lote: 1

En cada experimento, recopilamos datos de latencia p95. Puede encontrar todos los detalles del benchmark en esta hoja de cálculo: HuggingFace: Benchmark Inferentia2.

Vamos a resaltar algunas ideas clave del benchmark.

BERT-base

Aquí se muestra la comparación de latencia para ejecutar BERT-base en cada una de las configuraciones de infraestructura, con una escala logarítmica para la latencia. Es notable ver cómo Inferentia2 supera a todas las demás configuraciones en aproximadamente 6 veces para longitudes de secuencia de hasta 256.

Figura 1. Latencia p95 de BERT-base

Vision Transformer

Aquí se muestra la comparación de latencia para ejecutar ViT-base en las diferentes configuraciones de infraestructura. Inferentia2 ofrece una latencia 2 veces mejor que la de NVIDIA A10G, lo que puede ser de gran ayuda para que las empresas pasen de arquitecturas tradicionales, como las CNN, a Transformers para aplicaciones en tiempo real.

Figura 1. Latencia p95 de ViT

Conclusión

Los modelos Transformer han surgido como la solución preferida para muchas tareas de aprendizaje automático. Sin embargo, implementarlos en producción ha sido todo un desafío debido a su gran tamaño y requisitos de latencia. Gracias a AWS Inferentia2 y la colaboración entre Hugging Face y AWS, los desarrolladores y las organizaciones ahora pueden aprovechar los beneficios de los modelos de última generación sin necesidad de tener una amplia experiencia en aprendizaje automático. Puede comenzar a probarlos por tan solo 0,76 $/h.

Los resultados iniciales del benchmark son prometedores y demuestran que Inferentia2 ofrece un rendimiento de latencia superior en comparación con Inferentia y las GPUs NVIDIA A10G. Este último avance promete que los modelos de aprendizaje automático de alta calidad puedan estar disponibles para un público mucho más amplio, brindando accesibilidad de IA a todos.

We will continue to update Zepes; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

Aprendizaje Automático

Escribir canciones con GPT-4 Parte 3, Melodías

Cómo usar ChatGPT con GPT-4 de OpenAI para escribir melodías para nuevas canciones utilizando tablaturas de guitarra ...

Inteligencia Artificial

Investigadores de la Universidad de Tokio presentan una nueva técnica para proteger las aplicaciones sensibles basadas en Inteligencia Artificial (IA) de los atacantes.

En los últimos años, el rápido progreso en Inteligencia Artificial (IA) ha llevado a su amplia aplicación en varios d...

Inteligencia Artificial

Mejorando la Sumarización de GPT-4 a través de una Cadena de Indicaciones de Densidad

Los Modelos de Lenguaje Grandes han ganado mucha atención en los últimos tiempos debido a sus excelentes capacidades....

Ciencia de Datos

META's Hiera reduce la complejidad para aumentar la precisión.

Las redes convolucionales han dominado el campo de la visión por computadora durante más de veinte años. Con la llega...

Inteligencia Artificial

Cómo los científicos están descifrando códigos históricos para revelar secretos perdidos

El proyecto DECRYPT, una colaboración entre lingüistas y científicos de la computación, tiene como objetivo automatiz...