En la era de la omnipresencia de los dispositivos inteligentes, anhelamos que nuestros teléfonos, tabletas e incluso dispositivos domésticos inteligentes cuenten con una capacidad de procesamiento inteligente más potente. Sin embargo, estos dispositivos periféricos tienen recursos de hardware limitados, especialmente en términos de memoria y capacidad de cálculo, lo que limita la implementación y ejecución de modelos lingüísticos grandes (LLM) en ellos. ¿Imaginen si pudiéramos dotar a estos dispositivos de modelos capaces de comprender el lenguaje natural, responder preguntas e incluso crear contenido? ¿Cómo cambiaría eso nuestro mundo?

image.png

Este es el contexto en el que nace la tecnología T-MAC. T-MAC, cuyo nombre completo es "Table-Lookup-based MAC", es un método basado en tablas de búsqueda que permite la ejecución eficiente de modelos lingüísticos grandes de bajo bit en la CPU, permitiendo así una mejora inteligente en los dispositivos periféricos.

Los modelos lingüísticos grandes suelen contener miles de millones, incluso cientos de miles de millones de parámetros, que requieren una gran cantidad de memoria para su almacenamiento. Para implementar estos modelos en dispositivos periféricos, necesitamos cuantificar los pesos del modelo, es decir, utilizar menos bits para representar los pesos, reduciendo así el consumo de memoria del modelo. Sin embargo, los modelos cuantificados requieren multiplicaciones de matrices de precisión mixta (mpGEMM) durante el cálculo, algo poco común en los sistemas de hardware y software existentes, y que carece de soporte eficiente.

image.png

La idea central de T-MAC es transformar las operaciones de multiplicación tradicionales basadas en datos en búsquedas en tablas de búsqueda (LUT) basadas en bits. Este método no solo elimina las operaciones de multiplicación, sino que también reduce las operaciones de suma, lo que aumenta considerablemente la eficiencia del cálculo.

Específicamente, T-MAC se implementa mediante los siguientes pasos:

Descomponer la matriz de pesos en varias matrices de un bit.

Calcular previamente el producto del vector de activación y todos los posibles patrones de un bit, y almacenar los resultados en una tabla de búsqueda.

Durante la inferencia, obtener rápidamente el resultado final de la multiplicación de matrices mediante el índice de la tabla de búsqueda y la operación de suma.

Mediante pruebas en varios dispositivos periféricos, T-MAC ha demostrado una ventaja de rendimiento significativa. En comparación con la implementación actual de llama.cpp, T-MAC ha mejorado el rendimiento en 4 veces y ha reducido el consumo de energía en un 70%. Esto permite que incluso los dispositivos de gama baja, como la Raspberry Pi 5, generen tokens a una velocidad superior a la velocidad de lectura media de un adulto.

T-MAC no solo tiene ventajas teóricas, sino que también tiene potencial para aplicaciones prácticas. Ya sea para el reconocimiento de voz en tiempo real y el procesamiento del lenguaje natural en teléfonos inteligentes, o para proporcionar una experiencia de interacción más inteligente en dispositivos domésticos inteligentes, T-MAC puede desempeñar un papel importante.

La tecnología T-MAC proporciona una solución eficiente y de bajo consumo para la implementación de modelos lingüísticos grandes de bajo bit en dispositivos periféricos. No solo puede mejorar el nivel de inteligencia de los dispositivos, sino que también puede brindar a los usuarios una experiencia inteligente más rica y conveniente. Con el desarrollo y la optimización continuos de la tecnología, tenemos razones para creer que T-MAC desempeñará un papel cada vez más importante en el campo de la inteligencia periférica.

Dirección del código abierto: https://github.com/microsoft/T-MAC

Dirección del artículo: https://www.arxiv.org/pdf/2407.00088