T-MAC: Rinascita delle CPU tramite Table Lookup per il Deployment di LLM a Basso Bit su Dispositivi Edge
T-MAC: CPU Renaissance via Table Lookup for Low-Bit LLM Deployment on Edge
June 25, 2024
Autori: Jianyu Wei, Shijie Cao, Ting Cao, Lingxiao Ma, Lei Wang, Yanyong Zhang, Mao Yang
cs.AI
Abstract
Il dispiegamento di Large Language Models (LLM) su dispositivi edge sta diventando sempre più importante per migliorare l'intelligenza on-device. La quantizzazione dei pesi è cruciale per ridurre l'impronta di memoria degli LLM sui dispositivi. Tuttavia, gli LLM a basso bit richiedono la moltiplicazione di matrici a precisione mista (mpGEMM) tra pesi a bassa precisione e attivazioni ad alta precisione durante l'inferenza. I sistemi esistenti, privi di supporto nativo per mpGEMM, ricorrono alla dequantizzazione dei pesi per eseguire calcoli ad alta precisione. Questo approccio indiretto può portare a un significativo sovraccarico durante l'inferenza.
In questo articolo, introduciamo T-MAC, un metodo innovativo basato su lookup table (LUT) progettato per un'inferenza efficiente di LLM a basso bit (ovvero LLM con pesi quantizzati) su CPU. T-MAC supporta direttamente mpGEMM senza dequantizzazione, eliminando contemporaneamente le moltiplicazioni e riducendo le addizioni necessarie. Nello specifico, T-MAC trasforma la tradizionale moltiplicazione centrata sul tipo di dati in una ricerca bit-wise su tabella, consentendo una soluzione mpGEMM unificata e scalabile.
I nostri kernel basati su LUT scalano linearmente rispetto alla larghezza in bit dei pesi. Valutato su modelli a basso bit come Llama e BitNet, T-MAC dimostra un aumento fino a 4x della velocità di elaborazione e una riduzione del 70% nel consumo energetico rispetto a llama.cpp. Per BitNet-b1.58-3B, T-MAC offre una velocità di generazione di token di 30 token/s con un singolo core e 71 token/s con otto core su M2-Ultra, e 11 token/s su dispositivi di fascia bassa come Raspberry Pi 5, superando significativamente la velocità media di lettura di un adulto. T-MAC, con il paradigma di calcolo basato su LUT, apre la strada al dispiegamento pratico di LLM a basso bit su dispositivi edge con risorse limitate senza compromettere l'efficienza computazionale. Il sistema è open-source all'indirizzo https://github.com/microsoft/T-MAC.
English
The deployment of Large Language Models (LLMs) on edge devices is
increasingly important to enhance on-device intelligence. Weight quantization
is crucial for reducing the memory footprint of LLMs on devices. However,
low-bit LLMs necessitate mixed precision matrix multiplication (mpGEMM) of low
precision weights and high precision activations during inference. Existing
systems, lacking native support for mpGEMM, resort to dequantize weights for
high precision computation. Such an indirect way can lead to a significant
inference overhead.
In this paper, we introduce T-MAC, an innovative lookup table(LUT)-based
method designed for efficient low-bit LLM (i.e., weight-quantized LLM)
inference on CPUs. T-MAC directly supports mpGEMM without dequantization, while
simultaneously eliminating multiplications and reducing additions required.
Specifically, T-MAC transforms the traditional data-type-centric multiplication
to bit-wise table lookup, and enables a unified and scalable mpGEMM solution.
Our LUT-based kernels scale linearly to the weight bit-width. Evaluated on
low-bit Llama and BitNet models, T-MAC demonstrates up to 4x increase in
throughput and 70% reduction in energy consumption compared to llama.cpp. For
BitNet-b1.58-3B, T-MAC delivers a token generation throughput of 30 tokens/s
with a single core and 71 tokens/s with eight cores on M2-Ultra, and 11
tokens/s on lower-end devices like Raspberry Pi 5, which significantly exceeds
the adult average reading speed. T-MAC with LUT-based computing paradigm, paves
the way for the practical deployment of low-bit LLMs on resource-constrained
edge devices without compromising computational efficiency. The system is
open-sourced at https://github.com/microsoft/T-MAC.