KVTuner: Sensitivity-Aware Layer-Wise Mixed-Precision KV Cache Quantization for Efficient and Nearly Lossless LLM Inference
KVTuner: Sensitivity-Aware Layer-Wise Mixed-Precision KV Cache Quantization for Efficient and Nearly Lossless LLM Inference
发表时间: 2025-07 · arXiv:2502.04420 (ICML 2025)
原文: https://arxiv.org/abs/2502.04420
作者: Xing Li, Zeyu Xing, Yiming Li, Linping Qu, Hui-Ling Zhen, Yiwu Yao, Wulong Liu, Sinno Jialin Pan, Mingxuan Yuan
速读
一句话结论
该研究提出了一个名为 KVTuner 的离线调优框架,通过为大语言模型的不同层自动搜索并分配最优的混合精度 KV Cache 量化配置,在几乎不损失模型推理精度的前提下实现了等效 3.25-bit 的极低比特量化,并将推理吞吐量提升了 21.25%。
要解决什么问题
在长上下文和大批量请求的推理场景中,KV Cache 的显存占用会随序列长度线性增长,成为限制系统吞吐量的核心卡点。采用低比特量化(如 4-bit 或 2-bit)是压缩 KV Cache 的直接手段,但会引发严重的误差累积问题。这种误差在层级和生成步数两个维度上叠加,会导致注意力分布发生偏移,进而引发关键 Token 翻转,使得模型在数学推理等复杂任务中彻底失效。现有的解决方案均存在明显缺陷:一类是层内静态混合精度方法(如 KIVI、IntactKV),它们假设前缀和最近的 Token 最重要并予以高精度保留,但这种假设在面对具有非稀疏检索注意力头的敏感模型(如 Qwen2.5-7B-Instruct)时会失效;另一类是细粒度动态量化方法(如 QAQ、MiKV),它们在推理时动态识别关键 Token 并调整精度,但这引入了极高的在线计算和控制流开销,且难以与 FlashAttention 或 vLLM 等基于静态图的底层加速算子兼容。因此,如何以一种硬件友好、零在线开销的方式实现极低比特的无损量化,是当前亟待解决的工程阻碍。
怎么做的
该方法的核心思路是放弃高开销的在线动态决策,转而利用大语言模型的固有属性,在离线阶段为每一层搜索最优的粗粒度 KV Cache 量化精度组合(例如 Key 使用 8-bit,Value 使用 4-bit 的 K8V4 配置),并在在线推理时直接加载这些静态配置。这种做法之所以可行,是因为研究发现模型对量化的敏感度是固定的模型属性,不随输入提示词的变化而改变;同时,由于 Key 向量的量化误差会经过 Softmax 函数呈指数级放大,Key Cache 的精度对最终注意力的影响远大于 Value Cache。因此,为敏感层和 Key Cache 分配更高精度,可以完美绕开注意力分布偏移的卡点。
整个离线搜索被建模为一个多目标优化问题,旨在最大化显存压缩率的同时将精度损失控制在阈值内:
其中 $\mathbf{P}$ 是所有层的量化精度组合,$f_m$ 是平均等效量化比特数,$f_a$ 是最终的模型精度损失。
为了解决多层组合导致搜索空间爆炸(例如 32 层模型有 $9^{32}$ 种组合)的问题,KVTuner 设计了两个关键的搜索空间裁剪部件。首先是层内精度对裁剪,通过评估等效比特数和相对注意力输出误差,剔除那些非帕累托最优的精度组合,主要保留 K8V4、K4V2 等 Key 精度高于 Value 精度的配置。其次是层间聚类,利用 DBSCAN 算法将具有相同候选精度集且对量化敏感度相似的层聚类成若干个组。经过这两步,搜索空间被大幅压缩至 $5^G$ 或 $6^G$($G$ 为聚类组数,通常在 4 到 8 之间),使得离线多目标搜索能够在几分钟内收敛。在校准阶段,方法特意采用长上下文和数学推理数据集,并在 Prefilling 阶段使用反量化后的 KV Cache 参与计算,以此来放大误差累积效应,确保搜索出的配置在极端场景下依然稳健。
效果如何
实验评估覆盖了 Llama-3.1-8B-Instruct、Qwen2.5-7B-Instruct 等多种规模的模型,测试任务包含 GSM8K 数学推理、GPQA 科学问答以及 LongBench 长上下文基准。对比基线包括全局统一精度的量化方法(如 KV8、KV4),以及代表当前主流路线的 KIVI(保留前缀和近期 Token 的混合精度量化)和 per-token-asym(动态非对称逐 Token 量化)。量化结果表明,在 GSM8K 任务中,KVTuner 结合 KIVI 底层,能将 Llama-3.1-8B-Instruct 无损压缩至等效 3.25-bit;对于极度敏感、在统一 4-bit 量化下准确率直接掉到 0% 的 Qwen2.5-7B-Instruct 模型,KVTuner 依然能实现等效 4.0-bit 的无损压缩。在吞吐量测试中,基于 Llama-3.1-8B-Instruct 在 128 到 1024 不等的上下文长度下,KVTuner 相比 KIVI-KV8 基线将最大推理吞吐量提升了 16.79% 到 21.25%。实验还揭示了一个反直觉的结论:在显存受限时,使用 KVTuner 压低 KV Cache 精度来换取更长的思维链生成长度,其最终的数学推理准确率反而高于使用高精度 KV Cache 但限制生成长度的设置。该方法的局限在于离线搜索强依赖于校准集的质量,且目前搜索出的配置是针对特定模型结构固定的,若模型权重发生微调,可能需要重新执行离线校准过程。
A1 主要贡献
大型语言模型(LLMs)在长上下文和高并发场景下的推理效率至关重要,而KV缓存的内存占用随批处理大小和序列长度线性增长,成为了系统的新瓶颈。KV缓存量化是减少内存占用、提高吞吐量的有效方法,但当前的量化方法存在三个未解决的核心问题:
1. 忽略了不同Transformer层对KV缓存量化的敏感性差异。
2. 细粒度在线动态决策(如动态识别关键Token)引入了高昂的计算开销。
3. 面对不同的LLMs和硬件约束时,缺乏灵活的适配能力。
为了解决上述问题,本文深入研究了LLM对KV缓存量化的层级敏感性,并提出了以下创新点:
* 理论分析与机制揭示:从理论和经验双重角度分析了层级Transformer注意力模式与KV缓存量化误差之间的内在相关性,揭示了为何Key缓存通常比Value缓存对减少量化误差更为重要。
* KVTuner框架提出:提出了一种简单而有效的框架KVTuner,利用多目标优化(MOO)自动搜索硬件友好的、粗粒度的层级KV量化混合精度对(如K8V4、K4V2)。该框架在离线阶段完成搜索,在线推理时直接加载配置,实现了即插即用的零额外开销加速。
* 搜索空间优化:为降低离线校准的计算成本,引入了层内KV精度对剪枝(Intra-layer pruning)和层间聚类(Inter-layer clustering)技术,大幅缩小了搜索空间。
* 卓越的实验性能:在数学推理等对精度敏感的任务上,KVTuner在Llama-3.1-8B-Instruct上实现了几乎无损的等效3.25-bit混合精度KV缓存量化,在极其敏感的Qwen2.5-7B-Instruct上实现了4.0-bit量化。与统一的KIVI-KV8量化相比,在各种上下文长度下,最大推理吞吐量提升了$21.25\%$。
A3 背景知识与关键观察
Transformer与KV缓存机制
在LLMs中,多个中间Transformer层被堆叠执行以生成最终响应。对于第$l$个Transformer层,给定第$i$步的$D$维输入隐藏状态$\pmb { x } _ { i } ^ { l } \in \mathbb { R } ^ { D }$,通过权重矩阵$\mathbfit { W _ { q } ^ { l } }, \mathbfit { W _ { k } ^ { l } }$, 和 $\hat { \mathbf { W } } _ { v } ^ { l }$分别生成Query、Key和Value向量:$\pmb { q } _ { i } ^ { l } = \pmb { W } _ { q } ^ { l } \pmb { x } _ { i } ^ { l }$,$\pmb { k } _ { i } ^ { l } = \pmb { W } _ { k } ^ { l } \pmb { x } _ { i } ^ { l }$,以及$\pmb { v } _ { i } ^ { l } = \mathbf { W } _ { v } ^ { l } \pmb { x } _ { i } ^ { l }$。随后,使用当前Query嵌入和直到第$i$步的所有Key嵌入计算自注意力分数$\pmb { a } _ { i } ^ { l }$。最后,第$l$个自注意力层使用注意力分数对Value嵌入$\pmb { V } ^ { l }$进行软加权,生成输出状态$\pmb { o } _ { i } ^ { l }$:
其中,$\pmb { K } ^ { l } = \mathrm { c o n c a t } ( \pmb { K } _ { : i - 1 } ^ { l } , \pmb { k } _ { i } ^ { l } )$和$\pmb { V } ^ { l } = \mathrm { c o n c a t } ( \pmb { V } _ { : i - 1 } ^ { l } , \pmb { v } _ { i } ^ { l } )$是在预填充和解码阶段生成的嵌入,它们需要在每一层独立存储为KV缓存,以消除重复计算的开销。
KV缓存量化基础
向最近的$B$-bit进行量化和反量化(沿通道或Token维度对输入$\pmb { X } \in \mathbb { R } ^ { S \times D }$)定义为:
其中偏移量$z = \operatorname* { m i n } ( X )$,缩放因子$s = \frac{\max(X)-\min(X)}{2^B-1}$。本文通过以下公式衡量相对KV缓存和注意力误差:$e _ { k } ^ { l } = \mathrm { m e a n } \left( \frac { | \pmb{K} ^ { l } - \hat { \pmb{K} } ^ { l } | } { | \pmb{K} ^ { l } | } \right)$,$e _ { v } ^ { l } = \mathrm { m e a n } \left( \frac { | \pmb{V} ^ { l } - \hat { \pmb{V} } ^ { l } | } { | \pmb{V} ^ { l } | } \right)$,$e _ { a } ^ { l } = \mathrm { m e a n } ( | \pmb{a} ^ { l } - \hat { \pmb{a} } ^ { l } | )$,以及$e _ { o } ^ { l } = \operatorname* { m e a n } \left( \frac { | \pmb{o} ^ { l } - \hat { \pmb{o} } ^ { l } | } { | \pmb{o} ^ { l } | } \right)$。
量化引发的误差累积效应
由于LLM在模型层和Token序列维度上均具有顺序性质,带有KV缓存量化误差的前一层输出会成为当前层的输入,而带有误差的前一步模型输出Token会成为后续步骤的输入。因此,KV缓存量化会导致二维误差累积,定义为:
单个Token和层的量化误差可能微不足道,但整个模型和长上下文中的误差累积是显著的,可能导致Token翻转和生成错误。如表1所示,极低精度量化(KIVI-2)导致了算术运算错误,最终输出了完全错误的答案,这证明了误差累积会破坏整个数学和逻辑推理过程。
对量化模式和精度的敏感性分析
KV缓存量化误差与量化模式和精度高度相关。由于Key缓存存在强烈的通道级离群值【KIVI: A tuning-free asymmetric 2bit quantization for KV cache + 2024 + ICML + https://openreview.net/forum?id=L057s2Rq8O】,在相同精度下,按通道非对称(per-channel-asym)模式在相对Key误 差$e _ { k }$上始终优于按Token非对称(per-token-asym)模式。因此,量化模式的改变会导致Key和Value对注意力输出误差重要性的转移,KV缓存精度对需要适应特定的量化模式。
为何Key Cache通常比Value Cache更重要?
模型和Transformer层对KV缓存量化模式和精度对的敏感性差异,主要是由图2中所示的注意力分布偏移引起的。
* 中间注意力误差:如图3所示,将Key缓存量化精度从8-bit降至4-bit以及从4-bit降至2-bit,分别导致平均注意力分数误差增加$13.9\times$和$4.6\times$。这会引起特定敏感头的Token级注意力分布偏移。表3进一步证实,在总内存使用量相同的情况下,高精度Key量化(如K4V2)的相对注意力输出误差显著低于高精度Value量化(如K2V4)。
* 最终生成误差:表2中基于lm-evaluation-harness评估的词困惑度(Word-perplexity)显示,KV8和K8V4表现出相似的困惑度水平,KV4和K4V2也呈现类似模式。相反,K4V8和K2V4量化导致困惑度分数大幅上升,生成质量显著下降。这表明降低Key缓存的精度比降低Value缓存的精度会引发更严重的质量下降,Key缓存在量化过程中扮演着比Value缓存更关键的角色。
KV量化误差与注意力模式的相关性
如图4所示,具有高KV缓存量化误差的注意力头通常表现出非稀疏的注意力模式。注意力头的稀疏模式与对KV缓存量化的头部及层级敏感性相关。高度稀疏的流式头(Streaming heads)通常比检索头(Retrieval heads)对KV缓存量化更具鲁棒性(Lemma 1证明见附录)。为了减轻注意力偏移并提高准确率,最优策略是在高度敏感的层中提高Key量化精度(具体而言是减小$q \Delta K$)。
对KV缓存量化的层级敏感性
根据图3和图13中Llama-3.1-8B-Instruct在不同提示和量化精度对下的误差表现,对KV缓存量化敏感的Transformer层在不同输入提示下保持一致。观察到的层级误差分布偏移主要源于Key缓存量化精度的变化。Qwen2.5-7B-Instruct等模型也表现出类似行为。因此可以得出结论:对KV缓存量化的层级敏感性是LLM的固有属性。由于误差在层和序列维度上累积,敏感层会进一步放大误差,可以通过离线搜索确定最优的粗粒度KV量化配置,特别是针对敏感层,以在不引入在线开销的情况下平衡内存减少和生成效率。
A2 方法细节
KVTuner框架概述
KVTuner是一个用于硬件友好的混合精度KV缓存量化的自适应调优框架。它通过考虑其固有的敏感性属性来优化层级KV精度对,旨在实现推理效率和模型准确率之间更好的权衡。KVTuner不进行在线的细粒度Token或Page级别的精度决策,而是利用多目标优化算法进行离线搜索,以确定每个Transformer层中粗粒度KV缓存的帕累托最优量化精度设置。这里,整个低比特KV缓存使用特定的精度对(如K8V4或K4V2)进行量化,确保在动态量化和在线推理期间不引入任何额外开销。
问题建模与公式化
离线层级KV精度对调优问题被建模为一个离散组合优化任务,同时考虑硬件限制和精度损失约束。目标是在满足最大内存$M$和精度损失$\Delta A$约束的前提下,最小化所有Transformer层的量化KV缓存内存使用量,同时最小化最终模型精度损失。具体公式如下:
其中,搜索空间$\mathbf { P } \in S ^ { L }$表示$L$个层中的KV缓存精度对。层级搜索空间$S$定义为第$l$层的KV缓存精度对$( P _ { k } ^ { l } , P _ { v } ^ { l } )$。$f_m(\mathbf{P})$计算所有KV缓存的平均等效量化比特数,$f _ { a } ( \mathbf { P } ) = A _ { L L M } ( K V _ { h a l f } ) - A _ { L L M } ( K V _ { \mathbf { P } } )$衡量与使用16-bit半精度KV缓存相比的最终LLM精度损失。
两阶段搜索空间剪枝算法
如果候选的层级KV精度对为$\{ 2 , 4 , 8 \} \times \{ 2 , 4 , 8 \}$,则$L$个Transformer层的可能组合数为$9 ^ { L }$(例如32层的模型有约$3.4 \times 10^{30}$种组合),这在计算上是不可解的。因此,KVTuner设计了以下两级搜索空间剪枝算法,将$\mathbf { P }$从$S ^ { L }$缩减为$S _ { p } ^ { G }$(其中$S _ { p }$为组内剪枝后的候选集,$G$为聚类后的层组数):
1. 层内KV缓存量化精度对剪枝(Intra-Layer Pruning):
由于KV缓存量化误差在模型层和生成Token维度上累积,必须通过剪枝量化对来控制层级误差。对于每一层的所有候选精度对,算法综合考虑等效量化精度和相对注意力输出误差,将不在帕累托前沿(Pareto frontier)上的精度对剪除。例如,在多数层中,保留{KV8, K8V4, KV4, K4V2, KV2},因为它们是帕累托高效的。
2. 层间聚类(Inter-Layer Clustering):
层内剪枝后搜索空间(如$5^{32}$)仍然过于庞大,因此进一步基于相对注意力输出误差和剪枝后的候选集进行层间聚类。
* 首先,根据各层剪枝后保留的特定候选集差异对层进行初始划分,这些候选集反映了单层对特定量化配置的不同响应。
* 接着,在共享相同候选集的层中,使用量化敏感性作为聚类指标将它们聚类。敏感性通过剪枝精度对产生的相对注意力输出误差来量化。这一步将搜索空间极大地压缩到了如$5^6 = 15625$的规模。
多目标优化与校准数据集设计
在完成高效的预处理剪枝后,使用最终的LLM推理准确率作为反馈,采用多目标优化算法(【Optuna: A next-generation hyperparameter optimization framework + 2019 + KDD + https://doi.org/10.1145/3292500.3330701】和 【MOEA/D: A multiobjective evolutionary algorithm based on decomposition + 2007 + IEEE Transactions on evolutionary computation】)搜索帕累托最优的层级KV精度对$\mathbf { P }$,以捕获非线性误差累积的复杂依赖关系。
为了有效评估不同的量化设置,KVTuner设计了一种放大误差累积的校准方法:
- 在Prefilling阶段即使用反量化后的KV缓存进行自注意力计算,使误差跨模型层累积。
- 利用长上下文生成和具有挑战性的校准数据集(如数学推理任务)。在这些任务中,解码步骤中传播的微小误差可能导致中间生成Token翻转,从而在最终答案中产生重大错误。
A4 实验环境
-
数据集:
- 一般AIGC任务:CEVAL、MMLU、TriviaQA、RACE、TruthfulQA。
- 数学、科学与逻辑任务:GSM8K(0-shot, 4-shot, 8-shot, 16-shot)、多轮对话形式的GSM8K、GPQA。
- 长上下文任务:LongBench(包含20个数据集)。
-
模型架构参数:选取了Llama-3.1-8B-Instruct、Mistral-7B-Instruct-v0.3以及Qwen2.5系列(3B, 7B, 14B, 32B, Math-7B)及其AWQ量化版本。
- 硬件与软件配置:
- 代码实现基于
huggingface transformers(v4.46.2)。 - 集成了KIVI和per-token-asym量化方法,并无缝接入
lm-evaluation-harness进行评估。 - 离线搜索使用
Optuna框架和MOEA/D算法。 - 吞吐量测试使用KIVI官方提供的CUDA GPU Kernel。
- 代码实现基于
A5 实验结果
帕累托最优KV精度对搜索
- 实验内容:在GSM8K 4-shot数据集上评估KIVI和per-token-asym模式下的KVTuner搜索结果。
- 实验结果与分析:
- 如图5a所示,结合KIVI模式,KVTuner能在等效3.06-bit下维持Llama-3.1-8B-Instruct的性能,并找到了内存使用和准确率均优于统一KV8的配置(如4.91-bit),证明了其灵活性。
- 如图5b所示,在敏感的Qwen2.5-7B-Instruct模型上使用per-token-asym模式,统一的KV4量化准确率降至约$0\%$,而KVTuner在等效3.92-bit下成功维持了接近KV8的准确率。
数学与科学推理准确率
- 实验内容:在多轮CoT形式的GSM8K和GPQA Extended数据集上评估推理能力。
- 实验结果与分析:表5和表6显示,KIVI-2和KIVI-4在Qwen2.5模型中导致了灾难性的精度损失。而KVTuner结合KIVI,分别在Llama-3.1-8B、Qwen2.5-3B和7B模型上,以等效3.25-bit、3.17-bit和5.96-bit实现了几乎无损的量化。一个有趣的发现是:应用KVTuner时,使用较长CoT结合较低精度KV缓存的推理准确率,优于短CoT结合原始BF16精度KV缓存。KVTuner显著缩小了简单per-token-asym模式与高精度KIVI模式之间的性能差距。
长上下文生成准确率
* 实验内容:在20个LongBench数据集上对比敏感模型Qwen2.5-7B-Instruct的表现。
* 实验结果与分析:如表7所示,KVTuner将几乎无损的长上下文KV缓存量化推至3.92-bit,超越了统一精度基线。
吞吐量测试
* 实验内容:测试Llama-3.1-8B-Instruct在不同批处理大小(BS)和输入长度下的最大生成吞吐量。
* 实验结果与分析:如表8所示,由于KVTuner完全离线调优不引入在线开销,与KIVI-KV8基线相比,KVTuner-C3.25配置在不同BS和输入长度下,将解码吞吐量提升了$16.79\% \sim 21.25\%$。
详细配置分析
* 实验内容:分析Llama-3.1-8B-Instruct帕累托前沿中的具体配置。
* 实验结果与分析:
1. 绝大多数层组采用Key精度高于Value精度的配置,印证了Key更关键的结论。
2. KVTuner倾向于为量化误差较大的层组分配更高的精度。如果降低关键层组(如Llama的$[ 8 \sim 1 1 , 1 4 \sim 1 7 , 2 0 , 3 0 ]$)的Key精度,性能会发生断崖式下跌。
消融实验
- 实验内容:移除两阶段搜索空间剪枝算法,直接进行MOO搜索。
- 实验结果与分析:图6和图10显示,如果不应用层内和层间剪枝作为预处理,搜索结果显著恶化,证明了剪枝对MOO收敛和维持量化性能的关键作用。
A6 结论
本文深入研究了Transformer对KV缓存量化方法的层级敏感性,证实这是LLMs的固有属性。低精度KV缓存量化会导致非稀疏和非集中注意力模式的注意力头发生显著的Token级分布偏移。基于这些发现,本文提出了KVTuner,通过感知敏感性的优化技术实现高效自适应的层级混合精度KV缓存量化。KVTuner优先保证Key缓存精度,在Llama-3.1-8B-Instruct上实现了3.25-bit几乎无损压缩,在敏感的Qwen2.5-7B-Instruct上实现了4-bit压缩。实验还表明,采用长CoT与低精度混合KV量化,在内存效率和数学推理准确率上均优于短CoT与高精度KV量化。KVTuner为LLM推理加速提供了无需在线开销的解决方案,有助于降低部署成本和减少碳足迹,其注意力头相关属性的发现也可应用于模型权重/激活量化等更广泛的领域。
A7 附录补充细节
Lemma 1 的数学证明
引理1指出:只有具有稀疏和集中模式的注意力头对低精度KV缓存量化表现出一致的鲁棒性。
证明过程:
给定Query Token $q \in \mathbb { R } ^ { 1 \times D }$ 和Key缓存 $\pmb { K } \in \mathbb { R } ^ { D \times S }$,无误差的注意力分数为 $a _ { i } = \frac { \mathrm { e x p } ( \pmb{q} \pmb{K} _ { i } ) } { \sum _ { j = 1 } ^ { S } \mathrm { e x p } ( \pmb{q} \pmb{K} _ { j } ) }$。Key的非对称均匀量化误差 $\Delta \pmb{K} \in \mathbb { R } ^ { S \times D } \sim { \mathcal { N } } ( 0 , \sigma ^ { 2 } )$,低精度会导致指数级放大的量化误差。带有误差的注意力分数为:
要使 $\hat { a } _ { i } = a _ { i }$(即量化前后注意力分布完全一致),存在两种情况:
1. $\frac { \exp ( \pmb{q} \Delta \pmb{K} _ { j } ) } { \exp ( \pmb{q} \Delta \pmb{K} _ { i } ) } = 1$,即所有Key误差与Query的内积相同,这在实际中通常不会发生。
2. 存在一个主导的Key Token $i$。如果 $j \neq i$,$\exp ( \pmb{q} \pmb{K} _ { i } ) \gg \exp ( \pmb{q} \pmb{K} _ { j } )$ 且 $\frac { \mathrm { e x p } ( \pmb{q} \pmb{K} _ { j } ) } { \mathrm { e x p } ( \pmb{q} \pmb{K} _ { i } ) } \approx 0$,则:
KV缓存量化模式和精度的深入影响
表9(离线模拟分析)显示,INT8量化下无累积的相对输出误差$e _ { o }$低于$3\%$,不足以改变输出Token。但当实施极低精度2-bit量化(KV2)时,相对Key误差$e _ { k }$飙升至$40.1\%$(通道级)或$77.5\%$(Token级),导致显著的注意力分布偏移。图7展示了不同量化模式下各层误差分布的显著变化(例如,per-token-asym下最敏感层为layer-29,而per-channel-asym下变为layer-11和layer-13),这证明了静态保留首尾几层的方法无法很好地泛化,必须依赖自适应调优。
剪枝与聚类结果的微观分析
* 层内剪枝:表4显示,绝大多数层选择了Key优先的精度对集合{KV8, K8V4, KV4, K4V2, KV2}。但在Qwen2.5系列的重要层中,K8V2优于KV4,说明统一4-bit Key量化会引发精度退化。
* 层间聚类:表10显示,DBSCAN聚类(epsilon $= 0 . 0 5$)成功将搜索空间的指数分量从层数$L$(如32)缩减到组数$G$(如6)。高敏感层(如Llama的0,1,2,3,4,23...)和不敏感层(如8,9,10...)被正确地划分到不同的组中。
* 最终搜索结果:表11详细列出了各模型最终选择的层级KV精度对。层级分布的显著多样性表明,不存在基于层深度的简单启发式规则,必须依赖基于准确率的黑盒搜索。
模型与层级量化敏感性与注意力模式的相关性
图11和图12可视化了注意力头的块级注意力分数。
* Llama-3.1-8B-Instruct(图11):第12和13层包含动态且非稀疏的“检索头”(Retrieval heads),因此量化误差高;而第0、2、23和31层具有静态的注意力池(Attention sink)和近期窗口模式(Streaming heads),误差较低。
* Qwen2.5-7B-Instruct(图12):包含大量动态检索头与其他静态模式混合的复杂模式头,非稀疏且非集中的模式导致其对KV压缩(甚至权重激活量化)极度敏感。
这解释了为什么需要对敏感模型应用混合精度量化,并在离线阶段学习这种固有的模型属性。
层级注意力分数与相对输出误差的可视化补充
附录中的图13至图19广泛覆盖了不同模型、数据集和量化模式。核心结论是:
1. 层级对KV量化的敏感性与输入提示和领域无关。
2. 降低Key缓存精度(至4-bit或2-bit)会导致关键层的注意力输出误差分布发生剧烈偏移,这是引发模型困惑度上升和最终生成能力丧失的直接原因。
3. 较大的模型(如Qwen2.5-14B/32B)比较小模型表现出更强的量化鲁棒性,而AWQ权重模型量化并不影响模型级对KV缓存量化的敏感性。
💬 评论讨论
欢迎在这里分享您的想法和见解!