4 个月前

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

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

摘要

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

代码仓库

timdettmers/bitsandbytes
官方
pytorch
GitHub 中提及
kohjingyu/fromage
pytorch
GitHub 中提及
alextmallen/adaptive-retrieval
pytorch
GitHub 中提及

基准测试

基准方法指标
language-modelling-on-c4Zeropoint LLM.int8 13B (vector-wise + decomp)
Perplexity: 12.45
language-modelling-on-c4LLM.float32 2.7B
Perplexity: 14.43
language-modelling-on-c4LLM.float32 1.3B
Perplexity: 15.91
language-modelling-on-c4LLM.float32 6.7B
Perplexity: 13.3
linguistic-acceptability-on-colaRoBERTa-large 355M (MLP quantized vector-wise, fine-tuned)
Accuracy: 68.6%
natural-language-inference-on-multinliRoBERTa-large 355M (MLP quantized vector-wise, fine-tuned)
Matched: 90.2
natural-language-inference-on-qnliRoBERTa-large 355M (MLP quantized vector-wise, fine-tuned)
Accuracy: 94.7%
natural-language-inference-on-rteRoBERTa-large 355M (MLP quantized vector-wise, fine-tuned)
Accuracy: 85.4%
semantic-textual-similarity-on-mrpcRoBERTa-large 355M (MLP quantized vector-wise, fine-tuned)
Accuracy: 91.0%
semantic-textual-similarity-on-sts-benchmarkRoBERTa-large 355M (MLP quantized vector-wise, fine-tuned)
Pearson Correlation: 0.919
sentiment-analysis-on-sst-2-binaryRoBERTa-large 355M (MLP quantized vector-wise, fine-tuned)
Accuracy: 96.4

用 AI 构建 AI

从想法到上线——通过免费 AI 协同编程、开箱即用的环境和市场最优价格的 GPU 加速您的 AI 开发

AI 协同编程
即用型 GPU
最优价格
立即开始

Hyper Newsletters

订阅我们的最新资讯
我们会在北京时间 每周一的上午九点 向您的邮箱投递本周内的最新更新
邮件发送服务由 MailChimp 提供
LLM.int8(): 大规模Transformer的8位矩阵乘法 | 论文 | HyperAI超神经