Redian新闻
>
EMNLP 2023 | 解决LLaMA、BERT等部署难题:首个4-bit浮点量化LLM来了

EMNLP 2023 | 解决LLaMA、BERT等部署难题:首个4-bit浮点量化LLM来了

公众号新闻


©作者 | 机器之心编辑部
来源 | 机器之心

这篇文章给出了大模型 FP 量化的解决方案。


大语言模型 (LLM) 压缩一直备受关注,后训练量化(Post-training Quantization) 是其中一种常用算法,但是现有 PTQ 方法大多数都是 integer 量化,且当比特数低于 8 时,量化后模型的准确率会下降非常多。想较于 Integer (INT) 量化,Floating Point (FP) 量化能更好的表示长尾分布,因而越来越多的硬件平台开始支持 FP 量化。而这篇文章给出了大模型 FP 量化的解决方案。文章发表在 EMNLP 2023 上。



论文标题:

LLM-FP4: 4-Bit Floating-Point Quantized Transformers

论文链接:

https://arxiv.org/abs/2310.16836

代码链接:

https://github.com/nbasyl/LLM-FP4


要了解本文,必须要先具备基本的有关 Floating Point Format 以及 Floating Point Quantization 的知识,首先 Floating Point Number 可以用以下公式表示:

s 代表正负符号位 (sign bit),m 代表尾数位 (mantissa bits),e 代表指数位 (exponent bits)。p 是一个介于 0 到 2^e - 1 之间的值,用来表示当前数字该被划分到哪一个指数区间,d 取 0 或 1 的值,用来表示第 i 个 mantissa bit。b 是 bias,一个用来调整 exponent 区间的整数值。

接下来介绍 Floating Point Quantization 是怎么运作的,首先输入值必须经过一个 scale and clip 的步骤,先把 input clip 到 Floating Point 能表示的最大区间 (±Qmax),如以下公式所示:



可以看到类似于 integer 量化,FP 量化也会加入一个 full-precision 的缩放因子 (scaling factor) 来缩放 input 到合适的区间。而缩放因子在运算矩阵乘法的时候,和低比特的矩阵乘法分开计算,所以并不会造成很大的 overhead。融入了这个 full-precision 的缩放因子之后,不同的 quantized tensor 能够被相应地 clip 到不同的最大最小值区间。

在实际使用过程中,会根据输入 tensor 的值域确定需要的量化区间,然后利用公式 (4) 推导出相对应的 bias。注意公式 (4) 里的 bias 可以被用作实数值的缩放因子,见公式 (2)(3)。

Floating-Point Quantization 的下一个步骤是在决定好量化区间后把区间内的值分配到相对应的量化区间内,这个步骤称为 Compare and Quantize:



上图直观说明了量化的过程,当前的输入值,在用公式 5 比较过后,量化到不同的量化区间中。

在得到量化过的 activation 和 weight 后,这里的 scaling factor 提到前面先计算,而达到如下的 efficient matrix multiplication,完成矩阵乘法的加速:

接着本文指出 FP 量化的准确度,和 exponent bits 的设定以及量化的区间息息相关。

如下图所示,不同的 FP format (浮点数的指数位 / 尾数位设定) 之间存在巨大的量化误差差异,只有当选取合适的 FP format 时,FP Quantization 比 INT Quantization 能更好的表示长尾分布。这个现象也在之前的论文中得到验证 [1]。



而这篇文章提出了对应的解决方案,用一个 search-based 浮点量化算法,统筹搜索出最适合的浮点数的指数位 / 尾数位设定以及对应的量化区间。

除此之外,另一个同时出现在各种不同类别 Transformer 模型 (Bert,LLaMA,ViT) 中的现象也会严重影响量化的难度:那就是模型的 activation 中不同 channel 之间的数量级会有很高的差异,而同 channel 之间的量级十分一致。

之前 LLM.int8 [2] 和 SmoothQuant [3] 也有类似的发现,不过这篇文章指出这个现象不仅仅存在于 LLM 中,并且在其他 Transformer 模型里也有类似现象 如下如所示,LLaMA 与 BERT 以及 DeIT-S 中的 activation 的分布都发现了类似的现象:

从图中可以看到,那些异常大的 channel 都比剩余的 channel 大很多,所以在量化 activation tensor 的过程中,量化的精度很大程度会被这些异常值决定,从而抑制其他 channel 值的量化区间,最终降低整体影响量化精度。这会导致量化的最终结果崩坏,尤其当比特数降到一定程度的时候。

值得注意的是,只有 tensor-wise 和 token-wise 量化可以在 efficient matrix multipilication 的时候将 scaling factor 提取出来,而 channel-wise 量化是不支持 efficient matrix multipilication 的,见下图。


为了解决这个问题,同时维持高效率矩阵乘法 (Efficient Matrix Multiplication),本文利用少量的校正资料集,预先算出 activation 的每个 channel 的最大值,从而计算缩放因子。然后将这个缩放因子一拆为二,拆解成一个 per-tensor 的实数乘以 per-channel 的 2 的幂。而这个 2 的整数次方即用 FP 里的 exponent bias 表示。完整的过程可以用以下公式表示:

进一步地,在 calibration 完成之后,这个 per-channel exponent bias 就不再变化,因此可以和 weight quantization 一起进行预计算 (pre-compute),将这个 per-channel exponent bias 整合进量化后的 weights 中,提高量化精度。完整的过程如以下公式:


可以看到在 pre-shifted 后,原本 activation 中的 full-precision per-channel biases 的位置变成了一个 tensor-wise 的实数 scaling factor ,而被拆解出来的整数 per-channel biases 被移到了 weight 中原本 integer bias 的位置,如公式 4。

从而这个方法 (pre-shifted exponent bias) 能在维持 efficient matrix multiplication 的原则下,更好得提高量化精度,方法的直观展示如下图所示:


最后本文展示 Floating Point Quantization (FPQ) 方法,在 LLaMA, BERT 以及 ViTs 模型上,4-bit 量化皆取得了远超 SOTA 的结果。特别是,这篇文章展示了 4-bit 量化的 LLaMA-13B 模型,在零样本推理任务上达到平均 63.1 的分数,只比完整精度模型低了 5.8 分,且比之前的 SOTA 方法平滑量高出了 12.7,这是目前少数已知可行的 4-bit 量化方案了。


参考文献

[1] FP8 Quantization: The Powerof the Exponent, Kuzmin et al., 2022
[2] llm.int8(): 8-bit matrix multiplication for transformers atscale, Dettmers et al., 2022
[3] Smoothquant: Accurate and efficient post-training quantization for large language models ,Xiao et al., 2022


更多阅读



#投 稿 通 道#

 让你的文字被更多人看到 



如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。


总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。 


PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学术热点剖析科研心得竞赛经验讲解等。我们的目的只有一个,让知识真正流动起来。


📝 稿件基本要求:

• 文章确系个人原创作品,未曾在公开渠道发表,如为其他平台已发表或待发表的文章,请明确标注 

• 稿件建议以 markdown 格式撰写,文中配图以附件形式发送,要求图片清晰,无版权问题

• PaperWeekly 尊重原作者署名权,并将为每篇被采纳的原创首发稿件,提供业内具有竞争力稿酬,具体依据文章阅读量和文章质量阶梯制结算


📬 投稿通道:

• 投稿邮箱:[email protected] 

• 来稿请备注即时联系方式(微信),以便我们在稿件选用的第一时间联系作者

• 您也可以直接添加小编微信(pwbot02)快速投稿,备注:姓名-投稿


△长按添加PaperWeekly小编



🔍


现在,在「知乎」也能找到我们了

进入知乎首页搜索「PaperWeekly」

点击「关注」订阅我们的专栏吧


·
·

微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
EMNLP 2023 | 基于知识图谱嵌入的关系感知集成学习算法NLP年终盘点!2023年顶会论文合集(含ACL、EMNLP、NAACL、AAAI等)JMT 2023.09.01精选SDE岗位丨Lyft、Cadence、Walmart等公司放岗!COLING/EMNLP/NAACL/NLPCC群,快来~EMNLP 2023录用结果公布,高分仍然被拒?评审内幕公开吞吐量提升近30倍!田渊栋团队最新论文解决大模型部署难题斯坦福NLP提出EFT:如何不实际微调而“假装”微调了LLM?解决LLaMA、BERT等部署难题:首个4-bit浮点量化LLM来了​EMNLP 2023 | Explore-Instruct: 通过LLM的主动探索提高特定领域指令多样性今日Arxiv最热NLP大模型论文:LLM化身符号逻辑大师,智能体文本游戏新纪元6.7k Star量的vLLM出论文了,让每个人都能轻松快速低成本地部署LLM服务EMNLP 2023 | 通过化学知识和自然语言关联以增强生物领域的跨模态学习博士申请 | 香港科技大学冯雁教授招收LLM/NLP等方向全奖博士/博后一百四十八 秋韵PyTorch最新工具mm来了!3D可视化矩阵乘法、Transformer注意力!EMNLP2023 | 计算语言揭秘认知扭曲:SCIR推出C2D2中文数据集JMT 2023.08.29EMNLP 2023 | 阅读顺序很重要:蚂蚁联合复旦提出全新多模态文档信息抽取模型6013 血壮山河之随枣会战 南昌之战 6EMNLP2023 | LLMs也许不擅长少样本信息提取,但可以为候选答案重新排序!EMNLP 2023 | MMEdit——如何编辑多模态大语言模型?EMNLP2023 | LLM作用下的成分句法分析基础研究优化LLM数学推理;深度学习建模基因表达调控;基于深度学习的近实时海洋碳汇估算WHAT A 2023 GOVERNMENT SHUTDOWN MEANS FOR YOUEMNLP 2023 | 大模型对话系统的内功与外功Walmart+ 会员最低 $8:返 $50 Walmart Cash,可叠加 Amex Offer 再返 $40今日Arxiv最热NLP大模型论文:AllenAI最新研究:让AI从简单学起,竟然能解决难题?第九章第四节 地方警察司法系统的运作EMNLP 2023评审内幕公开EMNLP 2023 | 用于开放域多跳推理的大语言模型的自我提示思想链游绍兴东湖EMNLP 2023 Best Paper公布啦!疯减$500!23年加拿大最全黑五攻略!Amazon、Walmart等大牌折扣盘点!Best Buy已开跑!JMT 2023.08.30【一句话翻译】中译英,参考答案 09.22.2023.学术成果 | EMNLP2023:MMEdit——如何编辑多模态大语言模型?今日Arxiv最热NLP大模型论文:MIT推出新方法,大幅提升LLMs的连贯性、准确性和可更新性!​EMNLP 2023 findings | 生成式框架下解决输入扰动槽填充任务一百四十七 元旦
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。