FrameQuant: Flexible Low-Bit Quantization for Transformers阅读

Abstract

Transformers是许多视觉和自然语言处理任务中强大基础模型的核心。但它们的计算和内存/存储需求很大,因此运行这些模型成本高昂,经常需要高端硬件。为了解决这个问题,训练后量化(Post-Training Quantization)试图修改预训练模型,并将其量化到八位或更低,显著提高计算/内存/延迟效率。这类模型在量化到四位时已有成功,但会有一些性能损失。本文提出了一种简单的方法,将基于Transformer的模型量化到仅两位(加上一些开销),且准确性只略有下降。我们采用了谐波分析中的“融合框架”(Fusion Frames)这一概念。**我们的主要发现是,量化必须在“融合框架”表示中进行,而不是在原始权重空间中。**如果将量化视为噪声的加入,我们的问题表述允许调用已知的一系列一致恢复和噪声鲁棒性保证。此外,如有需要,还可以使用已知形式的去噪滤波器。通过多种实验,我们实证展示了几乎两位的量化可以大幅提高Transformer模型的效率。代码可在GitHub获取。

Introduction

基于Transformer的大型语言模型(LLMs)在自然语言处理任务中占据主导地位,如语言翻译和文本摘要。Vision Transformers(VITs)将这一理念应用于计算机视觉,并在图像分类、目标检测、生成和分割方面取得了最先进的成果。普遍认为,模型规模的扩大提供了显著的新能力。

虽然大型模型在性能上有很大提升,但在产品中部署这些模型带来了独特挑战。例如,在昂贵硬件上运行这些模型可能会极大增加数据中心成本。即使在消费级机器上加载这些模型也很困难,处理资源受限的异构设备几乎是不可能的。这导致了多种以提高效率为重点的模型压缩策略,如蒸馏、剪枝、稀疏化和量化。其中,训练后量化具有独特优势,因为它不改变模型结构或训练方案。

本文提出了一种新的训练后量化方案,FrameQuant,它在减少模型大小和保持模型质量之间提供了更大的灵活性。具体而言,FrameQuant提供了等同于使用分数位数进行量化的能力,这很有价值,因为对于像GPT这样的大型Transformer模型,当我们减少位宽到低位量化(如2位)时,模型质量会迅速下降。此外,根据下游任务的精度需求或控制最差误差的愿望,更多的灵活性为用户提供了更多控制。

为实现这一目标,我们的主要思路是计算预训练权重矩阵的一种特定类型的冗余/超完备表示,并在该表示中对矩阵进行量化。我们将看到,通过选择这种表示,自然能够提高对量化误差的鲁棒性。去量化步骤使用一种简单的方法来重建全精度权重。我们利用谐波分析中的成熟概念“融合框架”作为我们提案的基础。融合框架在模拟数字转换和信号传输中的信号处理中发挥重要作用。当框架系数被加性噪声破坏时,其鲁棒性得到了保证。它们在数值上稳定,如果接受额外的计算/内存开销,已知的去噪滤波器具有良好的理论性质或可证明的最佳恢复方案。我们认为,神经网络量化的框架理论尚未被探索。

什么是谐波分析?什么是融合框架?
### 谐波分析
谐波分析是研究信号或函数如何分解为基本波形(如正弦波或其他基函数)的领域。这涉及傅里叶变换、小波变换等技术,用于分析信号的频域特性。
#### 关键概念:
- 傅里叶变换:将信号从时间域转换到频率域,揭示信号的频谱特性。
- 小波变换:用于时频分析,能够同时提供时间和频率信息。

### 融合框架
融合框架是谐波分析中的一个概念,用于构造冗余表示,使信号在存在噪声或其他干扰时仍能有效重建。
#### 关键特性:
- 冗余表示:通过提供多于所需的基函数,增强对噪声的鲁棒性。
- 鲁棒性:即使在噪声影响下,仍能稳定地重建原始信号。
- 去噪能力:能够利用冗余信息去除噪声,保留信号的主要特征。
### 应用
在神经网络量化中,利用这些概念可以设计更加鲁棒的权重表示方法。通过选择合适的冗余表示,提升对量化误差的耐受性,进而提高模型的精度和稳定性。

我们的关键贡献包括:(a)一种具有理论保证的分数位量化能力的方法。(b)我们通过实验证明,Transformer模型可以被量化到两位(或2.x位),在包括15种流行的视觉Transformer和大型语言模型在内的广泛测试中取得了一致的改进。

1.1. 相关工作

随着基础模型规模的增长,模型压缩成为一个活跃的研究话题。蒸馏、剪枝/收缩和稀疏化的使用非常普遍。通过量化进行模型压缩的方法也越来越受关注,因为它在训练期间或训练后只需对架构做出最小更改。训练期间的量化效果很好,但需要重新训练模型。训练后量化(PTQ)方法则只需在小型校准集上量化预训练模型,工作量较少。这些方法对于大型语言模型,如OPT和BLOOM,很有效,能在性能仅有小幅下降的情况下减少位宽。例如,研究分析了数据依赖舍入的效果,提出了AdaRound量化以高效地最小化层代理损失。另一种方法通过最小化平方误差来逐层量化,同时调整未量化权重。OPTQ(前身为GPTQ)扩展了这些理念,提供了一种稳定的方案,可将大型语言模型压缩到每个参数3或4位,且准确性损失不大。

对于Vision Transformers,PTQ4ViT分两个阶段对权重进行量化,并使用Hessian引导搜索权重的最佳缩放比例。另一个方法使用特征图来寻找最佳量化区间,以保持量化和原始特征图之间的相似性,并为每一层选择不同的位宽。

最近的一个结果报告了对语言模型的两位量化。我们的方法基于不同的起点:我们选择使用框架理论来最小化量化误差,而Chee等人使用不相关性作为前后处理步骤。这两种方法由于与基底展开相关的相似基本原理而都能很好地工作。我们稍后会讨论如何将Chee等人的方法视为我们公式的一个特殊版本(但没有冗余)。

Finite Frame Theory and Fusion Frames

框架推广了Hilbert空间的正交基分解,并提供冗余表示。有限框架在量化和擦除的鲁棒信号传输、编码理论、分布式处理、压缩感知等领域应用广泛。我们首先简要回顾相关概念,熟悉这些概念的读者可以略读此部分。

Hilbert空间
Hilbert空间是一个完备的内积空间,广泛用于数学分析和量子力学中。它是欧几里得空间的扩展,允许无限维度。

关键特性
内积:定义向量之间的角度和长度。
完备性:任意的柯西序列在该空间中收敛。
无限维度:可以包含无限多的正交基。

应用
量子力学:描述量子态的空间。
函数分析:用于研究信号和系统的频域特性。
Hilbert空间为许多数学和工程问题提供了一个统一的框架,特别是在涉及信号处理和系统理论的领域。

考虑一个维度为d的有限维Hilbert空间H。本文中,我们将此空间表示为Hd。

定义2.1(框架):在Hd中,k个向量ϕ = (φi)k_i=1称为Hd的一个框架,如果存在常数0 < A ≤ B < ∞使得对于所有x ∈ Hd,有

[ A||x||^2 ≤ \sum_{i=1}^k |⟨x, φi⟩|^2 ≤ B||x||^2 ]

其中⟨·,·⟩表示点积。常数A和B分别为下框架界和上框架界。夹逼表达式表明,当我们计算x与框架的内积时,x不会被严重失真。当A = B时,ϕ称为A-tight框架。当A = B = 1时,我们得到Parseval框架。图1显示了不同k值下R2的紧框架示例。下界等价于要求ϕ在H上生成。因此,对于一个框架,我们总有k ≥ d。如果k = 3d,则冗余度为r = 3。

冗余度 是指框架中向量的数量  k  相对于空间维度 d 的比率。若  k = 3d ,则冗余度  r = 3

融合框架提供了一种将“较小”框架融合以构建大框架的方法,具有各种效率和鲁棒性特性。

定义2.2(融合框架):令(Wi)k_i=1为Hd中的子空间族,(wi)k_i=1 ⊆ R+为权重族。那么((Wi,wi))k_i=1是Hd的一个融合框架,如果存在常数0 < A ≤ B < ∞使得对于所有x ∈ Hd,有

[ A||x||^2 ≤ \sum_{i=1}^k w_i^2 ||Ui(x)||^2 ≤ B||x||^2 ]

其中Ui表示每个子空间Wi的正交投影。常数A和B仍表示下和上融合框架界。

类似于框架的情况,当A = B时,融合框架((Wi,wi))k_i=1称为紧融合框架,当A = B = 1时称为Parseval融合框架。最后,如果wi = 1对所有i成立,我们简化为(Wi)k_i=1。

2.1. 融合框架中的算子

融合框架(FF)算子可以通过Hilbert空间的直接和形式定义。由于我们将这些算子用于模型量化,为简化记法,我们用向量和矩阵来描述它们。设在这里插入图片描述
是Hd的一个融合框架,具有正交基(Pi)k_i=1

分析算子TW将信号x ∈ Hd与所有基(Pi)k_i=1计算点积,结果表示x相对于FF为:

[ TW:x→(wiPT_i(x))k_i=1 ]

合成算子T*W是分析算子的共轭,接收表示向量序列(yi)k_i=1,输出Hd中的信号:

融合框架算子SW是这两个算子的组合。首先使用分析算子计算在不同子空间的FF表示。然后,当需要时,我们可以使用合成算子从这些表示中重建信号。当融合框架是紧的,重建是精确的。

其中Ui=PiPiT是子空间Wi的正交投影。如果融合框架是紧的,则SW=AId,其中Id是d×d的单位矩阵。本文将使用Parseval融合框架,即框架界A=B=1。

如何使用融合框架? 一个简单的例子帮助理解实际应用:

例1:考虑欧几里得空间Hd=R4。假设有一个融合框架,有k=3个子空间,每个子空间的维度为ρ=2。为简化记法,我们用合成算子T*W表示这些子空间:

T*W =
在这里插入图片描述

我们希望计算信号在这里插入图片描述
的FF表示。为此,我们应用分析算子TW。分析算子基于上述T*W中的各个转置。

[ TW(x)= \left(\begin{array}{c}-0.28 \ 0.28 \end{array}\right), \left(\begin{array}{c}-1.22 \ -0.32 \end{array}\right), \left(\begin{array}{c}-0.22 \ -0.82 \end{array}\right) ]

应用T*W于x,得到FF表示:
在这里插入图片描述

为了获得x在不同子空间Wi上的实际投影,我们将这些系数乘以相应子空间的缩放正交基(wiPi)k_i=1:
在这里插入图片描述

我们可以通过验证SW=Id或检查(\sum_{i=1}3w2_iUi(x)=x)
(仅精确到舍入误差)来确认这个融合框架是Parseval框架。应用合成算子T*W于上述投影可完美重建x。

FF表示被噪声破坏时会怎样? 由于信号表示中的冗余,我们期望对由于噪声导致的破坏有一定的免疫能力。在当前例子中,确实如此。如果我们在TW(x)上添加SNR为10dB的噪声,并使用噪声系数重建x,我们观察到冗余因子r=1.5×时MSE减少33%,r=2×时减少50%,这与理论一致。

量化Transformer层: 让我们考虑对Transformer模型中的每一层进行量化,例如通过逐个量化个别权重或列。首先,注意量化误差/噪声是依赖于权重的。此外,误差还取决于其他权重的量化方式。指导量化方案的唯一方法是在小型校准数据集D上评估损失。在这种情况下,即使对噪声有很强的假设,也很难对反量化的质量说太多。另一方面,关于在适当框架基(如融合框架)中给定数据的量化行为,人们知道的更多,重建误差界是可用的。简单地说,由于框架表示的鲁棒性,框架投影空间中的量化噪声在重建中引起的误差要小得多。第3节将利用这一原理。

2.2. 紧融合框架及其构建

我们首先定义将使用的融合框架类型,然后描述它们的构建方法。

定义2.3(紧融合框架或TFF):对于A > 0和d×d单位矩阵Id,(k, ρ, d)-TFF是一系列d×d的正交投影矩阵{Ui}k_i=1,具有秩ρ和标量{wi}k_i=1,wi > 0,使得:

[ \sum_{i=1}^k w^2_iUi = AId ]

(k, ρ, d)-TFF是在d维空间中的k个等维子空间,维度为ρ,Ui是第i个子空间上的正交投影矩阵。

构建TFF:使用(Casazza et al., 2011)中的算法可以生成TFF,只需提供维度d,所需子空间数量k,以及每个子空间的维度ρ。算法有两个主要步骤。首先,为复数域Cρ生成一个d个单位范数向量的紧框架。然后,用单位根调制该框架以生成Cd的k个子空间。我们使用(Fickus et al., 2023)中描述的简单构造将这些融合框架扩展到Rd。由于它可以作为黑箱模块使用,我们略过细节,并在附录§J中提供简要概述。

备注:有一些属性值得注意。此融合框架构造是稀疏/块对角的,可以逐个子空间生成。要生成另一个融合框架,可以对其进行随机旋转。根据手头的Transformer模型,层激活的维度决定了d。对于我们框架中期望的冗余因子(k × ρ ≥ d),给定d,我们简单选择k和ρ使得它们是有效的(即,根据(Casazza et al., 2011),存在(k, ρ, d)的TFF)。如果没有,我们使用略低的冗余因子r,因为我们知道总会有一个平凡的解,即k = 1和ρ = d。

Fusion Frames based Quantization

现在我们可以利用前面章节中描述的理念来量化Transformer模型的参数。与常见的后训练量化(PTQ)方法一致,我们逐层进行量化,最小化量化层输出与非量化层输出之间的代理损失。

在FF空间中有哪些类似的计算? 考虑Transformer模型中的第l层,参数为Θl。令Aprev表示已量化的前一个层在校准集D上的激活。第l层的(非量化)输出Zl为:

[ Zl = Θl Aprev ]

这里,Θl将输入Aprev映射到输出Zl。为了避免直接量化Θl,我们希望量化噪声影响融合框架表示中的类似项。因此,我们设定一些记号。一般而言,Zl和Aprev的维度可能不同。因此,它们各自的融合框架中的子空间数量会不同。让k, kprev表示Zl和Aprev各自的子空间数量。换句话说,Wl = (Wl_i)^k_i=1 和 Wprev = (Wprev_i)kprev_i=1。设Wl和Wprev子空间的正交基序列分别为(Pl_i)k_i=1 和 (Pprev_i)^kprev_i=1。为了简化记号,我们将标量wi吸收到Pi中。为了在FF空间中表达,简单起见,让我们将上述正交基向量化并定义:

在这里插入图片描述

获取输出Zl的FF表示意味着:

[ P^T_l Zl = P^T_l Θl Aprev = Zl ]

重新排列括号:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在上述表达式中,(P^T_l Θl Pprev)将Aprev的FF表示,即(P^T_{prev} Aprev),映射到(P^T_l Zl)的FF表示。该操作完全在FF表示空间内进行。

一种记号简化允许我们交叉引用FF空间计算相对于目标函数的作用。令Cprev = P^T_{prev} Aprev 和 Dl = P^T_l Θl Pprev。我们的目标是量化Dl为D̂l,同时在FF表示中最小化代理损失:

在这里插入图片描述

H̃ = Cprev C^T_{prev}
对应于大多数已发表的PTQ策略中的Hessian。因此,我们的损失与其他方法相同,只是我们在FF表示空间中操作,并享有所有相关的噪声鲁棒性特性。另外,由于量化转换权重Dl的损失与(例如Frantar et al., 2023)相同,我们可以在几乎没有变化的情况下直接使用基于Hessian的迭代量化算法(Frantar & Alistarh, 2022; Frantar et al., 2023)。最后,按照后训练量化中的最新研究(Nagel et al., 2020; Frantar & Alistarh, 2022; Frantar et al., 2023; Chee et al., 2023),我们主要关注量化转换后的权重(Dl),但在§F中包含一个简单激活量化的实验。我们注意到,对于较小的视觉模型,有独立的激活量化策略,可以达到四位精度,详见(Ding et al., 2022; Yuan et al., 2022)。

量化过程的细节:除了在FF空间中工作外,量化过程与(Frantar et al., 2023)几乎相同。我们使用(Frantar et al., 2023)的迭代方法,并进行一些修改以提高算法的稳定性。例如,我们发现,在调用GPTQ的迭代方案之前裁剪权重可以减少量化过程中的权重范围。这有效地为过大的离群权重添加了更多的量化噪声。由于融合框架在不同子空间中均匀分布能量,我们观察到转换后的权重矩阵中只有少数离群值,因此裁剪它们可以提高性能。我们发现,将权重简单裁剪为2σ(假设为正态分布),其中σ是Dl的标准差,在实践中效果良好。我们观察到这种改变也有助于方法(Chee et al., 2023)(并且这种修改后的算法也包含在我们的基准中)。算法1展示了FrameQuant的步骤序列。

3.1. 融合框架的鲁棒性

我们现在陈述一些适用于框架和融合框架的技术结果。

(a) 与冗余相关的保证。在量化过程中,融合框架的系数会被破坏。这可以建模为向这些系数添加的加性噪声。假设冗余因子r > 1。即使在经典分析中,(Rozell & Johnson, 2005; Goyal et al., 1998)的结果表明,当使用紧框架从有噪系数中重建信号时,对于无记忆量化,我们得到O(1/r)的MSE减少。通过在反量化步骤中求解线性规划,还可以实现O(1/r²)的一致重建率(Goyal et al., 1998)。尽管在实践中可能不被优先采用,但我们知道如果采用,这将达到(1/r²)的下界,参见(Goyal et al., 1998)第2章。

(b) 框架表示的另一个好处是可以使用以封闭形式可用的滤波器进行“去噪”重建。例如,使用紧框架时,已知维纳滤波器可证明地最小化MSE,参见(Casazza & Kutyniok, 2012)第13章,(Kutyniok et al., 2009)。在我们的实验中,我们发现即使是维纳滤波器的对角线近似也有帮助。但我们的实验结果是在未利用此提升的情况下报告的。

3.2. 推理过程

在推理过程中,量化模型被加载到内存中。在每一层,首先使用分析算子P^T_{prev}将该层的输入(Aprev)转换为其融合框架表示。然后,FF表示通过该层的量化权重(Dl)转换为输出的FF表示。最后,使用合成算子Pl计算层输出。图3展示了这一反量化过程以及网络中单层每个操作的位宽。

Experiments

我们进行了广泛的实验,比较了FrameQuant与多个视觉模型和语言模型的量化基线。目标是评估:(a) 不同方法在基准任务上的性能指标;(b) 在小程度冗余下,低位量化如何接近全精度性能。我们使用图像分类任务(Deng et al., 2009)用于视觉模型,使用困惑度用于语言模型。

我们首先概述实验设置。我们展示了FrameQuant在15+视觉Transformer架构+配置上的图像分类评估结果。接下来,我们在图像分类任务上进行剖析研究,以更好地理解FrameQuant的不同组件的行为。然后,我们展示语言模型如OPT(Zhang et al., 2022b)和Llama2(Touvron et al., 2023)的结果,通过比较下游任务中的困惑度和准确率。附录中包含许多额外实验。

4.1. 实验设置

我们在ImageNet-1K分类任务上评估我们的方法。对于从Huggingface hub获取的预训练模型的权重量化,我们使用训练数据集中随机选择的128张图像作为校准数据集D。我们从浅层到深层顺序量化层的参数矩阵,类似于(Frantar et al., 2023)。每次量化完一层后,我们再次将输入传递到该层,并将带量化权重的输出发送到下一层。最后,我们在ImageNet-1K验证数据集上评估量化模型,并报告top-1准确率。我们所有的“基础”实验对应于2位。我们注意到基线之一PTQ4ViT(Yuan et al., 2022)同时进行激活和权重量化,但未在极端2位量化设置中测试。为了确保与该方法的公平比较,我们关闭其方法中的激活量化,并增加一个3位实验。有关激活量化、分割和目标检测任务的其他实验,请参阅附录F、G节。

4.2. ImageNet分类任务结果

我们使用Huggingface hub上的模型架构(包括ViT(Dosovitskiy et al., 2021)、DeiT(Touvron et al., 2021)、DeiT III(Touvron et al., 2022)和Swin(Liu et al., 2021a))和模型尺寸(包括小、中、大、超大)。这些实验的主要结果如表1-2所示。图4a展示了不同类别模型在ImageNet-1K数据集上的性能。我们观察到,权重在2σ处裁剪也有助于QuIP(Chee et al., 2023),因此我们将其作为额外基线。即使在冗余因子为r=1的情况下,FrameQuant也比大多数基线具有更好准确率。此外,冗余因子为r=1.1时,FrameQuant优于所有基线,且非常接近全精度模型,这凸显了在存在量化噪声时融合框架的鲁棒性。我们观察到,增加Frame表示的冗余继续提高量化模型的性能,特别是当模型较小时。更多细节参见§A。我们注意到PTQ4ViT(Yuan et al., 2022)的代码库与Swin-L模型不兼容,因此我们无法报告该模型的性能。

4.3. 剖析研究

在本节中,我们解剖FrameQuant以理解我们算法的不同组件的贡献。表3显示了此实验的结果。我们使用GPTQ(Frantar et al., 2023)作为起点。仅使用GPTQ(Frantar et al., 2023),量化模型的性能下降显著:对于DeiT III(Touvron et al., 2022)基础模型,下降高达82%。仅仅添加FF表示(TFF列),我们看到所有模型的性能都有所提升,对于DeiT III-H,最大提升达56%。我们注意到,一些较小的模型尚未看到FF表示的全部好处。这是因为这些模型在权重中存在离群值(远大于其它权重),导致更高的量化误差。FF表示带来了足够好的分布,使我们可以拟合正态分布。因此,在±2σ水平裁剪这些权重后,我们看到性能因离群值移除而得到提升。裁剪在权重分布良好时最有效。直接应用于权重的裁剪在权重配置退化/分布不良时效果有限并会产生误差,更多细节见D.1。最后,我们添加冗余因子r=1.1,FF表示利用了这种冗余:我们看到整体上的最佳性能。

权重分布中高斯假设的影响。图4b展示了ViT系列模型的权重分布代表性例子以及为什么2σ裁剪似乎适合捕获大部分质量。DeiT和Swin Transformer模型的权重分布见图§13。

4.4. 语言模型结果

在此实验中,我们评估了OPT(Zhang et al., 2022b)和Llama2(Touvron et al., 2023)系列的量化模型在WikiText2(Merity et al., 2017)和C4(Raffel et al., 2020)两个数据集上的困惑度。图5显示了随着模型大小增加,OPT系列模型的困惑度。我们发现,冗余度为1×的FrameQuant比所有其他量化方法表现更好。冗余因子为1.1×时,FrameQuant减少了与全精度模型的性能差距,这与理论预测一致。对于Llama2系列模型,我们也看到了类似的结果。我们还对经过不同方法量化的Llama2-7B模型进行了多样化下游任务的微调,FrameQuant在r=1.1×时相比于普通GPTQ最高提升了41%的准确率。表5总结了所有模型在WikiText2(Merity et al., 2017)数据集上的困惑度。下游任务/附加数据集结果见附录§H。

4.5. 与混合精度量化的比较

冗余因子为1.1相当于每个权重参数的平均位宽为2.2。混合精度量化方法可以通过对模型中不同权重使用不同的位宽来实现小数位宽。我们将FrameQuant与最近的混合精度方法ZeroQuant(Yao et al., 2022)进行比较。我们在不同小数位宽下测试FrameQuant(位宽为2,冗余因子为1.1)相对于ZeroQuant。正如表4所示,FrameQuant即使在低位宽下也表现优于ZeroQuant。

OtherPracticalConsideration

5.1. 存储需求

权重量化直接改善了模型的存储需求。表6显示了压缩后的Llama2模型的大小。FrameQuant平均减少了模型约85%的大小。

5.2. 推理速度

由于FrameQuant涉及额外的操作以从低位融合框架表示计算并转换权重到常规权重空间,原始推理速度预计低于GPTQ。另一方面,在2位情况下,FrameQuant的准确率/困惑度比GPTQ更好。因此,存在权衡。表7显示了在Nvidia A100 GPU上量化模型的推理速度。在这里,我们使用了融合框架的块对角结构和基于Hadamard变换的快速随机投影(根据Dao, 2023; Zeng et al., 2023)用于旋转矩阵。通过使用高效内核将权重加载到GPU并执行转换,可以提高推理速度。

Discussion

我们讨论了一些尚未明确讨论的其他方面。

  1. 可以降低到一位吗? 我们尝试在每个权重1位且冗余为1.8×的条件下进行实验,但未成功。对于一位,当冗余超过r=2时,使用两位更有意义。

  2. FrameQuant能像QuIP一样运行吗? 对于每一层,如果选择冗余因子r=1的融合框架和随机正交基Pl, Pprev,去除2σ权重裁剪后,设置类似于QuIP(Chee et al., 2023)。这也是为何当QuIP加入我们的2σ裁剪时,结果与1×冗余的FrameQuant相似。

  3. 需要额外存储吗? 由于存在生成融合框架的高效确定性算法,推理时仅需知道(k, ρ, d)。对于旋转,只需知道种子。而且,由于Transformer模型中许多层形状相同,这些参数可以在层间共享。存储优势的更多细节见§K.1。

  4. 为何灵活性有用? 如果两位级别的性能不足以满足应用需求,目前只能提高到三位(增加50%)。然而,FrameQuant允许通过选择冗余因子r来实现灵活性。

  5. 更高的位宽? 本研究主要评估视觉和语言模型中权重的2位量化,以及应用融合框架的灵活位宽的优势。更高的位宽如3或4位量化已经被研究(Frantar et al., 2023; Chee et al., 2023)并在实践中使用(Gerganov, 2023)。

  6. 推理期间的计算复杂度: 与其他方法相比,FF相关的核心计算相似,存在与子空间数量k相关的小开销。推理时,需要额外计算O(d^2(kr + logd))以将权重从融合框架表示空间转换为常规权重空间。在低位设置中,任何量化方案都会产生O(d^2)的成本,以通过缩放和移位来转换量化权重。更多细节见§K.2。

  7. 量化感知训练: FrameQuant可以修改以适用于量化感知训练(QAT),尽管我们此处未包含此类实验。一个选项是在微调期间使用它,模拟量化损失,然后可用于正则化损失,使其对量化更具鲁棒性。融合框架可以通过估计“超出子空间的误差”有意义地提供此偏差,以最小化量化引起的退化。

  8. FrameQuant的缩放规律? 量化期间,参数数量不变。相反,由于可表示的状态减少,每个参数的自由度降低。我们可以使用(参数数量×位宽)作为每个(量化)模型自由度的代理。考虑量化位宽,测试损失(纵轴)作为(参数数量×位宽)的函数的折线图可能具有与(Kaplan et al., 2020)不同的斜率,见图1。

  9. 裁剪的理由: 设u为p维向量,P为p′维随机子空间的投影。使用P投影u得到v,v=Pu。假设u的各项均值和方差有限且不相关。则v的每一项实际上是多个缩放随机变量的总和。这些项的分布(合适标准化的缩放变量之和)随着维度p的增长趋近于正态分布。弱依赖或混合也可以处理。

Conclusions

本文介绍了FrameQuant,一种基于框架的灵活低位量化算法。量化的动机在于需要在异构设备上高效服务大型语言模型。灵活性意味着我们可以选择低至两位;根据下游任务的需求,用户也可以灵活地选择平均位宽为2.x位的模型。对于大多数常用的视觉Transformer模型和大型语言模型,我们发现只需微小的性能损失,便可实现有效量化。此外,略微增加冗余可以提供灵活性,并有助于缩小与全精度模型的差距。我们观察到,与文献一致,低位宽量化对大模型(在性能影响方面)比对小模型更有利。虽然某些好处(如模型加载时间、加载更大模型)是立即的,但与硬件的紧密集成可以解锁更多效率提升。代码已公开。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值