GPTQT:双重量化技术推动大型语言模型效率革命

GPTQT: Quantize Large Language Models Twice to Push the Efficiency

摘要

本文介绍了一种名为GPTQT的新型后训练量化方法,旨在减少大型语言模型(LLMs)的内存使用和提高处理速度。GPTQT通过将LLM的权重表达为3bit/2bit,采用了一种渐进的二步量化过程,首先使用线性量化将权重量化到一个相对较高的位,然后将其转换为较低位的二进制编码。此外,GPTQT提出了一种重新探索策略来优化初始缩放因子,并在推理过程中将这些步骤合并为纯二进制编码,从而实现高效的计算。实验结果显示,GPTQT在多个模型和数据集上均有效,与3-bit量化基线相比,GPTQT在opt-66B上降低了4.01的困惑度,并在opt-30b上提高了1.24倍的速度。

原理

GPTQT的核心在于其二步量化过程。首先,使用线性量化将权重量化到一个较高的位数,这样可以保持权重的细节和准确性。随后,这些高位的整数权重被转换为较低位的二进制编码,这一步骤通过选择关键点并重新编码来实现,从而进一步减少量化误差。GPTQT还引入了一种重新探索缩放因子的策略,以适应第二步量化带来的表示范围变化,确保量化后的模型性能不受影响。在推理阶段,这两个步骤被合并为一个纯二进制编码过程,利用高效的二进制编码计算方法(如LUT-GEMM)来加速处理。

流程

GPTQT的工作流程包括两个主要步骤:第一步是线性量化,将权重量化到一个较高的位数;第二步是将这些高位的权重转换为较低位的二进制编码。具体来说,第一步通过线性量化将权重转换为整数形式,第二步则通过选择关键点并重新编码这些整数权重为二进制形式。在推理阶段,这两个步骤被合并,直接使用二进制编码进行计算,从而提高效率。例如,一个具体的示例展示了如何从高位的整数权重转换为低位的二进制编码,并最终合并为一个纯二进制编码过程。

应用

GPTQT的应用前景广泛,特别是在需要高效处理大型语言模型的场景中,如自然语言处理、机器翻译和文本生成等。由于GPTQT能够显著减少内存需求并提高处理速度,它特别适合于资源受限的环境,如移动设备或边缘计算节点。此外,随着模型规模的不断增大,GPTQT的高效性能将使其成为未来AI模型部署的重要工具。