量化方法怎么选?如何评估量化后的大模型LLM?

如果想深入了解量化的基本概念和如何用代码实现请参考:用python代码深入浅出量化概念(https://zhuanlan.zhihu.com/p/696986233)

文章总结

本文都是针对PTQ如何选择和应用量化技术的建议:

  1. 评估量化对各种NLP任务的影响

  2. 评估量化对不同LLMs的影响

  3. 不同的Tensor类型对量化的影响

  4. 不同的量化方法对模型的影响

根据实验结果的几个关键见解如下:

  1. 模型越大,对仅权重和KV缓存量化的容忍度越高,而对激活量化的容忍度较低。

  2. 利用专家混合(MoE)技术增加模型大小并不一定增强模型对量化的容忍度。

  3. 对于大多数NLP任务,将大多数LLM家族量化为W4、W4A8、KV4和W8KV4,性能损失可以忽略不计(<2%)。在一定的内存预算下,使用量化到W3的较大模型可以获得更优性能。

  4. 在四种突出能力(即上下文学习、指令遵循、多步推理和自校准)中,自校准和多步推理能力对量化更敏感。对于小于13B的LLMs,推荐使用W8、W8A8和KV8量化。

  5. 对于伦理任务,小型模型对量化的敏感性更高。仅权重量化会增强模型对敏感信息的判断,而KV缓存量化则有相反的效果。

  6. LLMs在处理长文本(>4k)时,对仅权重和KV缓存量化的敏感性高于短文本(<4k),尤其是对KV缓存量化。在大多数情况下,W4、W4A8和KV8可以在长上下文任务中保持性能。

  7. 最先进的量化方法,如SmoothQuant和AWQ,在量化造成的性能损失适中时,可以有效提升性能。然而,当使用极低位宽时,AWQ和SmoothQuant无法恢复完全损坏的性能。

统计分析工具

三种张量统计方法用于分析评估结果

  1. 最大绝对值(AbsMax)显示动态范围。

  2. 标准差(Std)σ反映数据值偏离平均值的程度。较小的标准差表明张量更适合量化。

  3. 峰度(kurtosis)总结了某个张量的异常值情况,其中n是张量中的数据点数,μ是张量的平均值。高峰度表明分布具有重尾,表明异常值的可能性更高。相反,低峰度表明轻尾,表明分布中的异常值较少。

峰度公式:

=1𝑛∑𝑖=1𝑛(𝑥𝑖−𝜇𝑏)4

量化类型

三种不同类型的量化:

  1. 仅权重量化:只量化每个线性层的权重张量W。

  2. 权重-激活量化:量化每个线性层的输入激活X和权重张量W。

  3. KV缓存量化:量化每个自注意力块中的键张量K和值张量V。

为了简化,我们使用W、A和KV后跟一个正整数来表示对权重、激活和KV缓存的量化到特定位宽。例如,W4A8表示将权重量化到4位,激活量化到8位。

量化对不同LLMs的影响

  1. 当位宽高于W4、W4A8和KV4时,量化LLMs的相对排名通常与FP16 LLMs的排名一致。

  2. 与增加宽度和深度不同,利用专家混合(MoE)技术增加模型大小并不一定增强模型对量化的容忍度。

图2

如图2所示,FP16 Mixtral-8x7B MoE模型的性能与LLaMA2-70B相似。然而,Mixtral-8x7B对仅权重和KV缓存量化的敏感性比LLaMA2-70B更高。相反,Mixtral-8x7B对量化的敏感性更接近于同一模型家族中较小的LLaMA2-7B和Mistral-7B。

3. OPT模型对Weight-only 和 Weight-Activation的量化非常敏感,不适合量化.

量化对不同Tensor类型的影响

  1. 模型参数越多对权重量化的容忍度越高

  2. KV cache的量化和权重量化的现象一致

  3. 模型越大对激活量化的容忍度反而越低

一般来说,在大多数任务上,大部分LLMs可以通过W4或KV4量化保持其性能。当将LLMs量化到W3或KV3时,所有模型家族中小型模型的性能都会明显下降。此外,对于W2或KV2,大多数模型都会经历显著的性能损失

对于权重-激活量化,W4A8 LLMs代表了可以达到良好性能的前沿。W4A4量化将严重影响LLMs的效果。在具有大批量大小和长文本的实际应用中,一种常见做法是同时量化权重和KV缓存。对于短文本任务,W8KV4几乎无损失。对于长文本任务,W8KV8是更好的选择。

量化对不同任务的影响

我们没有观察到量化在不同语言中的不同影响。我们在CHID和Winogrande数据集上评估了各种量化LLMs,这些数据集分别是中文和英文的完形填空任务。尽管不同LLMs在这些任务上的表现各异,但量化引起的性能损失趋势相当相似。

  1. W4, W4A8和KV4的量化几乎不影响效果

  2. 在内存限定时,推荐使用大模型W3的量化

  3. 当模型出现饱和(效果不随模型增大而变好)建议使用小模型+高位宽的量化

不同量化方法对模型效果的影响

使用极低位宽(如W2或W4A4)时,使用最先进的量化方法将性能恢复到与FP16 LLMs相似的水平是具有挑战性的。

AWQ可以提高量化LLMs的性能。此外,模型越大,其性能越接近FP16基线。然而,在W2量化的情况下,量化的LLMs完全失去了它们的能力,AWQ无法恢复损坏的性能。权重-激活量化也观察到了类似的结果。虽然SmoothQuant可以部分恢复W4A4量化的性能,但性能仍然显著低于FP16基线。

为了使极低位宽量化(如W2、W4A4和KV2)有效,需要进一步研究量化方案或量化感知训练(QAT)方法。

量化对涌现能力的影响

能力涌现包含:

  1. In-Context Learning

  2. Instruction-Following

  3. Multi-Step Reasoning:多步推理

  4. Self-Calibration:自我校准

量化对不同任务影响

结论

在四种突出能力中,多步推理和自我校准能力对量化的容忍度明显低于指令遵循和上下文学习能力,尤其是对于小型LLMs。

一般来说,**对于较小的模型(<13B),W8或KV8更适合维持多步推理和自我校准能力。对于较大的模型(>13B),W4或KV4更适合维持所有四种突出能力。**此外,对于大多数LLMs,W4A8不会导致显著的性能损失,但W4A4会导致所有模型完全失去突出能力。

量化对对话任务的影响

使用两轮的MT-bench评估量化后的LLMs对话的质量。我们使用GPT-4为每个生成的对话生成单一答案评分(GPT-4分数),分数范围从1到10。

**对话能力对KV缓存量化的容忍度高于权重量化。**大多数LLM家族可以量化为W8、W4A8和KV4,而不会造成GPT-4分数的显著损失(<0.2)。

在具体的失败模式方面,我们观察到:

  1. 使用W3和KV3量化时,大多数LLMs开始重复一些句子。

  2. 使用W2、KV2和W4A4时,大多数LLMs失去了对话能力,生成无意义的符号或重复一些单词。

  3. 只有少数LLMs,如ChatGLM3-6B、Falcon-40B和Falcon-180B,在KV2量化下仍能生成连贯的句子,尽管大多数句子缺乏有意义的内容。

在MT-Bench中,第二轮对话的GPT-4分数一致低于第一轮。然而,量化对大多数LLMs中的两轮对话没有影响。一个例外是,当将KV缓存从KV8量化到KV3时,LLaMA2-13B在第二轮对话的GPT-4分数显著下降了1.19,而第一轮对话的GPT-4分数仅下降了0.31。

对于对话任务,当使用极低的位宽,如W2或W4A4时,使用最先进的量化方法达到与FP16 LLMs相似的性能水平仍然具有挑战性。

在未来,值得研究量化对超过两轮的对话的影响。量化在经过几轮对话后是否会有更显著的效果尚未可知。

量化对Long-Context任务的影响

长文本(>4k)对仅权重和KV缓存量化的敏感性高于短文本(<4k)。对于仅权重量化,长文本的性能损失显著大于短文本。图5(a)显示,当量化到W3时,Mixtral-8x7B和Vicuna-7B模型在较长文本上的准确率损失更为显著。

图5

对于权重-激活量化,量化模型在长文本上的性能退化并不比短文本大,如图5(b)所示。实际上,我们可以将大多数LLM家族量化到W4和W4A8,除了LongChat(基于LLaMA的)家族(16K),它只能被量化到W8和W8A8。

对于长上下文任务,大多数LLMs对KV缓存量化的敏感性高于仅权重量化和权重-激活量化。

在相同的位宽下,使用KV缓存量化的LLMs的性能明显低于仅权重量化的性能,如图5(a, c)所示。在LongChat(基于LLaMA的)家族中,即使是KV8量化也会导致长文本上的显著性能退化。对于Vicuna(基于LLaMA2的)和ChatGLM家族(32K),KV8量化几乎无损,而在使用KV4时长文本上的性能退化才会发生。Mistral家族显示出对KV缓存量化的最高容忍度,这与短文本不同。对于Mistral家族,KV4仍然是无损的。

量化对模型处理不同位置信息的能力的影响各不相同。

在我们的评估中,我们将含有16K Token的长文本分为十个区间,每个区间内的信息均匀分布。如图5(d, f)所示,对于Mixtral-8x7B,仅权重和KV缓存量化对中间位置带来更显著的损失,同一模型家族中的Mistral-7B也出现了类似的结果,如附录中的图27所示。对于其他家族,在大多数情况下,量化在不同位置的效果是一致的。一个例外是图5(f)所示,其中KV4量化的Vicuna-7B在文本开头显示出更显著的效果。

如何系统的去学习大模型LLM ?

作为一名热心肠的互联网老兵,我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。

但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的 AI大模型资料 包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来

所有资料 ⚡️ ,朋友们如果有需要全套 《LLM大模型入门+进阶学习资源包》,扫码获取~

👉[CSDN大礼包🎁:全网最全《LLM大模型入门+进阶学习资源包》免费分享]👈

在这里插入图片描述

一、全套AGI大模型学习路线

AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!

img

二、640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

img

三、AI大模型经典PDF籍

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。

img

在这里插入图片描述

四、AI大模型商业化落地方案

img

阶段1:AI大模型时代的基础理解
  • 目标:了解AI大模型的基本概念、发展历程和核心原理。
  • 内容
    • L1.1 人工智能简述与大模型起源
    • L1.2 大模型与通用人工智能
    • L1.3 GPT模型的发展历程
    • L1.4 模型工程
      - L1.4.1 知识大模型
      - L1.4.2 生产大模型
      - L1.4.3 模型工程方法论
      - L1.4.4 模型工程实践
    • L1.5 GPT应用案例
阶段2:AI大模型API应用开发工程
  • 目标:掌握AI大模型API的使用和开发,以及相关的编程技能。
  • 内容
    • L2.1 API接口
      - L2.1.1 OpenAI API接口
      - L2.1.2 Python接口接入
      - L2.1.3 BOT工具类框架
      - L2.1.4 代码示例
    • L2.2 Prompt框架
      - L2.2.1 什么是Prompt
      - L2.2.2 Prompt框架应用现状
      - L2.2.3 基于GPTAS的Prompt框架
      - L2.2.4 Prompt框架与Thought
      - L2.2.5 Prompt框架与提示词
    • L2.3 流水线工程
      - L2.3.1 流水线工程的概念
      - L2.3.2 流水线工程的优点
      - L2.3.3 流水线工程的应用
    • L2.4 总结与展望
阶段3:AI大模型应用架构实践
  • 目标:深入理解AI大模型的应用架构,并能够进行私有化部署。
  • 内容
    • L3.1 Agent模型框架
      - L3.1.1 Agent模型框架的设计理念
      - L3.1.2 Agent模型框架的核心组件
      - L3.1.3 Agent模型框架的实现细节
    • L3.2 MetaGPT
      - L3.2.1 MetaGPT的基本概念
      - L3.2.2 MetaGPT的工作原理
      - L3.2.3 MetaGPT的应用场景
    • L3.3 ChatGLM
      - L3.3.1 ChatGLM的特点
      - L3.3.2 ChatGLM的开发环境
      - L3.3.3 ChatGLM的使用示例
    • L3.4 LLAMA
      - L3.4.1 LLAMA的特点
      - L3.4.2 LLAMA的开发环境
      - L3.4.3 LLAMA的使用示例
    • L3.5 其他大模型介绍
阶段4:AI大模型私有化部署
  • 目标:掌握多种AI大模型的私有化部署,包括多模态和特定领域模型。
  • 内容
    • L4.1 模型私有化部署概述
    • L4.2 模型私有化部署的关键技术
    • L4.3 模型私有化部署的实施步骤
    • L4.4 模型私有化部署的应用场景
学习计划:
  • 阶段1:1-2个月,建立AI大模型的基础知识体系。
  • 阶段2:2-3个月,专注于API应用开发能力的提升。
  • 阶段3:3-4个月,深入实践AI大模型的应用架构和私有化部署。
  • 阶段4:4-5个月,专注于高级模型的应用和部署。
这份完整版的所有 ⚡️ 大模型 LLM 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

全套 《LLM大模型入门+进阶学习资源包↓↓↓ 获取~

👉[CSDN大礼包🎁:全网最全《LLM大模型入门+进阶学习资源包》免费分享👈

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值