T-MAC:通过查找表实现CPU上的低比特LLM高效部署

T-MAC: CPU Renaissance via Table Lookup for Low-Bit LLM Deployment on Edge

摘要

本文介绍了一种名为T-MAC的创新方法,旨在通过基于查找表(LUT)的方式,在CPU上高效部署低比特大型语言模型(LLM)。随着LLM在边缘设备上的部署日益重要,权重量化成为减少模型内存占用的关键技术。然而,低比特LLM在推理过程中需要混合精度矩阵乘法(mpGEMM),现有系统缺乏对mpGEMM的原生支持,通常通过反量化权重进行高精度计算,这会导致显著的推理开销。T-MAC通过直接支持mpGEMM而不需要反量化,同时消除了乘法并减少了所需的加法,从而实现了高效的低比特LLM推理。该方法通过将传统的数据类型中心乘法转换为按位查找表,实现了统一的、可扩展的mpGEMM解决方案。评估结果显示,T-MAC在低比特Llama和BitNet模型上,与llama.cpp相比,吞吐量提高了4倍,能耗降低了70%。此外,T-MAC在M2-Ultra上实现了单核30个令牌/秒,八核71个令牌/秒的生成吞吐量,甚至在低端设备如Raspberry Pi 5上达到了11个令牌/秒,显著超过了成年人的平均阅读速度。T-MAC为在资源受限的边缘设备上实际部署低比特LLM铺平了道路,而不会牺牲计算效率。

原理

T-MAC的核心创新在于利用查找表(LUT)来实现高效的低比特LLM推理。其工作原理主要涉及以下几个方面:

  1. 直接mpGEMM支持:T-MAC直接支持混合精度矩阵乘法(mpGEMM),无需反量化权重,从而避免了反量化带来的推理开销。
  2. 按位查找表:通过将传统的数据类型中心乘法转换为按位查找表,T-MAC实现了统一的、可扩展的mpGEMM解决方案。这种方法不仅消除了乘法,还减少了所需的加法。
  3. 线性扩展:T-MAC的LUT内核可以线性扩展到权重的比特宽度,这意味着随着比特宽度的增加,性能提升是线性的。
  4. 高效内存利用:T-MAC通过在系统级和算法级上提出技术,使得查找表能够驻留在最快的片上内存中,并实现并行查找,从而提高了内存利用效率。
  5. 跨平台兼容性:T-MAC不仅在高端设备如M2-Ultra上表现出色,还在低端设备如Raspberry Pi 5上实现了显著的性能提升,显示了其跨平台的兼容性和高效性。

流程

T-MAC的工作流程包括以下几个关键步骤:

  1. 预处理权重:将权重矩阵分解为多个单比特矩阵,并为每个组预计算所有可能的排列。
  2. 构建查找表:对于每个输入激活向量,计算其与所有可能的比特模式矩阵的乘积,并将结果存储在查找表中。
  3. 查找和累加:在推理过程中,使用权重矩阵中的每个比特模式作为索引,查找查找表以获取部分结果,并累加这些结果以得到最终的GEMM结果。
  4. 优化内存访问:通过系统级的数据布局优化和算法级的表压缩方法,确保查找表能够高效地驻留在片上内存中,并减少内存访问成本。

应用

T-MAC的应用前景广阔,主要体现在以下几个方面:

  1. 边缘设备部署:T-MAC使得在资源受限的边缘设备上部署低比特LLM成为可能,如智能手机、桌面电脑和机器人等。
  2. 能效提升:通过减少能耗和提高吞吐量,T-MAC有助于提升边缘设备的能效,特别是在电池供电的设备上。
  3. 实时任务响应:T-MAC的高效推理能力使得边缘设备能够提供实时的任务响应,如自动驾驶车辆和交互式机器人。
  4. 用户数据保护:通过在设备上本地处理数据,T-MAC增强了用户数据的隐私保护,减少了数据泄露的风险。
  5. 网络独立性:T-MAC的部署不依赖于网络连接,提供了网络独立的操作可靠性,适用于网络不稳定或不可用的场景。