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

news2024/9/19 16:13:57

文章内容总结自:Evaluating Quantized Large Language Models(https://arxiv.org/abs/2402.18158)

如果想深入了解量化的基本概念和如何用代码实现请参考:

Michael:用python代码深入浅出量化概念

(https://zhuanlan.zhihu.com/p/696986233)

文章总结

本文都是针对PTQ(post-training quantization),如何选择和应用量化技术的建议:

  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的相对排名通常与FP16LLMs的排名一致。
  2. 与增加宽度和深度不同,利用专家混合(MoE)技术增加模型大小并不一定增强模型对量化的容忍度。

图片

图2

如图2所示,FP16Mixtral-8x7BMoE模型的性能与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相似的水平是具有挑战性的。

WQ可以提高量化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时,使用最先进的量化方法达到与FP16LLMs相似的性能水平仍然具有挑战性。

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

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

如何学习大模型 AI ?

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。

但是具体到个人,只能说是:

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

在这里插入图片描述

第一阶段(10天):初阶应用

该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。

  • 大模型 AI 能干什么?
  • 大模型是怎样获得「智能」的?
  • 用好 AI 的核心心法
  • 大模型应用业务架构
  • 大模型应用技术架构
  • 代码示例:向 GPT-3.5 灌入新知识
  • 提示工程的意义和核心思想
  • Prompt 典型构成
  • 指令调优方法论
  • 思维链和思维树
  • Prompt 攻击和防范

第二阶段(30天):高阶应用

该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。

  • 为什么要做 RAG
  • 搭建一个简单的 ChatPDF
  • 检索的基础概念
  • 什么是向量表示(Embeddings)
  • 向量数据库与向量检索
  • 基于向量检索的 RAG
  • 搭建 RAG 系统的扩展知识
  • 混合检索与 RAG-Fusion 简介
  • 向量模型本地部署

第三阶段(30天):模型训练

恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。

到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?

  • 为什么要做 RAG
  • 什么是模型
  • 什么是模型训练
  • 求解器 & 损失函数简介
  • 小实验2:手写一个简单的神经网络并训练它
  • 什么是训练/预训练/微调/轻量化微调
  • Transformer结构简介
  • 轻量化微调
  • 实验数据集的构建

第四阶段(20天):商业闭环

对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。

  • 硬件选型
  • 带你了解全球大模型
  • 使用国产大模型服务
  • 搭建 OpenAI 代理
  • 热身:基于阿里云 PAI 部署 Stable Diffusion
  • 在本地计算机运行大模型
  • 大模型的私有化部署
  • 基于 vLLM 部署大模型
  • 案例:如何优雅地在阿里云私有部署开源大模型
  • 部署一套开源 LLM 项目
  • 内容安全
  • 互联网信息服务算法备案

学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。

如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1970752.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

YOLOv10改进 | 注意力篇 | YOLOv10引入SpatialGroupEnhance注意力机制,并构建C2f_SGE

1. SGE介绍 1.1 摘要:卷积神经网络(CNN)通过收集语义子特征的层次和不同部分来生成复杂对象的特征表示。这些子特征通常可以以分组的形式分布在每层的特征向量中[43,32],代表各种语义实体。然而,这些子特征的激活通常在空间上受到相似模式和噪声背景的影响,从而导致错误…

虚拟机win server安装配置DNS服务器

准备工作 创建DNS服务器前将自己的网卡地址设置为静态IP&#xff0c;选择自己的网卡。因为本机作为DNS服务器所以将DNS服务器地址设为了自己的回环地址。 一、使用服务器管理安装 DNS 服务器 1、登录服务器后&#xff0c;服务器会默认启用“服务器管理”页面&#xff0c;选择…

提前批测开三面,已OC!

大家好&#xff0c;我是洋子 近期百度提前批已经开始有一段时间了&#xff0c;甚至已经有不少 25 届的同学 oc 了&#xff0c;这里分享一位已经顺利 oc 百度提前批测开岗位同学的三轮面试面经 整个三轮技术面试总体难度不高&#xff0c;但考察知识广度比较广&#xff0c;如果…

搭建 STM32 网关服务器的全流程:集成嵌入式 C++、TCP/IP 通信、Flash 存储及 JWT 认证(含代码示例)

引言 随着物联网&#xff08;IoT&#xff09;技术的快速发展&#xff0c;基于 STM32 的服务器&#xff08;类似网关&#xff09;在数据采集、设备控制等方面的应用越来越广泛。本文将介绍搭建一个基于 STM32 的服务器所需的技术栈&#xff0c;以及详细的搭建步骤和代码示例。 …

好的养宠空气净化器是智商税吗?好的养宠空气净化器用户体验

家里养了两只“超级掉毛怪”,家里的猫毛满天飞&#xff0c;衣服床餐具等到处都是&#xff01;感受一下40度高温的养猫人&#xff0c;给掉毛怪疏毛浮毛飘飘&#xff0c;逃不过的饮水机&#xff0c;各个角落&#xff0c;多猫拉臭传来的异味。 一、养猫需要解决的问题 掉毛&#…

Tsan-ThreadSanitizer之As if synchronized via sleep

最近在调试ffmpeg的时候&#xff0c;加入了tsan&#xff0c;结果出现了下面提示&#xff1a; 具体什么意思呢&#xff0c;找了很久找到了官方介绍&#xff1a; https://github.com/google/sanitizers/wiki/ThreadSanitizerReportFormat

大数据-61 Kafka 高级特性 消息消费02-主题与分区 自定义反序列化 拦截器 位移提交 位移管理 重平衡

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; 目前已经更新到了&#xff1a; Hadoop&#xff08;已更完&#xff09;HDFS&#xff08;已更完&#xff09;MapReduce&#xff08;已更完&am…

Git的一些简单使用

下列内容适用于git初学者&#xff0c;从创建本地git仓库到提交的一个基本过程1. 1.创建git仓库 在想创建git仓库的路径下打开git bash&#xff0c;输入以下命令行创建仓库&#xff08;一般来说&#xff0c;我觉得直接在code workspace得地方创建git仓库就可以了&#xff0c;这…

acme.sh生成https证书

前言 SSL 价格并不便宜, 本节介绍如何使用 acme.sh 生成免费的 SSL 证书 证书生成原理 CA && Let’s Encrypt 证书颁发机构&#xff08;CA&#xff0c;Certificate Authority&#xff09;是一个负责颁发数字证书的实体。数字证书用于在互联网上验证实体的身份&…

注册或购买的谷歌账号的辅助邮箱是否需要设置?有什么用?设置的要点是什么?

今天早上&#xff0c;有个朋友联系到GG账号服务&#xff0c;问我谷歌账号辅助邮箱怎么用。说实在的这个问题有点抽象&#xff0c;哈哈。 然后我详细了解了一下&#xff0c;原来是这样的&#xff1a; 他的谷歌账号提示异常&#xff08;这个时候账号肯定是被停用了的&#xff09…

【Linux应用编程】Day12线程

线程 与进程类似&#xff0c;线程是允许应用程序并发执行多个任务的一种机制&#xff0c;线程参与系统调度&#xff1b; 事实上&#xff0c;系统调度的最小单元是线程、而并非进程。 ⚫ 线程的基本概念&#xff0c;线程 VS 进程&#xff1b; ⚫ 线程标识&#xff1b; ⚫ 线…

电脑上有什么好用的记笔记软件吗?试试这3款笔记软件,功能丰富又实用

笔记软件千千万&#xff0c;日常使用方便最关键&#xff01;&#xff01; 推荐3个各有亮点的笔记软件&#xff0c;不止是记笔记这么简单&#xff1a; 1、FlowUs 推荐指数&#xff1a;☆☆☆☆☆ 关键词&#xff1a;文档笔记软件 下载链接>>flowus.cn FlowUs是一款在…

ADI - 通过5 V至24 V输入提供双极性、双向DC-DC流入和流出电流

大部分电子系统都依赖于正电压轨或负电压轨&#xff0c;但是有些应用要求单电压轨同时为正负电压轨。在这种情况下&#xff0c;正电源或负电源由同一端子提供&#xff0c;也就是说&#xff0c;电源的输出电压可以在整个电压范围内调节&#xff0c;并且可以平稳转换极性。例如&a…

【mars3d】实现线面内插值计算效果

面插值计算效果展示&#xff1a; &#xff08;离屏渲染方式&#xff09;面插值效果展示&#xff1a; 面内插值计算插点效果展示&#xff1a; 线插值效果展示&#xff1a; &#xff08;离屏渲染方式&#xff09;高密度线内插值计算效果展示&#xff1a; 相关代码&#xff1a; i…

docker二进制包部署(带arm版自动部署包)

文章目录 1.概述2.Docker二进制包下载3.安装脚本制作4.安装5.卸载6.注意事项7.分享一个arm版自动部署安装包8.懒人 X86 版安装包 1.概述 最近需要在Linux上部署docker&#xff0c;于是自己做了一个自动部署包。脚本的写法不区分X86或arm&#xff0c;通用的。 2.Docker二进制包…

网络安全和数据安全到底有什么区别?(非常详细)零基础入门到精通,收藏这一篇就够了

随着信息技术的迅猛发展&#xff0c;网络安全和数据安全已经成为当今社会不可忽视的重要议题。两者在保障信息系统安全、防范数据泄露和保障用户权益方面起着至关重要的作用。然而&#xff0c;尽管网络安全与数据安全在某些方面有着密切的联系&#xff0c;但它们在定义、目标和…

“八股文”:程序员的福音还是梦魇?

——一场关于面试题的“代码战争” 在程序员的世界里&#xff0c;“八股文”这个词儿可谓是“如雷贯耳”。不&#xff0c;咱们可不是说古代科举考试中的那种八股文&#xff0c;而是指程序员面试中的那些固定套路的题目。如今&#xff0c;各大中小企业在招聘程序员时&#xff0…

11.2.0.4 ADG故障 LGWR (ospid: 30945):terminating the instance due to error 4021

11.2.0.4 ADG无法连接&#xff0c;查看数据库为关闭状态&#xff0c;重新启动实例&#xff0c;应用日志后即可正常同步数据并打开到只读模式。 查看alert日志发现有以下报错&#xff1a; 0RA-04021:timeout occurred while waiting to lock obiectLGWR (ospid: 30945):termi…

矩阵、向量、张量 一文彻底理清!

矩阵&#xff1a;可理解为二维数组、二维张量 向量Vector&#xff1a;是只有一列的矩阵 张量&#xff1a;是矩阵向任意维度的推广。 机器学习经常会用到张量做变换&#xff0c;所以下文重点介绍张量。 可以通过.ndim查看numpy数据的张量维度。张量的维度&#xff08;dimens…

【熊猫派对】

游戏简介 熊猫派对是一款滑稽打闹游戏&#xff0c;玩法容易上手简单&#xff0c;游戏中玩家将操控自己的熊猫人&#xff0c;与其他对手对战&#xff0c;重拳、飞脚甚至还有各种各样的武器都可用来击败你的对手。 游戏特色 1、滑稽角色 网络超火的滑稽角色&#xff0c;从表情包…