稀疏量化表示(SpQR):3到4比特近乎无损压缩大规模语言模型
论文链接:
代码链接:
SpQR 的工作原理是识别和单独处理会导致大量化误差的异常值权重,并以更高的精度存储它们,同时将所有其他权重压缩到 3-4 比特,对于高精度的 LLaMA 和 Falcon LLM,在困惑中实现了小于 1% 的相对精度损失。这使得在单个 24 GB 消费级 GPU 上运行 33B 参数 LLM 成为可能。
LLM权重的量化敏感度
2.1 量化视角下的参数敏感度
2.2 参数敏感度分析
▲ 图1. LLaMA-65B最后一个自注意力层的权重对数敏感度。深蓝色阴影表示敏感度较高。
行异常值:如图 1 底部中心所示,对应于输出特征的高敏感度区域。其中一些模式横跨整行,而另一些则是部分模式。在注意力层中,一些部分行异常值对应于注意力头部的某个子集。 列异常值:该模式出现在图 1 的右下角,显示了所有行的选择输入维度(列)的高灵敏度。 敏感注意力头:图 1 顶部中心区域出现了宽度为 128 的规则条纹,这对应了一个注意力头的所有权重。对应的“条纹”在 QK 投影矩阵中是水平的,在输出投影矩阵中是垂直的,在 V 投影矩阵和任何 MLP 权重中都没有。值得注意的是,即使在敏感的头部内,单独权重敏感性也存在显著差异。 旋转嵌入模式:图 1 右上角展示了具有 64 个单位周期的敏感度的重复垂直模式,这是旋转嵌入位置编码的特有模式。任何不使用旋转嵌入的层都没有这种图案。 非结构化异常值:除此之外,每一层都有许多单独的灵敏度权重,这些权重不适合任何上述模式。
3.1 概述
现有的 LLM 量化算法平等地对待低敏感度权重和高敏感度权重;然而,上述实验分析表明,这可能导致次优量化。理想情况下,我们应该为更高敏感度的权重分配更多的存储资源。然而,这些权重多为非结构化异常或小组异常值。为了捕捉这种结构,本文对量化过程做了两大改进:一项用于捕捉小的异常组,另一项用于捕获单个异常值。
使用双层量化捕获小的权重组。本文对极小的组使用逐组量化,以应对小的权重异常组。过往的经验表明小分组往往会导致存储量化统计数据的开销超过精度优势。为避免这一矛盾,本文使用与权重相同的量化算法——非对称(最小-最大)量化来量化分组统计本身。这种分级量化的思想巧妙解决了过小分组所带来的巨大开销。
高敏感度异常值。上述实验分析表明,存在一小部分敏感权重以小组形式(在 Self Attention 层)或单独“异常值”形式(在 MLP 中)出现的情况。这些异常权重往往只占全部权重的 1%,但却会导致总体量化误差的 75% 以上。因此本文选择将这些异常值保持在高精度(16 位),并以类似于压缩稀疏行(CSR)表示 [5] 的行排列对它们进行单独编码。
存储量化组。所有非异常值权重都被编码为一个结构,具体见图 2,该结构包含:
单独权重 比特 每个大小为 的组的标量和零点各 比特(一级量化) 用于量化 组的量化标量和零点的统计量 16 比特(二级量化)
存储异常值。由于异常值是非结构化的,SpQR 按照它们的行和列对它们进行排序,这样同一行中的异常值在内存中是连续的。对于每个异常值,本文存储两个标量:16 位权重值和 16 位列索引。对于每一行,还存储一个 32 位的数字,用于表示行中异常值的总数。每个异常权重的平均存储成本为 32.03 至 32.1 比特。
1. LLaMA 压缩表现:表 1 展示了不同量化方法在 LLaMA上 的压缩表现。SpQR 在更低量化比特的情况下在各个数据集上都获得了优于其他方法的困惑度表现。
2. Falcon 压缩表现:表 2 展示了不同量化方法在 Falcon 上的压缩表现。SpQR 在更低量化比特的情况下在打分表数据集上都获得了优于其他方法的困惑度表现。这也验证了 SpQR 在不同 LLM 模型结构上的通用性。
▲ 表4.推理速度比较(tokens/s),OOM意味着显存溢出。
参考文献
[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」
点击「关注」订阅我们的专栏吧
微信扫码关注该文公众号作者