Presentando Optimum El Kit de Herramientas de Optimización para Transformadores a Gran Escala

Introducing Optimum The Optimization Toolkit for Large-Scale Transformers.

Esta publicación es el primer paso de un viaje para Hugging Face para democratizar el rendimiento de producción de Aprendizaje Automático de vanguardia. Para llegar allí, trabajaremos mano a mano con nuestros Socios de Hardware, como lo hemos hecho con Intel a continuación. ¡Únete a nosotros en este viaje y sigue Optimum, nuestra nueva biblioteca de código abierto!

¿Por qué 🤗 Optimum?

🤯 Escalar Transformers es difícil

¿Qué tienen en común Tesla, Google, Microsoft y Facebook? Bueno, muchas cosas, pero una de ellas es que todos ejecutan miles de millones de predicciones de modelos Transformer todos los días. Transformers para AutoPilot para conducir tu Tesla (¡qué suerte!), para Gmail para completar tus frases, para Facebook para traducir tus publicaciones sobre la marcha, para Bing para responder tus consultas en lenguaje natural.

Los Transformers han logrado una mejora significativa en la precisión de los modelos de Aprendizaje Automático, han conquistado el Procesamiento del Lenguaje Natural (NLP) y ahora se están expandiendo a otras modalidades, comenzando con el habla y la visión. Pero llevar estos modelos masivos a la producción y hacer que se ejecuten rápidamente a gran escala es un gran desafío para cualquier equipo de Ingeniería de Aprendizaje Automático.

¿Qué sucede si no tienes cientos de Ingenieros de Aprendizaje Automático altamente capacitados en nómina como las compañías mencionadas anteriormente? A través de Optimum, nuestra nueva biblioteca de código abierto, nuestro objetivo es construir el conjunto de herramientas definitivo para el rendimiento de producción de los Transformers y permitir la máxima eficiencia para entrenar y ejecutar modelos en hardware específico.

🏭 Optimum pone a trabajar a los Transformers

Para obtener un rendimiento óptimo en el entrenamiento y servicio de modelos, las técnicas de aceleración del modelo deben ser específicamente compatibles con el hardware objetivo. Cada plataforma de hardware ofrece herramientas de software específicas, características y ajustes que pueden tener un gran impacto en el rendimiento. Del mismo modo, para aprovechar las técnicas avanzadas de aceleración del modelo, como la dispersión y la cuantificación, los núcleos optimizados deben ser compatibles con los operadores en silicio y específicos para el gráfico de la red neuronal derivado de la arquitectura del modelo. Sumergirse en esta matriz de compatibilidad tridimensional y aprender a utilizar las bibliotecas de aceleración del modelo es un trabajo desalentador, en el que pocos Ingenieros de Aprendizaje Automático tienen experiencia.

Optimum tiene como objetivo facilitar este trabajo, proporcionando herramientas de optimización de rendimiento que se dirigen a hardware de IA eficiente, construidas en colaboración con nuestros Socios de Hardware, y convertir a los Ingenieros de Aprendizaje Automático en magos de la Optimización de Aprendizaje Automático.

Con la biblioteca de Transformers, hemos facilitado a los investigadores e ingenieros el uso de modelos de vanguardia, abstrayendo la complejidad de los marcos de trabajo, las arquitecturas y los flujos de trabajo.

Con la biblioteca de Optimum, estamos facilitando a los ingenieros aprovechar todas las características de hardware disponibles a su disposición, abstrayendo la complejidad de la aceleración del modelo en plataformas de hardware.

🤗 Optimum en la práctica: cómo cuantizar un modelo para Intel Xeon CPU

🤔 ¿Por qué la cuantización es importante pero difícil de hacer correctamente?

Los modelos de lenguaje preentrenados como BERT han logrado resultados de vanguardia en una amplia gama de tareas de procesamiento del lenguaje natural, otros modelos basados en Transformers como ViT y Speech2Text han logrado resultados de vanguardia en visión por computadora y tareas de habla, respectivamente: los Transformers están en todas partes en el mundo del Aprendizaje Automático y están aquí para quedarse.

Sin embargo, poner modelos basados en Transformers en producción puede ser complicado y costoso, ya que requieren una gran cantidad de potencia informática para funcionar. Para resolver esto, existen muchas técnicas, siendo la más popular la cuantización. Desafortunadamente, en la mayoría de los casos, cuantizar un modelo requiere mucho trabajo, por muchas razones:

  1. El modelo necesita ser editado: algunas operaciones deben ser reemplazadas por sus contrapartes cuantizadas, se deben insertar nuevas operaciones (nodos de cuantización y des-cuantización) y otras deben adaptarse al hecho de que los pesos y las activaciones se cuantizarán.

Esta parte puede llevar mucho tiempo porque los marcos de trabajo como PyTorch funcionan en modo ansioso, lo que significa que los cambios mencionados anteriormente deben agregarse a la implementación del modelo en sí. PyTorch ahora proporciona una herramienta llamada torch.fx que te permite rastrear y transformar tu modelo sin tener que cambiar realmente la implementación del modelo, pero es complicado de usar cuando el rastreo no es compatible con tu modelo de manera predeterminada.

Además de la edición real, también es necesario encontrar qué partes del modelo deben ser editadas, qué operaciones tienen una contraparte de kernel cuantizada disponible y qué operaciones no la tienen, y así sucesivamente.

  1. Una vez que se ha editado el modelo, hay muchos parámetros con los que se puede jugar para encontrar la mejor configuración de cuantización:

    • ¿Qué tipo de observadores debo usar para la calibración del rango?
    • ¿Qué esquema de cuantización debo usar?
    • ¿Qué tipos de datos relacionados con la cuantización (int8, uint8, int16) son compatibles con mi dispositivo objetivo?
  2. Equilibrar el compromiso entre la cuantización y la pérdida de precisión aceptable.

  3. Exportar el modelo cuantizado para el dispositivo objetivo.

Aunque PyTorch y TensorFlow han avanzado mucho en facilitar la cuantización, las complejidades de los modelos basados en transformers hacen que sea difícil utilizar las herramientas proporcionadas tal cual y lograr que funcionen sin dedicar mucho esfuerzo.

💡 Cómo Intel está resolviendo la cuantización y más con Neural Compressor

Intel® Neural Compressor (anteriormente conocido como Low Precision Optimization Tool o LPOT) es una biblioteca de Python de código abierto diseñada para ayudar a los usuarios a implementar soluciones de inferencia de baja precisión. Esta última aplica recetas de baja precisión para modelos de aprendizaje profundo para lograr objetivos de producto óptimos, como rendimiento de inferencia y uso de memoria, con criterios de rendimiento esperados. Neural Compressor admite cuantización posterior al entrenamiento, entrenamiento consciente de la cuantización y cuantización dinámica. Para especificar el enfoque de cuantización, los objetivos y los criterios de rendimiento, el usuario debe proporcionar un archivo de configuración yaml que especifique los parámetros de ajuste. El archivo de configuración puede alojarse en el Model Hub de Hugging Face o puede proporcionarse a través de una ruta de directorio local.

🔥 Cómo cuantizar fácilmente Transformers para Intel Xeon CPUs con Optimum

Sigue a 🤗 Optimum: un viaje para democratizar el rendimiento de producción de ML

⚡️Estado del arte en hardware

Optimum se centrará en lograr un rendimiento de producción óptimo en hardware dedicado, donde se pueden aplicar técnicas de aceleración de software y hardware para obtener la máxima eficiencia. Trabajaremos mano a mano con nuestros socios de hardware para habilitar, probar y mantener la aceleración, y proporcionarla de manera fácil y accesible a través de Optimum, como lo hicimos con Intel y Neural Compressor. Pronto anunciaremos nuevos socios de hardware que se han unido a nosotros en nuestro viaje hacia la eficiencia del aprendizaje automático.

🔮 Modelos de última generación

La colaboración con nuestros socios de hardware producirá configuraciones y artefactos de modelos optimizados específicos de hardware, que pondremos a disposición de la comunidad de IA a través del Model Hub de Hugging Face. Esperamos que Optimum y los modelos optimizados para hardware aceleren la adopción de la eficiencia en las cargas de trabajo de producción, que representan la mayor parte de la energía total utilizada en el aprendizaje automático. Y sobre todo, esperamos que Optimum acelere la adopción de Transformers a gran escala, no solo para las grandes empresas de tecnología, sino para todos nosotros.

🌟 Un viaje de colaboración: únete a nosotros, sigue nuestro progreso

Todo viaje comienza con un primer paso, y el nuestro fue el lanzamiento público de Optimum. Únete a nosotros y da tu primer paso dándole una estrella a la biblioteca, para que puedas seguirnos a medida que presentamos nuevos hardware compatibles, técnicas de aceleración y modelos optimizados.

Si te gustaría ver nuevo hardware y características soportadas en Optimum, o estás interesado en unirte a nosotros para trabajar en la intersección de software y hardware, por favor contáctanos en [email protected]

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

Ciencias de la Computación

Mercedes incorpora ChatGPT en sus coches.

El fabricante de automóviles alemán Mercedes-Benz se ha asociado con Microsoft para agregar el software de inteligenc...

Inteligencia Artificial

Mejora Amazon Lex con LLMs y mejora la experiencia de las preguntas frecuentes utilizando la ingestión de URL

En el mundo digital de hoy, la mayoría de los consumidores prefieren encontrar respuestas a sus preguntas de servicio...

Inteligencia Artificial

Inteligencia Artificial (IA) y Web3 ¿Cómo están conectados?

¿Qué es la IA? En pocas palabras, la Inteligencia Artificial (IA) es la capacidad de las máquinas para realizar funci...

Inteligencia Artificial

Robot aprende a limpiar el espacio tal como te gusta

Los roboticistas desarrollaron un robot que puede limpiar espacios basándose en las preferencias personales de los us...

Inteligencia Artificial

La IA podría introducir mensajes secretos en memes

Los científicos de la computación afirman haber creado el primer algoritmo para ocultar mensajes de manera invisible ...

Inteligencia Artificial

El jurado encuentra que la tienda de aplicaciones de Google violó las leyes antimonopolio

En una decisión histórica, Epic Games ganó su demanda contra el gigante de búsqueda.