- 简介我们提出了一种简单的可变量化方法,该方法将大型语言模型的不同层量化为不同的比特级别。具体而言,我们将最重要的层量化为更高的比特精度,将不太重要的层量化为更低的比特,以实现浮点量化级别。我们提出了两种有效的策略来衡量LLM中各层的重要性:第一种是基于输出嵌入与输入嵌入的差异来衡量层的重要性(差异越大越好);第二种是使用比平均值大得多的层权重数量来估计层的重要性(数量越少越好)。我们展示了根据我们的重要性评分以不同比特量化不同层会导致性能下降最小,同时模型大小大大压缩。最后,我们从可变层量化实验中提出了几个实用的要点:(a)通过使用我们提出的排序方法,LLM在可变量化下的性能与原始模型保持接近,直到将25-50%的层移至较低量化,但如果没有使用特定排序,则只能保持5-10%;(b)将LLM量化为较低的比特级别比剪枝表现要好得多,除非使用极端量化(2位);(c)与较少层数的小型LLM相比,对于更多层数的大型LLM,逐层量化至较低比特的效果更好。运行实验的代码可在以下链接中找到:https://github.com/RazvanDu/LayerwiseQuant。
-
- 图表
- 解决问题本论文旨在提出一种简单的变量量化方法,该方法将大型语言模型的不同层在不同的位级上量化,以实现浮点量化水平。同时,论文还提出了两种有效的策略来衡量语言模型中各层的重要性。
- 关键思路文中的关键思路是使用两种策略来衡量语言模型中各层的重要性,并根据重要性得分将不同层量化为不同的位数,从而达到更小的模型大小和最小的性能损失。
- 其它亮点实验表明,采用文中提出的变量层量化方法,模型性能与原模型保持一致,直到将25-50%的层移动到较低的量化级别,但如果没有特定的排序,则只能移动5-10%的层。与剪枝相比,将LLMs量化到较低的位数表现更好,除非采用极端量化(2位)。较大的LLMs(层数更多)采用较低位数的层次量化效果更好。代码已经在GitHub上开源。
- 近期在这个领域的相关研究包括:《Deep Compression: Compressing Deep Neural Networks with Pruning, Trained Quantization and Huffman Coding》、《Quantization and Training of Neural Networks for Efficient Integer-Arithmetic-Only Inference》等。
NEW
提问交流
提交问题,平台邀请作者,轻松获得权威解答~
向作者提问

提问交流