跳到主要内容
返回时间线
arXiv来源发表:

ResidualQuant 用末轮 KV 作锚、2 比特残差压缩循环 Transformer 缓存,INT2/4 下 KV 存储降 80.7% 且精度接近 BF16

核心概要

针对循环 Transformer 中 KV 缓存随循环数增长的内存瓶颈,作者提出 ResidualQuant:以末轮 KV 状态为锚,把其余循环表示为低精度残差,并配合最小二乘缩放、对残差施加旋转以及逐循环 INT4/INT2 混合精度;在 Ouro-1.4B 与 Huginn-3.5B 的数学推理与代码生成基准上,该方法在相同内存预算下优于基于旋转的 KV 量化,混合精度下 KV 存储较 BF16 减少 80.7% 而精度接近 BF16。

Source-provided article image: ResidualQuant: KV Cache Quantization for Looped Transformers with 2-Bit Residuals
Figure 1 ·

Figure 1 : ResidualQuant progressively recovers BF16-level accuracy while reducing KV storage and improving decode throughput. Results on Ouro-1.4B with group size g = 32 g=32 in every quantized loop. Left: Starting from ① direct INT2 quantization, we successively introduce ② Last-loop residual quantization, ③ least-square scaling, ④ rotation, and ⑤ mixed precision to achieve ResidualQuant . Accuracy increases from 27.8% to 76.0%, matching the BF16 baseline of 75.0%, while KV cache storage is reduced by 80.7%. Right: At 8k context on an RTX 5090, ResidualQuant achieves 3.27 × 3.27\times the peak decode throughput and 4 × 4\times the largest feasible batch size compared to the BF16 counterpart.

arXiv

深度剖析

提出以末轮 KV 为共享锚、其余循环存低精度残差的循环感知 KV 量化框架,并叠加最小二乘缩放、对残差而非 KV 本身施加正交旋转、以及锚用 INT4、残差用 INT2 的逐循环混合精度。 此前降低循环 KV 开销的做法是跨循环共享或复用 KV(MoR、PLT、MELT),会丢弃循环特有信息;而通用 KV 量化在 4 比特以下精度退化明显。该工作改为保留每个循环各自的 KV,只压缩循环间差异。 在 Ouro-1.4B(4 循环)与 Huginn-3.5B(32 循环,按 4 循环一组分 8 组)上,对 GSM8K、MATH500、HumanEval、MBPP 做统一提示与贪心解码评测,并与直接量化、OptR-H 旋转基线在相同 KV 预算下比较。

在混合 INT2/4 配置下,ResidualQuant 平均分几乎追平 BF16(52.37 对 52.94),同时理论 KV 存储减少 80.7%;同配置下直接量化与 OptR-H 分别比 BF16 低 13.31 与 5.77 个百分点。 在相同内存预算下,残差量化(不含旋转)在四种精度配置上的平均分均高于旋转基线 OptR-H,混合 INT2/4 且组大小为 16 时提升达 4.95 个百分点(52.12 对 47.17)。 主结果表覆盖全部模型—基准组合,并以有效比特宽度计入量化码、FP8 缩放与偏移以及残差额外存储的 BF16 最小二乘系数。

消融显示各组件互补:末轮锚策略在 INT2 与 INT2/4 下分别把 MATH500 从 72.2% 提到 75.2%、从 72.8% 提到 76.0%(相对前一轮锚);最小二乘缩放在 INT2/4 末轮配置下把 70.2% 提到 73.8%;旋转与残差量化叠加后 INT2 达 75.2%。 把参考选择、缩放方式、旋转方法与逐循环精度分配放在同一评测下系统比较,指出共享锚重建只需两次 KV 读取,而链式重建随距离增加读取次数。 消融以 Ouro-1.4B 在 MATH500 上进行,附录给出包含 Norm-ratio 缩放、OSCAR 与 OptR-H 两种旋转的完整对照表。

KV 压缩转化为实际吞吐收益:8k 上下文、批大小 4 时解码吞吐从 111.4 提升到 192.5 tokens/s,16k 上下文、批大小 2 时从 34.0 提升到 93.1 tokens/s;更小占用还使 8k 下最大可行批从 4 增至 16(364.9 tokens/s),16k 下从 2 增至 4(141.3 tokens/s)。 除固定批加速外,还量化了压缩带来的批容量提升,并给出 vLLM 集成与自定义 CUDA/Triton 内核,使重建开销不抵消节省的访存。 在 RTX 5090 上以 Ouro-1.4B 对比 BF16 vLLM FlashAttention,批大小从 1 倍增到 128,每次生成 128 token,吞吐排除预填充并取三次运行平均。

启示与展望

该结果面向采用共享块重复执行的循环或递归 Transformer 推理场景,尤其是 KV 缓存随循环深度增长、需要更大批量的服务端部署;评测覆盖 Ouro-1.4B(4 循环)与 Huginn-3.5B(32 循环,按 4 循环一组分 8 组),基准为 GSM8K、MATH500、HumanEval、MBPP,权重保持 BF16,KV 采用 BF16、INT4、INT2 与 INT2/4。方法无需重训练或更新预训练权重,旋转矩阵离线校准后固定,因此可直接接入现有推理栈;作者还展示了与 FlashLoop 稀疏更新和注意力机制的组合,以及把同一残差重建原则用于 W4A4 激活量化。

摘要与正文中若干吞吐提升百分比在加载文本中缺失数值,只能依据 5.3 节给出的具体 tokens/s 与批大小变化来判断;Huginn-3.5B 的激活量化评测协议与 KV 评测协议不同,跨表比较需注意;LoopQ 为无官方代码下的复现,其绝对数值应结合这一背景阅读;更大循环分组(8 或 16)在 GSM8K 上精度相近但仅在附录给出,其他基准上的表现仍是开放问题;残差量化与不同旋转方法组合的增益随精度与旋转方法变化,最优搭配尚需按场景校准。

来源