2 个月前

LLM.int8(): 大规模Transformer的8位矩阵乘法

Tim Dettmers; Mike Lewis; Younes Belkada; Luke Zettlemoyer
LLM.int8(): 大规模Transformer的8位矩阵乘法
摘要

大型语言模型已被广泛采用,但在推理过程中需要大量的GPU内存。我们开发了一种针对变压器中前馈层和注意力投影层的Int8矩阵乘法程序,该程序在保持全精度性能的同时将推理所需的内存减少了一半。通过我们的方法,一个1750亿参数的16/32位检查点可以被加载、转换为Int8,并立即使用而不会导致性能下降。这得益于对变压器语言模型中高度系统化的突现特征的理解和规避,这些特征主导了注意力机制和变压器的预测性能。为了应对这些特征,我们开发了一个两部分量化程序,即LLM.int8()。首先,我们使用向量级量化方法,并为矩阵乘法中的每个内积设置独立的归一化常数,以量化大部分特征。然而,对于突现的异常值,我们还引入了一种新的混合精度分解方案,将异常值特征维度隔离到16位矩阵乘法中进行计算,同时超过99.9%的值仍以8位进行乘法运算。通过使用LLM.int8(),我们实证表明可以在不降低性能的情况下对多达1750亿参数的语言模型进行推理。这一结果使得此类模型更加易于访问,例如可以在配备消费级GPU的单个服务器上使用OPT-175B/BLOOM。我们已开源我们的软件。