随着人工智能的发展,大型预训练语言模型(如GPT和OPT)在复杂语言建模任务中表现出色,但其巨大的计算和存储成本成为其广泛应用的障碍。尤其是对于具有1750亿参数的模型,即使进行推理也需要多个高性能GPU,这限制了这些模型的可用性。虽然通过模型压缩技术可以缓解这一压力,但现有压缩技术在规模和复杂性上受到限制。
为了解决这一挑战,清华大学和哈尔滨工业大学的研究者提出了一种新的量化方法——GPTQ,这是一种基于近似二阶信息的一次性权重量化方法,既高效又准确。GPTQ能够在大约四个GPU小时内量化具有1750亿参数的GPT模型,将权重的比特宽度减少到3或4比特,同时几乎不损失精度。相较于以往的一次性量化方法,GPTQ的压缩增益翻倍,首次实现了在单个GPU上进行1750亿参数模型的生成性推理。此外,研究者还展示了在极端量化情况下,即使权重被量化到2比特或三值量化水平,GPTQ仍能提供合理的精度。实验表明,这些改进可以在使用高端GPU(如NVIDIA A100)时实现约3.25倍的端到端推理加速,在使用更具成本效益的GPU(如NVIDIA A6000)时实现约4.5倍的加速。相关实现已在GitHub上提供。
GPTQ的核心在于其能够在保持高精度的同时实现高效压缩。研究者通过对大型语言模型的分析,发现在极端量化情况下,模型的某些特征维度会出现极端的幅度值,这些特征对于模型的性能至关重要。因此,GPTQ采用了混合精度分解策略,将这些极端特征维度以16比特的精度进行矩阵乘法,而其他99.9%的值则以8比特进行乘法。这种方法不仅提供了对这些极端特征的高 precision 乘法,而且由于大多数条目仍以低精度表示,因此相比16比特,内存减少了约50%。
此外,GPTQ还引入了一种新的量化策略,即任意顺序量化。研究发现,虽然自然策略是按照当前引起的额外量化误差最小的权重进行量化,但其实任意固定顺序的量化性能也很好,尤其是在大型、参数量庞大的层中。这使得GPTQ能够在保持高精度的同时,显著提高量化效率。
在实验验证中,GPTQ在WikiText2、PTB和C4等语言任务上对整个BLOOM和OPT模型系列进行了3比特和4比特量化,并在这些任务上评估了量化模型。结果显示,GPTQ在4比特量化时,与全精度版本相比,仅损失极小的困惑度,而在3比特量化时,尽管压缩了5倍以上,仍能保持合理的性能。此外,研究者还对极端量化情况下的模型进行了测试,即使在2比特或三值量化水平下,GPTQ仍能提供合理的精度。
GPTQ的提出为大型语言模型的高效压缩和可用性提供了新的解决方案,使得这些模型能够以更低的资源消耗运行在更广泛的应用场景中。尽管GPTQ在实际乘法运算中并未实现计算减少,且目前的研究主要集中在生成任务上,未考虑激活量化,但研究者相信通过精心设计的GPU内核和现有技术,未来可以实现进一步的优化。
论文地址:https://arxiv.org/pdf/2208.07339.pdf
https://arxiv.org/abs/2210.17323