Redian新闻
>
​稀疏量化表示(SpQR):3到4比特近乎无损压缩大规模语言模型

​稀疏量化表示(SpQR):3到4比特近乎无损压缩大规模语言模型

科技

©Paperweekly 原创 · 作者 | An.
单位 | 中科院自动化所
研究方向 | 计算机视觉、模型压缩


论文标题:
SpQR: A Sparse-Quantized Representation for Near-Lossless LLM Weight Compression

论文链接:

https://arxiv.org/pdf/2306.03078.pdf

代码链接:

https://github.com/Vahe1994/SpQR


动机&背景
大规模语言模型(LLM)取得了突破性进展,尤其是 LLaMA [1] 的开源及其衍生模型 [2] 极大地推动了 LLM 的实用化进程。如果能够将这些 LLM 量化压缩到每个参数的 3-4 比特,它们就有可以在大部分笔记本电脑和手机等内存有限的设备上自主部署,从而实现个性化使用。然而,量化到每个参数 3-4 比特通常会导致中等到高精度的损失,尤其是对于非常适合边缘部署的 1-10B 参数范围内的较小模型。
为了解决准确性问题,本文引入了稀疏量化表示(SpQR),这是一种新的压缩格式和量化技术,首次实现了 LLM 的近乎无损压缩,同时达到了与以前方法类似的压缩水平。该方法受到一项新的实验分析的启发,该分析表明 LLM 权重量化误差表现出垂直和水平组相关性,对应于与输入特征维度和输出隐藏维度相对应的系统大误差。
虽然在 LLM.int8 [3] 已经观察到异常值输入特征,但本文首次证明,类似的异常值出现在对于特定输出隐藏维度的权重中。与输入特征异常值不同,输出隐藏维度异常值仅出现在特定输出隐藏维度的小段中。

SpQR 的工作原理是识别和单独处理会导致大量化误差的异常值权重,并以更高的精度存储它们,同时将所有其他权重压缩到 3-4 比特,对于高精度的 LLaMA 和 Falcon LLM,在困惑中实现了小于 1% 的相对精度损失。这使得在单个 24 GB 消费级 GPU 上运行 33B 参数 LLM 成为可能。




LLM权重的量化敏感度

2.1 量化视角下的参数敏感度

并非神经网络中的所有参数都同等重要。直观地说,如果权重的舍入误差较大,则可以将其视为具有较大的量化参数敏感度。直接统计权重的舍入误差忽略了 LLM 向量相关性非常大的事实:权重 可能有较大的舍入误差,但与另一个权重 密切相关,这意味着舍入 的误差可以通过向下舍入 很好地补偿。参考 GPTQ [4] 工作,量化视角下的参数敏感度可以以更好地方式定义:

该敏感度度量可以通过量化求解器有效近似。具体来讲,GPTQ 逐列量化权重矩阵,而在每一步调整尚未量化的部分以补偿上述量化误差。因此,该方法可以通过使用对应于尚未量化权重的 Hessian 逆的子矩阵来动态处理每一列,而不是静态地确定所有灵敏度。这个矩阵已经由GPTQ有效地计算,因此不会引入任何额外开销。这种方法的主要优点是 始终根据 的当前值确定,因此也考虑了由于先前量化的权重而引起的调整。

2.2 参数敏感度分析

本文对权重的参数敏感度进行了分析,分析表明敏感权重在权重矩阵中的位置不是随机的,而是具有特定结构。图 1 可视化了 LLaMA-65B 最后一个自注意力层的输出投影层的权重的敏感度。

▲ 图1. LLaMA-65B最后一个自注意力层的权重对数敏感度。深蓝色阴影表示敏感度较高。

利用敏感度分析,作者观察到几种在权重矩阵中存在的模式,通常在单行或单列中。由于 LLaMA-65B 中的大权重矩阵有太多的行/列,无法在紧凑的图像中重新呈现,本文在左图采用最大池化来可视化矩阵,选 32×32 行和列的每个正方形中的最大敏感度。图 1 中可以观察到量化误差模式受到层类型和层深度的影响。特别是,本文发现更深的层存在更敏感的异常值。现在我们以注意力权重矩阵为例,对异常值结构进行分类:
  • 行异常值如图 1 底部中心所示,对应于输出特征的高敏感度区域。其中一些模式横跨整行,而另一些则是部分模式。在注意力层中,一些部分行异常值对应于注意力头部的某个子集。
  • 列异常值该模式出现在图 1 的右下角,显示了所有行的选择输入维度(列)的高灵敏度。
  • 敏感注意力头图 1 顶部中心区域出现了宽度为 128 的规则条纹,这对应了一个注意力头的所有权重。对应的“条纹”在 QK 投影矩阵中是水平的,在输出投影矩阵中是垂直的,在 V 投影矩阵和任何 MLP 权重中都没有。值得注意的是,即使在敏感的头部内,单独权重敏感性也存在显著差异。
  • 旋转嵌入模式图 1 右上角展示了具有 64 个单位周期的敏感度的重复垂直模式,这是旋转嵌入位置编码的特有模式。任何不使用旋转嵌入的层都没有这种图案。
  • 非结构化异常值除此之外,每一层都有许多单独的灵敏度权重,这些权重不适合任何上述模式。




SpQR:敏感度感知压缩表示

3.1 概述

现有的 LLM 量化算法平等地对待低敏感度权重和高敏感度权重;然而,上述实验分析表明,这可能导致次优量化。理想情况下,我们应该为更高敏感度的权重分配更多的存储资源。然而,这些权重多为非结构化异常或小组异常值。为了捕捉这种结构,本文对量化过程做了两大改进:一项用于捕捉小的异常组,另一项用于捕获单个异常值。

使用双层量化捕获小的权重组本文对极小的组使用逐组量化,以应对小的权重异常组。过往的经验表明小分组往往会导致存储量化统计数据的开销超过精度优势。为避免这一矛盾,本文使用与权重相同的量化算法——非对称(最小-最大)量化来量化分组统计本身。这种分级量化的思想巧妙解决了过小分组所带来的巨大开销。

高敏感度异常值上述实验分析表明,存在一小部分敏感权重以小组形式(在 Self Attention 层)或单独“异常值”形式(在 MLP 中)出现的情况。这些异常权重往往只占全部权重的 1%,但却会导致总体量化误差的 75% 以上。因此本文选择将这些异常值保持在高精度(16 位),并以类似于压缩稀疏行(CSR)表示 [5] 的行排列对它们进行单独编码。

算法流程算法 1 展示了 SpQR 的详细过程:1)找到并隔离异常值,保持 16 比特权重;2)将非异常值近似量化为 3~4 比特,并将剩余的量化转移到 16 比特异常值权重中。在第一个异常值检测步骤之后,SpQR 会忽略同一量化组中的所有异常值,只量化非异常权重。同时,在最小-最大量化后,该算法还会继续应用 GPTQ 来量化剩余权重。最后,该算法通过分级量化对稀疏异常值矩阵以及最终的量化统计量进行收集和压缩,并返回压缩后的权重及其元数据。

3.2 稀疏量化表示的实现与利用
该算法将均匀权重转换为多种大小和精度的数据结构。总体而言,该表示由(1)量化权重、(2)一级量化量化统计、二级量化统计和(3)CSR 异常值索引和值组成。我们在图 3 中总结了 SpQR 的总体结构,并在下面描述了每个组件。
▲ 图2. 单个权重张量的 SpQR 表示方法的概述,图像的右侧描绘了所有存储的数据类型及其维度。

存储量化组所有非异常值权重都被编码为一个结构,具体见图 2,该结构包含:

  • 单独权重 比特
  • 每个大小 的组的标量和零点各 比特(一级量化)
  • 用于量 组的量化标量和零点的统计量 16 比特(二级量化)

存储异常值。由于异常值是非结构化的,SpQR 按照它们的行和列对它们进行排序,这样同一行中的异常值在内存中是连续的。对于每个异常值,本文存储两个标量:16 位权重值和 16 位列索引。对于每一行,还存储一个 32 位的数字,用于表示行中异常值的总数。每个异常权重的平均存储成本为 32.03 至 32.1 比特。

SpQR 推理加速作者为 SpQR 格式设计了一个高效的基于 GPU 的解码实现,通过负载平衡和对异常值的行模式进行特定的存储器访问出来。该自定义方法比 PyTorch 中的稀疏矩阵算法更快。



实验


1. LLaMA 压缩表现表 1 展示了不同量化方法在 LLaMA上 的压缩表现。SpQR 在更低量化比特的情况下在各个数据集上都获得了优于其他方法的困惑度表现。

▲ 表1. 多个任务上的LLaMA的量化表现

2. Falcon 压缩表现表 2 展示了不同量化方法在 Falcon 上的压缩表现。SpQR 在更低量化比特的情况下在打分表数据集上都获得了优于其他方法的困惑度表现。这也验证了 SpQR 在不同 LLM 模型结构上的通用性。

▲ 表2. 多个任务上的LLaMA的量化表现
3. 消融实验SpQR 的主要改进是具有小量化组大小的双层量化和非结构化异常值的处理。表 3 展示了各个设计的贡献。

▲ 表3. 不同设计对困惑度的影响(LLaMA-65B 为例)
4. 推理耗时如表 4 所示,虽然 PyTorch 中的标准稀疏矩阵乘法并不比 16 比特推理快,但本文专门的稀疏矩阵乘法算法产生了大约 20-30% 的加速。

▲ 表4.推理速度比较(tokens/s),OOM意味着显存溢出。


参考文献

[1] Touvron, Hugo, et al. "Llama: Open and efficient foundation language models." arXiv preprint arXiv:2302.13971 (2023).
[2] Taori, Rohan, et al. "Stanford alpaca: An instruction-following llama model." (2023).
[3] Dettmers, Tim, et al. "Llm. int8 (): 8-bit matrix multiplication for transformers at scale." arXiv preprint arXiv:2208.07339 (2022).
[4] Frantar, Elias, et al. "Gptq: Accurate post-training quantization for generative pre-trained transformers." arXiv preprint arXiv:2210.17323 (2022).

[5] Hoefler, Torsten, et al. "Sparsity in deep learning: Pruning and growth for efficient inference and training in neural networks." The Journal of Machine Learning Research 22.1 (2021): 10882-11005.



更多阅读



#投 稿 通 道#

 让你的文字被更多人看到 



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


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


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


📝 稿件基本要求:

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

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

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


📬 投稿通道:

• 投稿邮箱:[email protected] 

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

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


△长按添加PaperWeekly小编



🔍


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

进入知乎首页搜索「PaperWeekly」

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


·
·

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

戳这里提交新闻线索和高质量文章给我们。
相关阅读
紫花遍地毳球枝ICCV 2023 | 基于预训练视觉语言模型和大语言模型的零样本图像到文本生成基于模型量化的大模型压缩的进展Universal transport QR code debuts in XM将蛋白质语言模型扩展到千亿参数,深度解读百图生科、清华xTrimoPGLM模型BLIP-2、InstructBLIP稳居前三!十二大模型,十六份榜单,全面测评「多模态大语言模型」微调OpenAI的Whisper自动语音识别(ASR)模型大规模语言模型剪枝又一力作,比SparseGPT还快300倍!ImageNet-1K压缩20倍,Top-1精度首超60%:大规模数据集蒸馏转折点日本商社成为巴菲特近年来最成功的投资之一LLaMA微调显存需求减半,清华提出4比特优化器“智能生活,从一锅好饭开始!苏泊尔(SUPOR)Pro电饭煲,让你品味不一样的幸福!”比 Spark 快 9 倍,超越 ClickHouse,在大语言模型时代构建全新数据平台【专题速递】感知无损压缩、LCEVC、RTE中的AV1、PPA优化以及Tencent266编码器狐狸精和伪善女陀螺研究院发布《2023年全球增强现实抬头显示(AR-HUD)报告》AVS感知无损压缩标准概述——视觉无损质量等级视频浅压缩大语言模型真能“理解”语言吗?《听海》&《你就不要想起我》张文宏团队研究:尽管反复接种原始新冠疫苗,但对变异毒株已近乎无效堆栈与堆(Stack vs Heap):有什么区别?图文并茂拆解代码解析!大型语言模型专场上线!四位AI新青年直播讲解MiniGPT-4、LLaVA、Gorilla以及大型语言模型Token危机从挖呀挖的大妈被抓谈私人权利写博士论文的10个提示(也适合硕士论文)快冲!纽约长岛Jericho亚洲食品展,错过亏一个亿!幸运转盘 | 夹娃娃 | 文化表演..Prompt解锁语音语言模型生成能力,SpeechGen实现语音翻译、修补多项任务ACL 2023 | 达摩院、NTU提出多视图压缩表示,显著提升预训练语言模型鲁棒性大模型在无损压缩方面超越PNG和FLAC中国科学院团队首篇LLM模型压缩综述:细聊剪枝、知识蒸馏、量化技术5090 血壮山河之武汉会战 黄广战役 22如何更好地蒸馏ChatGPT模型能力:Lion闭源大型语言模型的对抗性蒸馏模型原理及实验工作介绍学习生成式大语言模型,东北大学自然语言处理实验室有一堂课ICCV 2023|南洋理工大学开源大规模语言视频分割数据集MeViS商汤大模型全面升级!「商量SenseChat 2.0」大语言模型疯狂上分微软发布 Guidance 语言,用于控制大语言模型
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。