随着大型语言模型(LLM)在智能设备上的广泛应用,如何在资源受限的边缘设备上高效部署LLM成为了一个关键问题。最近,微软研究院提出了一种名为T-MAC的创新方法,通过查表法(LUT)在CPU上实现低比特LLM(即权重量化LLM)的高效推理。T-MAC直接支持混合精度矩阵乘法(mpGEMM),无需解量化,同时消除了所需的乘法和加法。
T-MAC通过将传统的数据类型为中心的乘法转换为位级查表,实现了统一且可扩展的mpGEMM解决方案。具体而言,T-MAC将mpGEMM分解为一系列(等于权重比特宽度)的mpGEMM,其中激活和一位矩阵之间进行乘法,然后累加部分结果。这种方法可以支持任何激活和权重的比特宽度组合。
为了实现高效的位级查表计算,T-MAC提出了一种LUT中心数据布局,以确保LUT驻留在高速片上内存中,并通过轴重排和数据分块来提高数据重用率。此外,T-MAC还提出了表量化和镜像合并等技术,以减少表的大小和限制查表操作的数量。
T-MAC在性能方面表现出色。在单线程mpGEMV(矩阵向量乘法)和多线程mpGEMV的基准测试中,T-MAC的性能显著优于现有的解量化基线。例如,在单线程mpGEMV中,T-MAC在1、2、3和4比特情况下分别实现了最高11.2倍、5.8倍、4.7倍和3.1倍的速度提升。
在多线程mpGEMM的基准测试中,T-MAC的性能主要受限于内存带宽,但仍然实现了显著的速度提升。例如,在2比特情况下,T-MAC在所有四个设备上分别实现了4.0倍、4.0倍、5.31倍和2.5倍的速度提升。
此外,T-MAC还实现了显著的端到端推理吞吐量提升。通过将T-MAC内核集成到llama.cpp中,T-MAC在单线程和多线程情况下都实现了显著的速度提升。例如,在单线程情况下,T-MAC在Raspberry Pi 5上实现了2.8倍、6.7倍和5.8倍的速度提升。
除了计算效率外,T-MAC还具有出色的能效优势。通过在M2 Ultra设备上进行实验,T-MAC在三个模型上分别实现了10.3%、10.3%和17.3%的功率消耗减少,以及20.6%、61.2%和51.3%的总能耗减少。
尽管T-MAC在性能和能效方面表现出色,但也存在一些局限性。首先,T-MAC的表量化技术可能会引入一些算法上的近似误差,这可能会对模型的准确性产生影响。其次,T-MAC的快速聚合技术可能会引入一些数值误差,这可能会对模型的质量产生影响。