首个支持4-bit浮点量化的LLM来了,解决LLaMA、BERT等的部署难题
本篇文章给大家分享《首个支持4-bit浮点量化的LLM来了,解决LLaMA、BERT等的部署难题》,覆盖了科技周边的常见基础知识,其实一个语言的全部知识点一篇文章是不可能说完的,但希望通过这些问题,让读者对自己的掌握程度有一定的认识(B 数),从而弥补自己的不足,更好的掌握它。
大语言模型 (LLM) 压缩一直备受关注,后训练量化(Post-training Quantization) 是其中一种常用算法,但是现有 PTQ 方法大多数都是 integer 量化,且当比特数低于 8 时,量化后模型的准确率会下降非常多。想较于 Integer (INT) 量化,Floating Point (FP) 量化能更好的表示长尾分布,因而越来越多的硬件平台开始支持 FP 量化。而这篇文章给出了大模型 FP 量化的解决方案。文章发表在 EMNLP 2023 上。
- 论文地址: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 区间的整数值。
在接下来的部分中,我们将介绍浮点数量化是如何工作的。首先,输入值必须经过一个称为“scale and clip”的步骤。这个步骤首先将输入值裁剪到浮点数能够表示的最大范围(±Qmax),具体计算公式如下:
可以看到类似于 integer 量化,FP 量化也会加入一个 full-precision 的缩放因子 (scaling factor) 来缩放 input 到合适的区间。而缩放因子在运算矩阵乘法的时候,和低比特的矩阵乘法分开计算,所以并不会造成很大的 overhead。融入了这个 full-precision 的缩放因子之后,不同的 quantized tensor 能够被相应地 clip 到不同的最大最小值区间。在实际使用过程中,会根据输入 tensor 的值域确定需要的量化区间,然后利用公式 (4) 推导出相对应的 bias。注意公式 (4) 里的 bias 可以被用作实数值的缩放因子,见公式 (2)(3)。
浮点数量化的下一个步骤是将决定好的量化区间内的值分配到相应的量化区间中,这个过程被称为比较和量化:
上图直观说明了量化的过程,当前的输入值,在用公式 5 比较过后,量化到不同的量化区间中。
在得到量化过的 activation 和 weight 后,这里的 scaling factor 提到前面先计算,而达到如下的 efficient matrix multiplication,完成矩阵乘法的加速:
接着本文指出 FP 量化的准确度,和 exponent bits 的设定以及量化的区间息息相关。
在之前的论文中,已经验证了不同的FP格式(即浮点数的指数位/尾数位设定)之间存在巨大的量化误差差异。只有当选择合适的FP格式时,FP量化能够比INT量化更好地表示长尾分布
这篇文章提出了一个解决方案,即采用基于搜索的浮点量化算法,以综合搜索的方式确定最适合的浮点数的指数位和尾数位设定以及相应的量化区间
除此之外,在各种不同类别的Transformer模型(Bert, LLaMA, ViT)中,还存在一个现象严重影响量化的难度:即模型的激活中不同通道之间的数量级差异很大,而同一通道之间的数量级非常一致。之前的研究LLM.int8和SmoothQuant也发现了类似的现象,但本文指出这个现象不仅存在于LLM中,其他Transformer模型(如下所示,LLaMA、BERT和DeIT-S)的激活分布也发现了类似的现象:
从图中可以看到,那些异常大的 channel 都比剩余的 channel 大很多,所以在量化 activation tensor 的过程中,量化的精度很大程度会被这些异常值决定,从而抑制其他 channel 值的量化区间,最终降低整体影响量化精度。这会导致量化的最终结果崩坏,尤其当比特数降到一定程度的时候。值得注意的是,只有 tensor-wise 和 token-wise 量化可以在 efficient matrix multipilication 的时候将 scaling factor 提取出来,而 channel-wise 量化是不支持 efficient matrix multipilication 的,见下图。
为了同时解决问题并保持高效率的矩阵乘法,本文使用少量的校正数据集来预先计算激活每个通道的最大值,并计算缩放因子。然后将缩放因子拆分为一个针对每个张量的实数乘以每个通道的2的幂。这个2的幂可以用FP中的指数偏差表示。整个过程可以通过以下公式表示:
进一步地,在 calibration 完成之后,这个 per-channel exponent bias 就不再变化,因此可以和 weight quantization 一起进行预计算 (pre-compute),将这个 per-channel exponent bias 整合进量化后的 weights 中,提高量化精度。完整的过程如以下公式:
在预偏移之后,可以观察到原本激活函数中的每个通道的全精度偏置的位置变成了一个基于张量的实数缩放因子,同时将被分解的整数偏置移到了权重中原本整数偏置的位置,具体见公式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 量化方案了。
好了,本文到此结束,带大家了解了《首个支持4-bit浮点量化的LLM来了,解决LLaMA、BERT等的部署难题》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多科技周边知识!

- 上一篇
- 诛仙3九黎之路:如何选择八肱(走哪条路线)

- 下一篇
- 了解JavaScript中的every函数,检查数组中的所有元素是否都满足条件
-
- 科技周边 · 人工智能 | 25分钟前 |
- RSAC2024速览,20款网络安全新品发布
- 158浏览 收藏
-
- 科技周边 · 人工智能 | 47分钟前 |
- 理想汽车7国招聘副总裁,加速出海战略
- 224浏览 收藏
-
- 科技周边 · 人工智能 | 2小时前 |
- 即梦AI时间戳添加教程即梦AI日期水印设置攻略
- 489浏览 收藏
-
- 科技周边 · 人工智能 | 2小时前 | 三星电子 OdysseyOLEDG6 500Hz 量子点OLED Pantone认证
- 三星OdysseyG6OLED显示器500Hz东南亚首发
- 174浏览 收藏
-
- 科技周边 · 人工智能 | 2小时前 |
- 操作系统升级补丁秘籍:从入门到精通
- 147浏览 收藏
-
- 科技周边 · 人工智能 | 6小时前 |
- 小米YU7试生产曝光用于展车及测试
- 438浏览 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 542次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 508次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 497次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 484次学习
-
- 美图AI抠图
- 美图AI抠图,依托CVPR 2024竞赛亚军技术,提供顶尖的图像处理解决方案。适用于证件照、商品、毛发等多场景,支持批量处理,3秒出图,零PS基础也能轻松操作,满足个人与商业需求。
- 5次使用
-
- PetGPT
- SEO摘要PetGPT 是一款基于 Python 和 PyQt 开发的智能桌面宠物程序,集成了 OpenAI 的 GPT 模型,提供上下文感知对话和主动聊天功能。用户可高度自定义宠物的外观和行为,支持插件热更新和二次开发。适用于需要陪伴和效率辅助的办公族、学生及 AI 技术爱好者。
- 5次使用
-
- 可图AI图片生成
- 探索快手旗下可灵AI2.0发布的可图AI2.0图像生成大模型,体验从文本生成图像、图像编辑到风格转绘的全链路创作。了解其技术突破、功能创新及在广告、影视、非遗等领域的应用,领先于Midjourney、DALL-E等竞品。
- 41次使用
-
- MeowTalk喵说
- MeowTalk喵说是一款由Akvelon公司开发的AI应用,通过分析猫咪的叫声,帮助主人理解猫咪的需求和情感。支持iOS和Android平台,提供个性化翻译、情感互动、趣味对话等功能,增进人猫之间的情感联系。
- 35次使用
-
- Traini
- SEO摘要Traini是一家专注于宠物健康教育的创新科技公司,利用先进的人工智能技术,提供宠物行为解读、个性化训练计划、在线课程、医疗辅助和个性化服务推荐等多功能服务。通过PEBI系统,Traini能够精准识别宠物狗的12种情绪状态,推动宠物与人类的智能互动,提升宠物生活质量。
- 35次使用
-
- GPT-4王者加冕!读图做题性能炸天,凭自己就能考上斯坦福
- 2023-04-25 501浏览
-
- 单块V100训练模型提速72倍!尤洋团队新成果获AAAI 2023杰出论文奖
- 2023-04-24 501浏览
-
- ChatGPT 真的会接管世界吗?
- 2023-04-13 501浏览
-
- VR的终极形态是「假眼」?Neuralink前联合创始人掏出新产品:科学之眼!
- 2023-04-30 501浏览
-
- 实现实时制造可视性优势有哪些?
- 2023-04-15 501浏览