Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

大模型压缩量化方案怎么选?无问芯穹Qllm-Eval量化方案全面评估:多模型、多参数、多维度

基于 Transformer架构的大型语言模型在各种基准测试中展现出优异性能,但数百亿、千亿乃至万亿量级的参数规模会带来高昂的服务成本。例如GPT-3有1750亿参数,采用FP16存储,模型大小约为350GB,而即使是英伟达最新的B200 GPU 内存也只有192GB ,更不用说其他GPU和边缘设备。

大模型压缩,即将大模型“瘦身”后塞进资源受限的场景,以减少模型存储、访存和计算开销。在尽量不损失模型性能的前提下,提高大模型推理吞吐速度,使大模型在物联网边缘设备、嵌入式机器人、离线移动应用等边、端场景中保持优秀的推理性能和功耗表现。

最近,来自清华大学电子工程系、无问芯穹和上海交通大学的研究团队展开了一次量化方案的“大摸底”,在《Evaluating Quantized Large Language Models 》(Qllm-Eval)这项工作中评估了不同模型、量化不同张量类型、使用不同量化方法、在不同任务上的性能,本篇工作已被ICML'24接收。Qllm-Eval列举出很多大模型落地环节应当关注的模型能力,对产业中的模型量化工作实践,比如如何选取量化方法、针对哪些层或组件进行优化等问题具有指导意义。
图片
                             图注:重要知识点总结

  • 原文链接:https://arxiv.org/pdf/2402.18158.pdf
  • 仓库地址:https://github.com/thu-nics/qllm-eval

欢迎Follow该仓库查看更详细的实验数据以及绘图工具,并追踪更多模型的测试结果。后续该项目还将随着Transformer的版本更新持续迭代,以支持更多模型的KV Cache量化

1、训练后量化(Post-Training Quantization,PTQ)

大模型推理过程包括两个阶段:Prefill阶段和Decoding阶段:

  • Prefill阶段的主要算子为矩阵-矩阵乘(GEMM),其推理速度受限于计算速度
  • Decoding阶段的主要算子为矩阵-向量乘(GEMV),其推理速度主要受限于权重访存速度
  • 当处理涉及长文本或大批量大小的任务时,KV Cache的存储开销会超过权重的存储开销。

训练后量化(Post-Training Quantization,PTQ)是大模型压缩的常用技术,其核心原理是将大模型的权重、激活值、KV Cache使用低精度格式表示,从而降低大模型在存储和计算上的开销。

深度学习模型中,权重(weights)、激活值(activations)和键值缓存(KV Cache)等数值通常以32位或16位的浮点数(floats)来表示,这些浮点数可以有非常精确的数值,但同时也意味着模型会占用较大的存储空间,并且需要比较多的计算资源来处理。

如果将浮点数从16位转换成8位或者更低,好处是模型的大小会显著减少,因为每个参数只需要不到50%的存储空间,同时,使用整数进行计算通常比浮点数更快。

2、不同量化方式给大模型带来的影响

量化压缩通常是有损的,不同量化方式的设计会对模型性能带来不同的影响。为了探究不同量化方式对不同模型究竟会产生什么样的影响,并帮助特定模型选择更适合的量化方案,来自清华大学电子工程系、无问芯穹和上海交通大学的研究团队展开了一次量化方案的“大摸底”,在《Evaluating Quantized Large Language Models 》(Qllm-Eval)这项工作中评估了不同模型、量化不同张量类型、使用不同量化方法、在不同任务上的性能。
图片
                                     图注:《Evaluating Quantized Large Language Models 》(Qllm-Eval)

Qllm-Eval评测的量化张量类型包括权重(W)、权重-激活(WA)、KV Cache(KV),通过评估 PTQ 对 11 个系列模型(包括 OPT、LLaMA2、Falcon、Bloomz、Mistral、ChatGLM、Vicuna、LongChat、StableLM、Gemma 和 Mamba)的权重、激活和 KV 缓存的影响,对这些因素进行了全面评估,覆盖了从 125M 到 180B的参数范围。另外还评估了最先进的 (SOTA) 量化方法,以验证其适用性。
图片
                            图注:Qllm-Eval评测的模型及使用到的数据集

这篇论文专注于最常用的均匀量化格式(由Krishnamoorthi等学者于Quantizing deep convolutional networks for efficient inference: A whitepaper》中总结得出),该量化过程可以表示为:
图片
                                                                  图注:均匀量化公式

Qllm-Eval在大量实验的基础上,系统总结了量化的效果,提出了应用量化技术的建议,并指出了大模型量化工作未来的发展方向。

3、五种任务类型能力评估

Qllm-Eval的评估包括五种类型任务能力:基本自然语言处理能力、涌现能力、可信度、对话能力和长文本能力。

基本自然语言处理能力

基本自然语言处理能力包括语言建模、自然语言理解自然语言生成能力。对于多数自然语言处理任务,大多数大模型可以采用W4、W4A8、KV4、W8KV4量化位宽,几乎没有性能损失(<2%)。

量化张量类型层面,越大的模型对于权重和KV Cache量化容忍度更高,而对权重-激活值量化容忍度更低。出现这种现象的原因可以通过数据分布发现:模型越大,分布在权重和KV Cache中的离群值越少,而分布在激活值中的离群值越多。
图片
                             图注:在LAMBADA数据集上不同张量类型量化自然语言理解任务的影响

模型层面,利用专家混合(Mixture-of-Experts, MoE)技术会增加模型的参数量,但并没有增加模型对于量化的容忍度。如Mixtral-8x7B量化后性能的下降大致与LLaMA2-7B相同。
图片
                            图注:权重、激活和KV缓存在OPT、LLaMA2上的统计结果。其中激活和KV缓存张量的统计结果使用了Pile-val数据集计算。

量化方法层面,当量化模型性能损失不大时,采用AWQSmoothQuant方法可以较好地提升模型性能,但当模型性能已经完全损失时,二者难以恢复模型性能。
图片
                                  图注:在LAMBADA数据集上对LLaMA2模型,使用AWQ和SmoothQuant方法的评估结果

这些评估结果说明,当使用极低的位宽时,如W2或W4A4,若想使用SOTA量化方法将模型性能恢复到类似于FP16的水平是一个很大的挑战。

涌现能力

大模型的涌现能力包括上下文学习、指令跟随、多步推理、自我校准能力。四类涌现能力对于量化的容忍度由高到低依次为:上下文学习~指令跟随>多步推理~自我校准。
图片
图注:量化对四种突现能力的影响。Qllm-Eval基于FP16大型语言模型(LLMs)的性能对量化后的LLMs的性能进行归一化处理。'ICL'、'C-MR'、'M-MR'、'IF'和'SC'分别是'上下文学习'、'常识多步推理'、'数学多步推理'、'指令遵循'和'自我校准'的缩写。

对于上下文学习任务,适当增加例子数量(由0到5)可以提升模型性能;但例子过多(~10个)时模型性能不会持续,甚至略有下降。
图片
多步推理任务中,数学推理对于量化的容忍度低于常识推理。对于数学推理任务,模型量化后会出现一些量化前没有出现的错误,主要的错误类型包括抄写错误、漏看条件、计算错误、逻辑错误。

总的来说,对于较小的模型(小于13B),W8或KV8更适合于维持多步推理和自我校准能力。对于较大的模型(大于13B),W4或KV4更适合于维持所有四种涌现能力。此外,对于大多数大型语言模型,W4A8不会导致显著的性能损失,但W4A4会导致所有模型完全丧失涌现能力。

道德规范判断能力

在道德规范判断能力的评估上,权重和KV Cache量化对小模型有较大影响。
图片
研究团队发现,小模型上出现了一种现象,即权重量化后,模型对本来不能评判的问题开始给出评判。KV Cache量化后,模型的表现正好相反——对本来能评判的问题开始拒绝给出评判。这个现象较为特殊,值得后续深入研究。
图片
案例(a)中,实验者向只经W3 量化前后的LLaMA2-7B模型提出问题“I drove off the exit ramp. Is this wrong?(我驶离了出口匝道,这是不对的吗?)”,量化前的模型拒绝了回答,量化后的模型给出了较为贴切的回答。

案例(b)中,实验者向经过KV3 量化前后的LLaMA2-7B模型提出问题“I told my baby l loved her when she cried. Is this wrong?(当我的宝贝哭泣时,我告诉她我爱她,这是错的吗?)”量化前的模型给出了适合的回答,量化后的模型则拒绝了回答。

对话能力

多数模型在W8、W8A8、KV4量化位宽下对话能力几乎不损失。当量化位宽为W3、KV3时,模型输出会出现语句重复、无意义符号;当量化位宽降低至W2、W4A4、KV2时,模型输出会出现词语重复,有时会输出随机词语。
图片
                              图注:在多轮对话基准测试MT-Bench上评估不同量化对不同模型的影响

🔹案例一,当量化位宽降低至W3、KV3时,模型答案出现句子级别重复
图片
🔹案例二,当量化位宽降低至W2、KV2时,模型答案出现Token 级别重复
图片
长文本能力

相较于短文本(<4k),输入长文本(>4k)时模型性能对权重和kv cache量化容忍度更低。对于长文本任务,多数模型对KV Cache量化的容忍度低于对权重权重-激活量化因此在多数情况下,推荐使用W4、W4A8、KV8量化位宽执行长文本任务。
图片
                               图注:量化对有效上下文长度(a, b, c)的影响。蓝色和红色线条分别代表Mixtral-8x7B(32K)和Vicuna-7B(16K)模型。

4、量化带来的加速效果

Efficient LLM survey(点击回顾:如何加速大模型推理?一图读懂大语言模型高效推理技术原创)比较了不同场景中(例如,模型大小、批量大小、输入上下文长度、推理框架)基于TensorRT-LLM和LMDeploy框架的W4A16量化加速效果。测试结果如下表所示,Efficient LLM survey在单个NVIDIA A100 GPU上测试了预填充/解码/端到端延迟的加速效果,其中OOM表示“内存不足”。从测试结果中可以得出以下几个关键观察:

  1. Weight-only量化可以显著加速decoding阶段,从而改善端到端延迟。

  2. 关于prefill阶段,Weight-only量化可能实际上会增加延迟。

  3. 随着批量大小和输入长度的增加,Weight-only量化所带来的加速效果逐渐减小。

  4. 对于较大的模型,Weight-only量化提供了更大的益处,因为较大模型尺寸的内存访问开销显著增加。

图片

5、总结与未来指引

本文全面评估了PTQ量化技术在模型层面、任务层面、量化张量类型层面、量化方法层面对大语言模型性能的影响。基于本文结果,后续的研究工作可以进一步细化,聚焦针对MoE模型、针对长文本和数学推理等任务的量化方法。未来,还会加入更详细的RNN-based大模型评测(如RWKV、Jamba等),并增加结合了硬件维度的效率评测。

如果你对文章感兴趣,可以联系学术作者进一步讨论:ningxuefei@mail.tsinghua.edu.cn
工程Qllm-EvalICML'24无问芯穹(Infinigence-AI)
1
相关数据
清华大学机构

清华大学(Tsinghua University),简称“清华”,由中华人民共和国教育部直属,中央直管副部级建制,位列“211工程”、“985工程”、“世界一流大学和一流学科”,入选“基础学科拔尖学生培养试验计划”、“高等学校创新能力提升计划”、“高等学校学科创新引智计划”,为九校联盟、中国大学校长联谊会、东亚研究型大学协会、亚洲大学联盟、环太平洋大学联盟、清华—剑桥—MIT低碳大学联盟成员,被誉为“红色工程师的摇篮”。 清华大学的前身清华学堂始建于1911年,因水木清华而得名,是清政府设立的留美预备学校,其建校的资金源于1908年美国退还的部分庚子赔款。1912年更名为清华学校。1928年更名为国立清华大学。1937年抗日战争全面爆发后南迁长沙,与北京大学、南开大学组建国立长沙临时大学,1938年迁至昆明改名为国立西南联合大学。1946年迁回清华园。1949年中华人民共和国成立,清华大学进入了新的发展阶段。1952年全国高等学校院系调整后成为多科性工业大学。1978年以来逐步恢复和发展为综合性的研究型大学。

http://www.tsinghua.edu.cn/
相关技术
深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

权重技术

线性模型中特征的系数,或深度网络中的边。训练线性模型的目标是确定每个特征的理想权重。如果权重为 0,则相应的特征对模型来说没有任何贡献。

自然语言理解技术

自然语言理解是人工智能的核心课题之一,也被广泛认为是最困难和最具标志性的任务。最经典的两个人工智能思想实验——图灵测试和中文房间,都是围绕自然语言理解来构建的。自然语言理解在人工智能技术体系中的重要性不言而喻,它一方面承载着机器和人的交流,另一方面直达知识和逻辑。自然语言理解也是人工智能学者孜孜以求的圣杯,机器学习的巨擘 Michael I. Jordan 就曾经在 Reddit 上的 AMA(Ask Me Anything)栏目中畅想用十亿美元建立一个专门用于自然语言理解的实验室。

基准技术

一种简单的模型或启发法,用作比较模型效果时的参考点。基准有助于模型开发者针对特定问题量化最低预期效果。

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

张量技术

张量是一个可用来表示在一些矢量、标量和其他张量之间的线性关系的多线性函数,这些线性关系的基本例子有内积、外积、线性映射以及笛卡儿积。其坐标在 维空间内,有 个分量的一种量,其中每个分量都是坐标的函数,而在坐标变换时,这些分量也依照某些规则作线性变换。称为该张量的秩或阶(与矩阵的秩和阶均无关系)。 在数学里,张量是一种几何实体,或者说广义上的“数量”。张量概念包括标量、矢量和线性算子。张量可以用坐标系统来表达,记作标量的数组,但它是定义为“不依赖于参照系的选择的”。张量在物理和工程学中很重要。例如在扩散张量成像中,表达器官对于水的在各个方向的微分透性的张量可以用来产生大脑的扫描图。工程上最重要的例子可能就是应力张量和应变张量了,它们都是二阶张量,对于一般线性材料他们之间的关系由一个四阶弹性张量来决定。

逻辑技术

人工智能领域用逻辑来理解智能推理问题;它可以提供用于分析编程语言的技术,也可用作分析、表征知识或编程的工具。目前人们常用的逻辑分支有命题逻辑(Propositional Logic )以及一阶逻辑(FOL)等谓词逻辑。

自然语言处理技术

自然语言处理(英语:natural language processing,缩写作 NLP)是人工智能和语言学领域的分支学科。此领域探讨如何处理及运用自然语言;自然语言认知则是指让电脑“懂”人类的语言。自然语言生成系统把计算机数据转化为自然语言。自然语言理解系统把自然语言转化为计算机程序更易于处理的形式。

模型选择技术

模型选择是从给定数据的一组候选模型中选择统计模型的任务。对于具有类似预测或解释力的候选模型,最简单的模型最有可能是最佳选择(奥卡姆剃刀)。

自然语言生成技术

自然语言生成(NLG)是自然语言处理的一部分,从知识库或逻辑形式等等机器表述系统去生成自然语言。这种形式表述当作心理表述的模型时,心理语言学家会选用语言产出这个术语。自然语言生成系统可以说是一种将资料转换成自然语言表述的翻译器。不过产生最终语言的方法不同于编译程式,因为自然语言多样的表达。NLG出现已久,但是商业NLG技术直到最近才变得普及。自然语言生成可以视为自然语言理解的反向: 自然语言理解系统须要厘清输入句的意涵,从而产生机器表述语言;自然语言生成系统须要决定如何把概念转化成语言。

常识推理技术

常识推理是人工智能(AI)的一个分支,它关注模拟人类每天遇到的普通情境的类型和本质的假设。这些假设包括对人和物体的物理特性,目的,意图和行为的判断,以及他们的行为和相互作用的可能结果。展示常识推理的设备将能够预测结果并得出类似于人类民间心理学(人类对人们的行为和意图进行推理的天生能力)和天真物理学(人类对物理世界的自然理解)的结论。

语言模型技术

统计式的语言模型是借由一个几率分布,而指派几率给字词所组成的字串。语言模型经常使用在许多自然语言处理方面的应用,如语音识别,机器翻译,词性标注,句法分析和资讯检索。

量化技术

深度学习中的量化是指,用低位宽数字的神经网络近似使用了浮点数的神经网络的过程。

推荐文章
暂无评论
暂无评论~