大语言模型 (LLMs) 已经彻底改变了我们对语言理解和生成的思考方式,吸引了研究人员和开发者的广泛关注。然而,由于这些模型的空前规模和资源需求,部署它们进行推理一直是一个重大挑战。在商用 Arm CPU 上高效执行大语言模型将使其能够扩展到数十亿台紧凑设备,如智能手机和其他小型设备。虽然将模型权重量化为亚字节精度(例如,每个权重 4 比特或更少)已成为缓解内存压力的一个有前景的解决方案,但通常用于大语言模型量化的分组量化格式具有显著的计算开销和资源密集的解量化过程。因此,较高比例的计算指令不执行乘法运算,即实际工作,这使得它们无法满足在商用 CPU 上部署的大语言模型变体所需的延迟要求。此外,基于 CPU 的大语言模型推理在以往的研究中受到的关注较少。在本工作中,我们提出了一组高度优化的内核来加速大语言模型推理,展示最佳性能,并释放 CPU,特别是 Arm CPU 的全部潜力。这些内核通过在多行输出中分摊操作数加载和权重解包的代价,以及引入优化的交错组数据布局格式和优化解压缩路径以减少不必要的操作和解量化开销,同时最大化向量和矩阵乘法运算的使用,显著提高了 MAC 操作的效率。此外,我们提出了一种基于分组非均匀码本的超低精度量化方法,以更好地匹配大语言模型权重分布中的非均匀模式,使大规模大语言模型能够适应更小的设备,并在生成 Token 时展示出比现有技术更好的吞吐量,同时确保更好的质量。实验表明,与基于 LLaMA.cpp 的解决方案相比,将这些改进应用于 4 比特和 2 比特量化的大语言模型,在单个 Arm CPU 核心上,提示处理至少提高了 \$3-3.2\times\$,自回归解码提高了 \$2\times\$。优化后的内核可在 https://github.com/ggerganov/llama.cpp 获取。