Efficient INT8 Inference of Small NLP Models on Server CPUs with PyTorch Native Stack
Este artículo presenta una implementación nativa en PyTorch de SmoothQuant para la inferencia en INT8 de modelos pequeños de PLN en CPUs de servidor, logrando una aceleración de rendimiento de hasta 5.8x con una pérdida de precisión insignificante mediante la fusión a nivel de grafo y la selección optimizada de kernels, con la solución ya integrada en PyTorch y TorchAO.
Artículo original bajo licencia CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Esta es una explicación generada por IA del artículo a continuación. No ha sido escrita ni avalada por los autores. Para mayor precisión técnica, consulte el artículo original. Leer descargo de responsabilidad completo
En el mundo de la inteligencia artificial, una revolución silenciosa está ocurriendo junto a los ruidosos titulares sobre chatbots masivos y omniscientes. Mientras el ojo público está fijo en modelos enormes que pueden escribir poesía o resolver complejos acertijos lógicos, los motores que impulsan el tráfico diario de internet —resultados de búsqueda, recomendaciones de productos y filtros de spam— dependen de programas más pequeños y especializados. Estos programas, a menudo basados en una familia de diseños conocidos como BERT, son los caballos de batalla de la economía digital. Funcionan en servidores informáticos estándar, del tipo que se encuentran en los centros de datos de todo el mundo, en lugar de en tarjetas gráficas especializadas y costosas. Para estos sistemas, la velocidad y el costo importan más que el tamaño bruto. El desafío para los ingenieros ha sido, durante mucho tiempo, cómo hacer que estos modelos funcionen más rápido sin sacrificar la precisión que los mantiene útiles. Una forma poderosa de lograr esto es simplificando las matemáticas que realiza la computadora, intercambiando una pizca de precisión por una ganancia masiva en velocidad, una técnica conocida como cuantización.
Un equipo de investigadores de Intel Corporation ha construido ahora un puente que permite que estos modelos de lenguaje más pequeños funcionen con esta matemática simplificada directamente dentro de las herramientas de software más populares utilizadas por los desarrolladores hoy en día. Su trabajo se centra en un método específico llamado SmoothQuant, que prepara un modelo para manejar la matemática simplificada sin perder su capacidad de comprender el lenguaje. Al integrar este método en el stack de software estándar de PyTorch, han creado una vía que no requiere herramientas de terceros especiales ni reescrituras complejas. El resultado es un sistema que puede tomar un modelo de lenguaje estándar y hacerlo funcionar significativamente más rápido en procesadores de servidor modernos, todo ello manteniendo las respuestas que ofrece tan correctas como antes.
Los investigadores comenzaron con un problema común: a pesar de que los procesadores de computadora modernos tienen instrucciones integradas para manejar la matemática simplificada rápidamente, las herramientas de software utilizadas para construir estos modelos a menudo no sabían cómo usarlas de manera eficiente. Cuando se preparaba un modelo para ganar velocidad, el software a menudo se quedaba estancado en los pasos necesarios para convertir datos o gestionar los cálculos simplificados, desperdiciando la misma velocidad que el hardware prometía. Para solucionar esto, el equipo combinó tres piezas distintas de tecnología en un flujo de trabajo único y fluido. Primero, utilizaron una herramienta llamada TorchAO para preparar el modelo, suavizando los datos para que pudieran ser simplificados de forma segura. Después, utilizaron un compilador llamado TorchInductor para observar todo el flujo de los cálculos del modelo y fusionarlos, eliminando pasos innecesarios que usualmente ralentizan las cosas. Finalmente, le enseñaron al sistema a elegir la forma absolutamente más rápida de realizar las operaciones matemáticas centrales, dependiendo de si el procesador de la computadora era un modelo más nuevo con capacidades avanzadas o un modelo más antiguo y confiable que todavía está ampliamente en uso.
Para probar su creación, el equipo realizó experimentos en dos generaciones diferentes de procesadores de servidor Intel. Probaron el sistema en tres tipos diferentes de modelos de lenguaje, que iban desde versiones grandes y complejas hasta otras más pequeñas y compactas. Los resultados fueron impactantes. En los procesadores más nuevos, el sistema funcionó hasta 5.8 veces más rápido que la versión estándar no optimizada. En los procesadores más antiguos, aun así logró funcionar casi tres veces más rápido. Quizás lo más importante es que la velocidad no llegó a costa de la calidad. Cuando los investigadores probaron los modelos en tareas del mundo real, como responder preguntas de un texto o juzgar el sentimiento de una oración, los modelos simplificados obtuvieron las respuestas con la misma frecuencia que las versiones originales más lentas. En muchos casos, la diferencia en la precisión fue tan pequeña que ni siquiera pudo medirse.
El equipo también analizó de cerca por qué ocurrieron las ganancias de velocidad, utilizando un método que mapea los límites de qué tan rápido una computadora puede mover datos frente a qué tan rápido puede calcular. Descubrieron que, para los procesadores más nuevos, la velocidad estaba limitada por la rapidez con la que se movían los datos, mientras que para los procesadores más antiguos, estaba limitada por la rapidez con la que se realizaban las matemáticas. Su sistema logró navegar ambos límites de manera efectiva. Descubrieron que, al preparar los datos con antelación y eliminar la necesidad de que la computadora se detuviera a reorganizar la información mientras trabajaba, podían desbloquear todo el potencial del hardware. Incluso encontraron un ingenioso truco para los procesadores más antiguos que carecen de una instrucción específica para la matemática simplificada, permitiéndoles usar una instrucción diferente y disponible para lograr resultados similares.
Este trabajo es importante porque elimina una barrera significativa para las empresas que desean implementar estos modelos de manera eficiente. Anteriormente, obtener este nivel de rendimiento a menudo significaba usar herramientas especializadas que eran difíciles de mantener o que requerían dejar el entorno de software estándar. Ahora, los desarrolladores pueden simplemente usar las herramientas que ya conocen para obtener este alto rendimiento. Los investigadores han compartido su código con la comunidad en general, lo que significa que cualquier persona que utilice estas herramientas estándar puede acceder a esta mejora de velocidad de inmediato. El estudio confirma que es posible hacer que los caballos de batalla de internet sean más rápidos y eficientes sin cambiar la naturaleza fundamental de los modelos o el software en el que se ejecutan. Al optimizar cuidadosamente cómo la computadora maneja las matemáticas, el equipo ha demostrado que el futuro de la inteligencia artificial eficiente en servidores estándar no es solo una posibilidad, sino una realidad que está lista para ser usada hoy mismo.
¿Ahogado en artículos de tu campo?
Recibe resúmenes diarios de los artículos más novedosos que coincidan con tus palabras clave de investigación — con resúmenes técnicos, en tu idioma.