在这个智能设备无处不在的时代,我们渴望让手机、平板、甚至是智能家居设备拥有更强大的智能处理能力。但是,这些边缘设备的硬件资源有限,特别是内存和计算能力,这限制了大型语言模型(LLMs)在它们上面的部署和运行。想象一下,如果我们能让这些设备拥有能够理解自然语言、回答问题、甚至进行创作的强大模型,那将会怎样改变我们的世界?
这就是T-MAC技术诞生的背景。T-MAC,全称"Table-Lookup-based MAC",是一种基于查找表的方法,它能让低比特的大型语言模型在CPU上高效运行,从而实现在边缘设备上的智能升级。
大型语言模型通常包含数十亿甚至数百亿的参数,这些参数需要大量的内存来存储。为了在边缘设备上部署这些模型,我们需要对模型的权重进行量化,即使用更少的比特来表示权重,从而减少模型的内存占用。但是,量化后的模型在运算时需要进行混合精度的矩阵乘法(mpGEMM),这在现有的硬件和软件系统中并不常见,也缺乏高效的支持。
T-MAC的核心思想是将传统的基于数据类型的乘法运算,转变为基于位的查找表(LUT)查找。这种方法不仅消除了乘法运算,还减少了加法运算,从而大幅提高了运算效率。
具体来说,T-MAC通过以下几个步骤实现:
将权重矩阵分解为多个一位矩阵。
预先计算激活向量与所有可能的一位模式的乘积,并将结果存储在查找表中。
在推理时,通过查找表索引和累加操作,快速得到最终的矩阵乘法结果。
通过在多种边缘设备上的测试,T-MAC显示出了显著的性能优势。与现有的llama.cpp实现相比,T-MAC在吞吐量上提高了4倍,能耗降低了70%。这使得即使是低端设备,如Raspberry Pi5,也能以超过成人平均阅读速度的速度生成令牌。
T-MAC不仅在理论上具有优势,它还具有实际应用的潜力。无论是在智能手机上进行实时语音识别和自然语言处理,还是在智能家居设备上提供更加智能的交互体验,T-MAC都能发挥重要作用。
T-MAC技术为低比特大型语言模型在边缘设备上的部署提供了一种高效、节能的解决方案。它不仅能够提升设备的智能水平,还能为用户带来更加丰富、便捷的智能体验。随着技术的不断发展和优化,我们有理由相信,T-MAC将在边缘智能领域发挥越来越重要的作用。
开源地址:https://github.com/microsoft/T-MAC
论文地址:https://www.arxiv.org/pdf/2407.00088