发表时间: 2025-07 · arXiv:2410.21465 (ICML 2025)
原文: https://arxiv.org/abs/2410.21465
作者/机构:Hanshi Sun, Li-Wen Chang, Wenlei Bao, Size Zheng, Ningxin Zheng, Xin Liu, Harry Dong, Yuejie Chi, Beidi Chen / ByteDance Seed, Carnegie Mellon University
一句话结论 本文提出了面向长上下文大语言模型的高吞吐推理系统 ShadowKV,通过在 GPU 保留低秩键缓存并将值缓存卸载到 CPU,结合精准的稀疏注意力机制,在不损失精度的前提下将 A100 上的批处理大小提升最高 6 倍,吞吐量提升最高 3.04 倍。
要解决什么问题 长上下文大语言模型在推理时,键值缓存会随着序列长度线性增长,带来两个致命卡点:一是庞大的显存占用限制了批处理大小,导致无法充分利用计算资源,甚至无法容纳百万级别的长上下文;二是每次生成新词都需要读取完整的历史缓存,受限于显存带宽,吞吐量极低。现有的缓存驱逐策略会永久丢弃部分信息,导致多轮对话等复杂任务精度严重下降;而动态稀疏注意力方法虽然保留了所有缓存并减少了计算量,但如果不卸载缓存则无法降低显存占用,如果将整个键值缓存卸载到 CPU,在解码阶段从 CPU 拉取选定的稀疏键值对会受限于 PCIe 带宽,带来极高的延迟开销,导致得不偿失。因此,理想的系统必须同时做到降低显存占用、最小化推理延迟,并在极小的稀疏缓存预算下维持生成精度。
怎么做的 核心思路是将键缓存和值缓存解耦处理,在 GPU 上仅保留高度压缩的键缓存,将值缓存全部卸载到 CPU,并在解码时动态重建极少量的稀疏键值对。这一设计之所以能绕开显存和带宽双重卡点,是因为作者观察到旋转位置编码前的键缓存具有极强的低秩特性,可以在不掉点的情况下压缩 6 倍,且同一序列内部及其延续段落共享低秩子空间;而值缓存和旋转位置编码后的键缓存均不具备这种低秩性。关键设计由三个部件构成:首先是预填充阶段的低秩存储,系统对旋转位置编码前的键缓存进行奇异值分解,仅在 GPU 存储低秩投影矩阵,同时将值缓存卸载到 CPU,大幅降低显存占用。其次是基于地标的精准键值选择,由于旋转位置编码后的键缓存具有空间局部性,相邻词的相似度高,系统将其划分为固定大小的块,计算每块的均值作为压缩地标留在 GPU 上。解码时,利用地标快速计算注意力分数,精准选出得分最高的极少数块。最后是异常值保留与异步重建,极少数难以用均值近似的异常块(约 0.3%)会被完整保留在 GPU 静态缓存中以保证精度;在拉取 CPU 中的值缓存时,系统利用 CUDA 多流技术同步在 GPU 上通过低秩矩阵重建对应的键缓存,将重建开销完全隐藏。此外,系统利用了键值缓存的时间局部性,即相邻解码步查询选中的键值对具有很高的重复率,通过引入缓存机制仅重建未命中的块,进一步减少了 60% 的计算和数据搬运开销。该系统在解码阶段的等效带宽定义为:
$$ \widetilde{B} = \frac{2 S B_{\mathrm{GPU}}}{S / C + 2(K + O)C + (1 - \alpha) K C B_{\mathrm{GPU}} / B_{\mathrm{PCIe}}} $$其中 $S$ 为序列长度,$C$ 为块大小,$K$ 和 $O$ 分别为选中的块和异常块数量,$\alpha$ 为缓存命中率,$B_{\mathrm{GPU}}$ 和 $B_{\mathrm{PCIe}}$ 分别为显存和 PCIe 带宽。
效果如何 实验在单张 A100 GPU 上进行,测试了 Llama-3.1-8B、Llama-3-8B-1M、GLM-4-9B-1M、Yi-9B-200K 等多个模型,上下文长度最高达到 1M,评测基准涵盖 RULER、LongBench 和 Needle In A Haystack。对比基线选择了 Quest、Loki 和 InfiniGen,这三者均代表动态稀疏注意力路线,并分别测试了全量卸载和仅卸载值缓存的变体。量化结果显示,在 1.56% 的极低稀疏预算下,ShadowKV 在各项长上下文任务中均保持了无损精度。在多轮大海捞针测试中,相比于 SnapKV 等驱逐策略在第二轮对话后精度大幅下降,ShadowKV 依然能够精准检索相关信息。在吞吐量方面,ShadowKV 能够支持比全量注意力大 6 倍的批处理大小,在 Llama-3.1-8B 的 122K 上下文设置下,吞吐量提升了 3.04 倍,甚至超越了假设拥有无限显存、批处理大小无限大时的理论吞吐上限。在 1M 极限上下文长度下,ShadowKV 的吞吐量也显著优于 Quest。该方法的代价与局限在于对块大小较为敏感,消融实验表明当块大小超过 8 时模型精度会出现下降;此外,必须妥善管理异常值,若不保留这 0.2% 到 0.3% 的异常块,基于均值的地标近似法会导致性能跌落至基线以下。
随着长上下文大型语言模型(LLMs)的广泛部署,对高吞吐量推理的有效支持需求日益增长。然而,由于键值(KV)缓存随着序列长度的增加而扩展,不断增加的显存占用以及每次生成Token时都需要访问KV缓存,导致在服务长上下文LLMs时吞吐量极低。现有的动态稀疏注意力方法虽然旨在保持生成质量的同时加速推理,但它们面临着三个主要局限性:准确度下降、显存减少不足,或者通过将KV缓存卸载到CPU而引入了显著的解码延迟开销。
为了解决这些问题,本文提出了ShadowKV,这是一个高吞吐量的长上下文LLM推理系统。该系统的核心研究目标是在有限的稀疏KV缓存预算内,减少GPU显存使用、最小化推理延迟并保持准确度。其主要创新点如下:
1. 发现了与层输入、Post-RoPE Keys、Values以及键值权重矩阵相比,Pre-RoPE Keys具有极低的秩。
2. 设计了基于存储的低秩Keys和卸载Values策略。ShadowKV在GPU上存储低秩的Key缓存,并将Value缓存卸载到CPU,以减少更大Batch Size和更长序列下的显存占用。
3. 提出了一种准确的KV选择策略以实现快速解码。通过在运行中动态重建最小的稀疏KV对,并利用CUDA多流技术重叠Key缓存的恢复与Value缓存的获取,从而最小化解码延迟。
通过在RULER、LongBench和Needle In A Haystack等广泛的基准测试以及Llama-3.1-8B、GLM-4-9B-1M等多种模型上评估,ShadowKV在不牺牲准确度的情况下,能够在A100 GPU上支持高达6倍的Batch Size,并将吞吐量提升高达3.04倍,甚至超越了在假设GPU显存无限情况下的无限Batch Size所能达到的性能。
探索KV Cache的低秩特性。为了减少显存占用,近期的研究探索了KV缓存的低秩特性【1,Palu: Compressing kv-cache with low-rank projection+2024+arXiv】【2,Deepseek-v2: A strong, economical, and efficient mixture-of-experts language model+2024+None】【3,Matryoshkakv: Adaptive kv compression via trainable orthogonal projection+2024+arXiv】【4,Eigen attention: Attention in lowrank space for kv cache compression+2024+arXiv】【5,Think: Thinner key cache by query-driven pruning+2024+arXiv】【6,Effectively compress kv heads for llm+2024+arXiv】。然而,这些方法主要集中在与数据无关的分解上,要么需要额外的训练,要么只能达到有限的压缩率。
Pre-RoPE Keys的极低秩现象与子空间相似性。作者通过奇异值分解(SVD)可视化了Llama-3.1-8B的模型权重$W_k$、$W_v$、输入$X$、Pre-/Post-RoPE Key缓存以及Value缓存的相对奇异值分布。作者观察到Pre-RoPE Keys表现出最低的秩,这使得其可以在不降低性能的情况下实现6倍的压缩。受FFN层相关研究【7,Promptprompted adaptive structured pruning for efficient llm generation+2024+First Conference on Language Modeling】的启发,作者进一步识别了序列之间和序列内部低秩Keys的显著动态和静态行为。作者定义了两个秩为$r$的投影矩阵$\pmb{H}_1$和$H_2$的低秩子空间之间的相似度度量公式为$\mathcal{D}(H_1, H_2) = \langle H_1, H_2 \rangle / r$,其中$\langle \cdot , \cdot \rangle$是Frobenius内积。对于Pre-RoPE Keys的截断SVD,假设$K_1, K_2 \in \mathbb{R}^{n \times d}$具有秩为$r$的截断SVD,分别为$\Phi_1 \pmb{\Sigma}_1 \Psi_1^\top$和$\Phi_2 \pmb{\Sigma}_2 \Psi_2^\top$,其中$\Phi_1 \in \mathbb{R}^{n \times r}, \pmb{\Sigma}_1 \in \mathbb{R}^{r \times r}, \pmb{\Psi}_1 \in \mathbb{R}^{d \times r}$。作者使用$\mathcal{D}(\Psi_1 \Psi_1^\top, \Psi_2 \Psi_2^\top)$来测量两个右奇异矩阵的低秩子空间之间的相似度。分析表明,不同序列之间的Pre-RoPE Keys并没有强烈共享相似的低秩子空间,但是同一序列的扩展部分却共享相同的低秩子空间。因此,仅对权重应用低秩近似会导致性能下降。
基于低秩特性的存储策略设计。作者发现Pre-RoPE Keys具有低秩性质,这表明为每个序列存储低秩投影就足够了。因为Value缓存不具备低秩特性,系统通过将低秩的Key缓存保留在GPU上并将Value缓存卸载到CPU上,可以极大地减少显存占用。在解码期间,系统可以在运行中动态重建选定的KV对以进行计算。
降低稀疏注意力延迟的需求。为了进一步减少稀疏注意力中的延迟开销(包括从CPU获取选定的Value缓存以及重建相应的Key缓存),系统需要一种准确的KV选择方法,以在保持准确度的同时最小化稀疏KV缓存预算。
Post-RoPE Keys的空间局部性。作者发现大多数Post-RoPE Key缓存表现出空间局部性,除了少数异常值(Outliers)外,它们与相邻的Token具有很高的余弦相似度。为了量化这一点,作者在128K上下文中进行了推理实验。作者将Post-RoPE Keys划分为包含8个Token的块(Chunks),并可视化了块的均值与其Key缓存之间的最小余弦相似度。结果表明,除了少数异常值外,通常存在很高的余弦相似度,这表明均值可以作为Landmarks(地标)来很好地近似正常块内的注意力。
基于Landmarks和Outliers的KV选择机制。这一发现表明,对于绝大多数块,系统可以将均值作为压缩的Landmarks进行维护,以便在解码期间准确地选择极少量的关键KV对(1.56%)。由于异常值块可能包含密集或关键信息且难以近似,系统将保留这些异常值以确保准确度。考虑到异常值数量相对较少(0.2-0.3%),将它们存储在GPU上是可行的,且不会影响显存容量。此外,考虑到KV缓存的时间局部性(即相邻解码步骤的查询所选择的KV对具有很高的重复率),系统可以利用缓存策略【8,Pqcache: Product quantization-based kvcache for long context llm inference+2024+arXiv】,并通过优化的CUDA内核在解码期间进一步将延迟开销降低60%。
ShadowKV系统概述。ShadowKV是一个新颖的高吞吐量长上下文LLM推理系统。该算法主要分为两个阶段:预填充(Pre-filling)和解码(Decoding)。预填充阶段涉及对Post-RoPE Key缓存进行低秩分解、卸载Value缓存以及构建Landmarks,以促进后续的高吞吐量解码。解码阶段包括准确的KV选择和高效的稀疏KV缓存重建。
预填充阶段的低秩分解与卸载。在预填充阶段,系统通过对每一层的Key缓存执行低秩压缩并将Values卸载到CPU来优化GPU显存使用。具体而言,系统对Pre-RoPE Key缓存应用SVD,并仅为每一层存储低秩表示。接着,系统将Post-RoPE Key缓存分割成块(Chunks),并计算每个块的均值作为Landmarks。通过计算这些块内的余弦相似度,系统将近似效果差的Token识别为异常值(Outliers)。这小部分异常值被收集并作为静态缓存存储在GPU上,而剩余的Key缓存则作为紧凑的Landmarks进行维护,其对应的Values被卸载到CPU内存中。其具体算法逻辑如下:
# Input: K, K_RoPE, V 属于 R^{b \times h_{kv} \times s \times d}, SVD rank r, chunk size c, number of outlier chunks o
# 存储Pre-RoPE Key Cache的低秩投影
A, B = SVD(K)
# 将Post-RoPE Key Cache分割成块并计算每个块的均值
C = Reduce(K_RoPE)
# 计算每个块内的余弦相似度
S = CosineSimilarity(C, K_RoPE)
# 找到余弦相似度最低的块作为异常值
I = ArgTopK(-Min(S, dim=-1), o)
K_outlier, V_outlier = Gather(K_RoPE, V, I)
# 将剩余的Value卸载到CPU,并存储非异常值块的均值作为Landmarks
V_CPU = V \ V_outlier
L = C \ Gather(C, I)
高吞吐量解码与准确KV选择。对于新输入的查询,系统首先使用Landmarks计算近似的注意力分数。系统通过识别得分排名前$k$(Top-k)的块索引,从CPU检索相应的Values,并同时从低秩投影中重建Key缓存,从而有效地隐藏了构建Key缓存的时间。基于KV缓存具有时间局部性的洞察,系统执行索引扫描以检测未命中的块,并且仅在运行中重建必要的KV对。通过优化的CUDA内核,这一过程减少了60%的计算和数据获取。其具体算法逻辑如下:
# Input: A, B, L, V_CPU, Q 属于 R^{b \times h_q \times s_q \times d}, K_outlier, V_outlier, K, V 属于 R^{b \times h_{kv} \times s_q \times d}, number of chunks n_c, number of selected chunk budget k
# 计算块的注意力分数
P = MatMul(Q, L.T)
S = Softmax(P / sqrt(d))
S1 = sum(S, dim=-2)
S2 = max_kv_group(S1)
# 为每个KV注意力头选择Top-k个块
I = ArgTopK(S2, k)
# 从CPU收集Value缓存
V_sparse = Gather(V_CPU, I)
V = [V_outlier; V_sparse; V]
# 从低秩投影重建Key缓存
K_sparse = MatMul(Gather(A, I), B)
K = [K_outlier; RoPE(K_sparse); K]
新生成Token的处理。因为序列中未来的Pre-RoPE Keys与上下文驻留在共享的低秩子空间中,系统将生成的Token作为低秩状态进行存储。该扩展方法使用与预填充阶段获得的相同的低秩投影,从而减少未来生成过程中的显存使用。
理论等效带宽分析。ShadowKV在提高吞吐量方面的优势可以通过等效带宽的概念来分析。假设每个K或V向量的大小为$M$字节,序列长度为$S$,块大小为$C$,选定的块预算为$K$,异常值为$O$,命中率为$\alpha$。在KV选择期间,ShadowKV使用GPU显存带宽$B_{\mathrm{GPU}}$加载$M \times S / C$字节。对于Value缓存的获取,它使用PCIe带宽$B_{\mathrm{PCIe}}$【9,Flexgen: High-throughput generative inference of large language models with a single gpu+2023+ICML】加载$M \times K \times C$字节。由于Value的移动和Key缓存的重建可以重叠,因此不需要计算Key缓存的重建时间。随后,ShadowKV对Top-K块和预定义的异常值执行标准注意力计算,需要$2 M \times (K + O) \times C$字节。ShadowKV的等效带宽$\widetilde{B}$定义如下:
等效带宽实例计算。例如,假设$C=8$,$S=128\mathrm{K}$,$K=256$,$O=48$,$B_{\mathrm{PCIe}} = 31.5$ GB/s,且对于A100 GPU而言$B_{\mathrm{GPU}} = 2$ TB/s,那么ShadowKV的等效带宽计算结果为7.2 TB/s,这比A100的显存带宽要高出3.6倍。这一结果表明,ShadowKV在理论上实现了极高的等效带宽以加速注意力计算。
数据集:
硬件配置:NVIDIA A100 GPU(PCIe带宽31.5 GB/s,显存带宽2 TB/s)。
RULER基准测试准确度评估。实验内容:在128K上下文长度下,使用1.56%的固定稀疏预算,对比ShadowKV与Quest、Loki、InfiniGen等动态稀疏注意力方法。实验结果与分析:如Table 1所示,其他方法在复杂任务(如多文档QA或多键针检索)中经历了显著的性能下降。相比之下,ShadowKV更加稳健,在变量跟踪等特定任务上甚至优于原始的全注意力机制,成功将KV缓存的GPU显存使用量减少了6倍而没有降低准确度。
LongBench基准测试准确度评估。实验内容:在一系列现实场景(单/多文档QA、摘要、代码补全等)中评估方法,样本长度大于4K,稀疏KV缓存预算设置为256。实验结果与分析:如Table 1所示,ShadowKV在各项任务中始终优于其他基准方法,并很好地保持了模型的性能。
Needle In A Haystack (NIAH) 评估。实验内容:在16K到1M Tokens的不同上下文窗口中测试检索能力。实验结果与分析:如图6所示,ShadowKV展示了在不同上下文窗口和不同深度位置处理信息的能力,准确度未出现明显下降。
与高效预填充方法的集成测试。实验内容:将ShadowKV与最先进的高效预填充方法MInference结合,在RULER上测试上下文从8K扩展到256K的性能。实验结果与分析:如Table 2所示,ShadowKV完全兼容预填充加速技术,并在某些特定的上下文长度设置下,甚至观察到了轻微的性能提升。
多轮对话能力测试。实验内容:在多轮针检索基准(Multi-turn NIAH)上测试ShadowKV,并与基于驱逐(Eviction-based)的方法SnapKV和StreamingLLM进行对比。实验结果与分析:如图7所示,由于SnapKV不可避免地基于第一轮对话驱逐了Token,它无法成功检索未来查询所需的信息,导致性能从第二轮开始显著下降。相反,ShadowKV能够在该设置下始终保持高准确度。
吞吐量与效率评估。实验内容:在A100 GPU上测量不同模型在解码期间的吞吐量,对比全注意力(能够完全装入GPU的最大Batch Size)、同等Batch Size下的全注意力以及假设显存无限情况下的无限Batch Size。实验结果与分析:如Table 3和Table 4所示,ShadowKV在Llama-3.1-8B上支持高达6倍的Batch Size,并将吞吐量提升了高达3.04倍。即使与假设显存无限的无限Batch Size相比,ShadowKV的吞吐量也更高。对于KV头较少的GLM-4-9B-1M和Yi-9B-200K,改进也分别达到了2.56倍和2.66倍。随着上下文长度的增加,全注意力迅速耗尽显存(OOM),而ShadowKV在60K上下文下仍能扩展到Batch Size 48,并能继续处理极长的序列。
本文提出了ShadowKV,这是一个用于长上下文LLM推理的高吞吐量系统。ShadowKV通过低秩Key缓存和卸载Value缓存来优化GPU显存使用,从而允许更大的Batch Size。它通过准确的稀疏注意力减少了解码开销,在保持准确度的同时提高了吞吐量。实证实验表明,ShadowKV在各种长上下文模型(包括Llama-3.1-8B、Llama-3-8B-1M、GLM-4-9B-1M和Yi-9B-200K)上,能够在A100上支持高达6倍的Batch Size,并将吞吐量提高达3.04倍。ShadowKV在改善长上下文LLM推理方面具有广阔的应用前景。
新生成Token的处理。为了处理新生成的Token,系统使用在预填充阶段应用的相同投影,将这些Token的Key缓存投影到低秩空间中。这种被称为ShadowKV+的方法保留了减少GPU显存使用的优势,特别是对于长输出序列。在RULER和LongBench上的评估(Table 5和Table 6)表明,ShadowKV+有效地保持了准确度,同时优化了显存使用。
GPU内存节省的定量分析。ShadowKV提供的GPU显存节省定量公式为:$\mathrm{Memory~Savings} = \frac{2 S M}{S M / C + 2 (K + O) C + S r + r M}$。例如,假设$M = 1024, C = 8, S = 128\mathrm{K}, K = 256, O = 48, r = 160$,ShadowKV的显存节省计算为7.08倍。这表明ShadowKV理论上可以为更长的序列和更大的Batch Size减少7.08倍的GPU上KV缓存显存占用。
Yi-9B-200K的准确率结果。在RULER和LongBench上对Yi-9B-200K的评估(Table 7和Table 8)凸显了ShadowKV在1.56%稀疏预算下,在各种不同任务中优于其他方法的卓越性能。
精度敏感性分析。为了研究精度对ShadowKV性能的影响,系统使用FP8精度(torch.float8_e5m2)进行了额外实验。如Table 9和Table 10所示,尽管FP8的数值范围减小,ShadowKV仍保持了准确度并实现了始终如一的高性能。这种稳健性证实了ShadowKV可以在不影响准确度的情况下继续提供效率增益。
更大模型和更长序列的可扩展性。系统在RULER基准上对1M上下文的Llama-3-8B-1M和512K上下文的Llama-3-70B-1M进行了实验,并在NIAH数据集上测试了Llama-3-70B-1M在16K到1M上下文长度的表现。如图10和Table 11所示,ShadowKV在不断增加的上下文长度和模型大小中保持了稳健的性能,证明了其在处理大规模输入时的可扩展性。
延迟分解。在预填充阶段(Table 12),SVD、Reduce、余弦相似度、TopK和Gather计算的开销非常低,并且随着序列的扩展而呈下降趋势,证明了ShadowKV对更长序列的可扩展性。在解码阶段(Table 13),系统通过将Key缓存的重新计算与从CPU获取Value缓存相重叠,显著减少了解码延迟。这种并发处理方法确保了系统在处理长上下文模型时最小化开销。
与Quest的效率比较。在长上下文或大Batch Size下(GPU显存无法容纳KV缓存时),全注意力和Quest都必须将KV缓存卸载到CPU。如Table 14所示,ShadowKV在相同的稀疏预算下显著优于全注意力和Quest。其效率优势归功于两个关键因素:首先,ShadowKV仅从CPU获取Value缓存,而不是整个KV对,从而最小化了数据传输;其次,ShadowKV集成了一种利用KV缓存时间局部性的缓存机制。
异常值KV Cache对准确率的贡献。系统在128K上下文长度的RULER基准上,对Llama-3-8B-1M使用了不同数量的异常值块进行实验。如Table 15所示,异常值发挥着至关重要的作用(例如第一个块作为注意力Sink)。增加异常值块的数量对准确度有积极影响,尤其是在复杂任务中。仅仅使用8个异常值(0.049%),ShadowKV就超过了Quest基线,并且几乎达到了全注意力所取得的准确度。如果异常值处理不当,ShadowKV中基于均值的Landmarks性能可能会低于Quest使用的Min-Max方法。
与InfiniGen的详细比较。InfiniGen执行离线SVD以获得投影矩阵,该矩阵应用于Post-RoPE Key和Query状态以进行KV选择。而ShadowKV直接对Pre-RoPE Key缓存应用在线的、依赖于Prompt的SVD进行压缩,而不是用于KV选择。此外,InfiniGen需要从CPU获取选定的、精确的KV对,而ShadowKV仅获取Value缓存,并从GPU上的低秩存储中重建Key缓存。在准确度方面,虽然InfiniGen在简单任务上表现良好,但在复杂任务(如RULER-N-MK2等)上准确度显著下降,而ShadowKV则保持了始终如一的高准确度。
系统实现细节。框架基于PyTorch和专用内核实现。使用FlashAttention进行注意力计算,并使用了Flashinfer和vLLM中一些高效的融合内核。为了减少显存移动和内核启动开销,系统将一些操作融合到CUDA内核中。系统利用多流来重叠Key缓存的重建和Value缓存的获取。在大多数情况下,系统将Pre-RoPE Key缓存的秩设置为160,块大小设置为8,稀疏KV缓存预算设置为1.56%。
更多基准测试结果。图11展示了GLM-4-9B-1M、Llama-3.1-8B、Yi-9B-200K、Phi-3-Mini-128K和Qwen2-7B-128K在NIAH上的结果,ShadowKV对理解不同上下文窗口和深度的语义信息影响极小。Table 16展示了在InfiniteBench上的结果,ShadowKV同样保持了极高的准确度。
稀疏KV Cache预算的影响。系统测试了ShadowKV在不同稀疏预算下跨各种任务的性能。如图8所示,在相同的稀疏预算下,ShadowKV始终超越Quest并实现更高的吞吐量。在大多数任务中,与全注意力相比,它仅用1.56%的稀疏预算就保持了准确度,在某些任务上甚至略有提高。
Chunk大小的选择。如图9所示,增加块大小允许更大的Batch Size。然而,当块大小超过8时,准确度会下降。同时,块大小的选择对块命中率的影响极小,命中率始终保持在60%左右。
Pre-RoPE Keys秩的选择。系统评估了在不同任务中使用不同Pre-RoPE Keys秩时的性能。如图9所示,准确度随着秩的增加而提高,直到大约160,之后稳定在接近满秩的性能。有趣的是,不同任务的趋势有所不同,在某些情况下,低秩近似甚至取得了更好的性能。