借一步网
作者:
在
大型语言模型(LLM)在自然语言处理领域取得了巨大成功,但其推理过程需要大量的 GPU 内存。本文将介绍一种针对 Transformer 架构中前馈层和注意力投影层的 8 位矩阵乘法方法,该方法可以将推理所需的内存减半,同时保持与全精度模型相同的性能。
传统 8 位量化方法虽然可以减少内存占用,但往往会导致性能下降,并且需要在训练后进行额外的量化调整。这些方法主要针对参数量小于 3.5 亿的模型,对于参数量更大的模型,无损量化一直是一个挑战。
本文提出的 LLM.int8() 方法是首个能够在不损失性能的情况下对参数量达到 1750 亿的 Transformer 模型进行 8 位量化的方案。该方法通过解决两个关键问题实现了这一突破:
研究表明,这些异常特征在 Transformer 模型中具有高度的系统性。它们虽然只占所有特征维度的 0.1%,但却对注意机制和模型的预测性能至关重要。如果将这些异常特征设置为零,模型的注意力 softmax 概率质量会下降 20% 以上,验证困惑度会增加 600-1000%。
LLM.int8() 方法不仅为大型语言模型的 8 位量化提供了新的思路,还使得一些原本无法在单台服务器上运行的模型,例如 OPT-175B/BLOOM,可以借助消费级 GPU 进行推理。此外,该方法还能够提升大型模型的矩阵乘法速度。
尽管 LLM.int8() 方法已经取得了重大突破,但仍有一些局限性,例如:
GitHub – TimDettmers/bitsandbytes: Accessible large language models via k-bit quantization for PyTorch.
要发表评论,您必须先登录。
大型语言模型(LLM)在自然语言处理领域取得了巨大成功,但其推理过程需要大量的 GPU 内存。本文将介绍一种针对 Transformer 架构中前馈层和注意力投影层的 8 位矩阵乘法方法,该方法可以将推理所需的内存减半,同时保持与全精度模型相同的性能。
量化困境:精度与规模的博弈
传统 8 位量化方法虽然可以减少内存占用,但往往会导致性能下降,并且需要在训练后进行额外的量化调整。这些方法主要针对参数量小于 3.5 亿的模型,对于参数量更大的模型,无损量化一直是一个挑战。
LLM.int8():突破性能瓶颈
本文提出的 LLM.int8() 方法是首个能够在不损失性能的情况下对参数量达到 1750 亿的 Transformer 模型进行 8 位量化的方案。该方法通过解决两个关键问题实现了这一突破:
异常特征的揭秘:影响深远
研究表明,这些异常特征在 Transformer 模型中具有高度的系统性。它们虽然只占所有特征维度的 0.1%,但却对注意机制和模型的预测性能至关重要。如果将这些异常特征设置为零,模型的注意力 softmax 概率质量会下降 20% 以上,验证困惑度会增加 600-1000%。
LLM.int8() 的优势:内存节省、性能提升
LLM.int8() 方法不仅为大型语言模型的 8 位量化提供了新的思路,还使得一些原本无法在单台服务器上运行的模型,例如 OPT-175B/BLOOM,可以借助消费级 GPU 进行推理。此外,该方法还能够提升大型模型的矩阵乘法速度。
未来展望:更低精度、更广应用
尽管 LLM.int8() 方法已经取得了重大突破,但仍有一些局限性,例如:
参考文献
GitHub – TimDettmers/bitsandbytes: Accessible large language models via k-bit quantization for PyTorch.