OScaR:面向大模型及多模态LLM极限KV缓存量化的奥卡姆剃刀 OScaR: The Occam's Razor for Extreme KV Cache Quantization in LLMs and Beyond
用旋转+Token缩放解决TNI,实现近无损INT2 KV量化。
前置知识
KV Cache(键值缓存)
Transformer自回归解码时,为每个注意力层缓存历史token的Key/Value矩阵,避免重复计算。它随序列长度线性增长,长上下文与多模态场景下常占满GPU显存,是高吞吐推理的主要瓶颈。
本文的全部动机都围绕KV缓存的显存压力展开,只有先理解它线性增长、占满HBM这一事实,才能理解为何INT2极限量化是必需品。
Per-channel 量化(KIVI 范式)
对Key矩阵按通道维度分块,每块各自计算量化步长$\Delta$与零点$z$,从而适配Key中固有的稀疏通道异常值。配合高精度残差窗口(本文R=128)实现自回归生成,是KIVI、OTT等工作的核心范式。
OScaR正是建立在per-channel范式之上,只是修复了其在极低位宽下的失效点TNI。不先理解per-channel的工作机制就无法读懂'共享量化参数被token范数失衡撑大'这一核心痛点。
Hadamard 变换与 FHT(快速哈达玛变换)
哈达玛变换是由±1元素构成的正交线性变换,可经快速哈达玛变换(FHT)在$O(d\log d)$复杂度内完成(远低于普通矩阵乘的$O(d^2)$)。常用于把异常通道能量均匀打散到所有维度,使分布更平滑。
OScaR的Canalized Rotation就是一次在线FHT,理解FHT的正交性(不改变attention输出)与$O(d\log d)$复杂度,才能明白为何它轻量、且不会改变attention语义。
Attention Sink(注意力槽)token
注意力槽token指序列前若干个L2范数异常低、却持续吸引大量注意力权重的特殊token。本文证明它们正是TNI中低范数离群token的物理来源,是限制per-channel量化精度的最薄弱环节。
TNI不是抽象统计现象,而是有明确物理对应物(Attention Sink)。理解这一对应关系,才能理解为何Omni-Token Scaling能从根上消除TNI。
研究动机
随着长上下文推理与多模态智能的发展,KV缓存的显存占用随序列长度线性增长,在128K乃至更长上下文场景下成为现代加速器HBM容量的主要瓶颈,严重限制batch size与高吞吐部署。极端低位量化(INT2)因此成为必需,而针对Key张量中显著的通道异常值,per-channel量化(如KIVI、OTT)已被公认为有效范式。但作者从经验与理论两方面均证明:per-channel在极低位宽下精度急剧退化,根因是一种被长期忽略的结构性现象——Token范数失衡(TNI):同一通道块内不同token的L2范数差异巨大,少数范数离群token会把共享量化参数$\Delta$、$z$的动态范围撑大,块内精度崩坏。同时,现有方法(TurboQuant、QuaRot、RotateKV、OTT)多依赖在线量化叠加复杂辅助机制(随机旋转+残差校正、混合精度保留少量离群token),引入大量计算开销与额外参数,部署困难、理论保证与实际收益脱节。
本文的目标是本文目标明确遵循奥卡姆剃刀原则:设计一个准确、轻量、训练-free的KV缓存压缩框架OScaR,使其在INT2极限位宽下对文本、多模态、全模态LLM(统称X-LLMs)都达到接近无损的精度。具体目标分四层:(1) 从理论上彻底解释per-channel范式为何在极端压缩下失效,定位其结构性瓶颈;(2) 提出比KIVI/OTT/QuaRot/RotateKV/TurboQuant更简洁、推理更快的方案,全程训练-free、不依赖复杂辅助管线;(3) 在LongBench-E、NIAH、OCRBench、DocVQA、MMAU-Pro等长上下文/多模态基准上稳定逼近16-bit基线,刷新精度-效率Pareto前沿;(4) 配套优化CUDA kernel与系统设计,把理论收益转化为可测的解码加速、显存节省与吞吐提升,做到即开即用。
与已有工作不同的是,独特切入点在于:现有工作要么用复杂随机旋转加残差校正(TurboQuant)硬性降低误差上界,要么用混合精度保留少量离群token(OTT/RotateKV),都回避了per-channel范式的根本病灶。作者逆其道而行,先用token-wise范数热图与解析推导把TNI定位为唯一结构性瓶颈,再用两个简单却互相必需的组件——Canalized Rotation消除Scaling-Induced Outlier Artifact、Omni-Token Scaling均衡序列维度范数——直接根除TNI。这与'打补丁式'方法形成本质区别,也解释了为何OScaR在不加任何复杂辅助机制的情况下就能达到SOTA。作者还首次指出TNI在多模态LLM中呈现跨模态范数跳变、超大范数token等多种新形态,使框架天然适配X-LLMs。
核心方法
OScaR整体思路是:先把Key张量中的通道异常值能量打散,再按token做范数均衡,最后套用标准per-channel量化。直觉上,per-channel量化的痛点是同一通道块内token范数差异过大(TNI),最朴素的想法是直接对token做缩放、归一到统一范数;但作者发现直接缩放会触发Scaling-Induced Outlier Artifact——低范数离群token被等比放大后,反而成为新的人工通道异常值,撑大per-channel量化范围、精度更差。技术路线因此分两步:先做Canalized Rotation(Hadamard变换)把通道能量均匀化,再做Omni-Token Scaling(token-wise范数归一),二者缺一不可。整个框架训练-free,仅依赖一次在线FHT、一次基于rsqrt的缩放和一次标准量化,理论上极轻量。
核心创新是发现并工程化'TNI是per-channel量化的根本瓶颈'这一观点,并用一对互锁组件解决。Canalized Rotation不是简单套用Hadamard——它专门用来先消毒通道异常值,使后续token缩放不再制造人工异常;这正是与QuaRot/RotateKV最本质的差异:后者的旋转是为per-token量化平滑通道,而OScaR的旋转是为per-channel量化做前置准备。Omni-Token Scaling则对序列维度做全模态、全token的L2范数均衡,覆盖TNI在文本与多模态下的多种形态(attention sink低范数、跨模态范数跳变、超大范数token)。两组件互为前提:单独旋转无法消除TNI,单独缩放会引入artifact,只有合用才能根除TNI——这一'互锁'关系在Figure 5的消融可视化中得到直接验证。
方法步骤详情
OScaR推理流水线分三路。(1) Query:在线对$q$做FHT,与Key的FHT在attention中相消,保持attention输出不变(旋转的正交性保证语义不损)。(2) Key:先在线FHT(Canalized Rotation),再对每个token计算L2范数做Omni-Token Scaling归一到统一范数,再做block-wise per-channel INT2量化(块大小$G=32$,残差长度$R=128$);反量化时先做逆token缩放再参与attention。(3) Value:离线对Value与attention输出权重矩阵做Hadamard变换并融合进权重,推理时直接做per-token量化,零额外运行开销。系统侧用三个CUDA kernel实现:①融合FHT+Scaling kernel;②量化kernel(同时处理Key/Value);③融合反量化+反缩放+attention kernel。FHT复杂度仅$O(d\log d)$,Omni-Token Scaling用硬件加速的rsqrt指令。Algorithm 1给出完整伪代码。
技术新颖性
新颖性体现在四点。第一,首次把TNI从经验现象提升为per-channel量化的理论瓶颈,并给出量化误差与块内token范数极差的解析关系(附录G式11),证明per-channel误差受token范数极差系统性放大。第二,提出'Canalized Rotation为token缩放铺路'的范式,区别于以往'旋转即为per-token量化'的用法,是OScaR与QuaRot/RotateKV最本质的差异。第三,揭示并命名Scaling-Induced Outlier Artifact,从理论上解释为何'直接token缩放'反而劣化精度——这是过去工作从未点破的关键陷阱。第四,工程上提供完整CUDA kernel(基于HadaCore与BitDecoding)与系统设计,把训练-free的两步操作落到FlashDecoding-v2上实现3.0×解码加速、5.3×显存节省、4.1×吞吐提升,做到即开即用,填补了'方法论文缺乏可部署系统实现'的空白。
实验结果
实验覆盖文本LLM(Llama-3.1-8B/Qwen3-8B)、多模态LLM(Qwen3-VL-4B/8B等)、全模态LLM(Qwen3-Omni-30B-A3B)。LongBench-E(Table 1)上,Llama-3.1-8B平均精度41.75%,比次优OTT的40.74%高1.01pp;Qwen3-8B上48.74%,比16-bit基线49.56%仅降1.7%。NIAH(Figure 29)上OScaR检索精度96.5%,显著超次优92.7%,甚至略超16-bit基线96.0%。OCRBench上Qwen3-VL-4B比次优高2.5pp;MMAU-Pro(全模态)上open-ended QA/Good Rate/audio指令跟随分别超次优1.2/2.8/4.6pp。效率(Figure 6)上,单H20 GPU、Qwen3-8B,相对BF16 FlashDecoding-v2基线在128K上下文取得3.0×解码加速、batch 48下显存降5.3×、吞吐升4.1×。INT2对比中残差长度统一128、组大小32,与KIVI/OTT公平对齐。
查看结构化数据
| 任务 | 指标 | 本文 | 基线 | 提升 |
|---|---|---|---|---|
| LongBench-E 长上下文文本理解(Llama-3.1-8B,8子项平均) | 平均准确率 (%) | 41.75% (INT2, group=32, residual=128) | OTT 40.74%, TurboQuant+ 40.03%, KIVI 39.84%, RotateKV 37.98%, QuaRot 37.94%, 16bit 43.57% | 比次优OTT高+1.01pp,超KIVI +1.91pp,逼近16bit基线(仅-1.82pp) |
| LongBench-E 长上下文文本理解(Qwen3-8B,8子项平均) | 平均准确率 (%) | 48.74% (INT2) | OTT 48.21%, KIVI 47.95%, TurboQuant+ 47.56%, RotateKV 42.95%, QuaRot 40.13%, 16bit 49.56% | 比次优OTT高+0.53pp,相对16bit基线仅降1.7% |
| NIAH 大海捞针长上下文检索 | 检索准确率 (%) | 96.5% | 次优方法 92.7%,16bit基线 96.0% | 比次优高+3.8pp,甚至略超16bit基线+0.5pp,证明长上下文检索鲁棒性 |
| MMAU-Pro 全模态理解(Qwen3-Omni-30B-A3B) | open-ended QA / Good Rate / audio指令跟随 (%) | 三子项均居量化方法之首 | 次优量化方法 | 分别超次优 +1.2 / +2.8 / +4.6 pp,audio指令跟随提升最显著 |
| 解码效率(Qwen3-8B,单H20 GPU) | 解码加速 / 显存节省 / 吞吐提升 (×) | 3.0× / 5.3× / 4.1×(相对BF16 FlashDecoding-v2) | BF16 FlashDecoding-v2 基线 | 128K上下文3.0×解码加速,batch 48下5.3×显存降、4.1×吞吐升,建立新精度-效率Pareto前沿 |
局限与改进
作者承认的局限包括:(1) 主表只对比INT2(group=32),对更低位(sub-2bit)或更大组的行为未深入讨论;(2) TurboQuant官方未开源,只能用社区复刻TurboQuant+,公平性存疑且作者在附录N专门说明;(3) 多模态TNI的多种形态只在附录(F/J)做可视化,缺少逐模态的量化误差拆解。我自己观察到的局限:(a) 离线Value旋转需改动attention输出权重,对已部署权重不友好,且与LoRA/适配器场景的兼容性未讨论;(b) Q与K需在线FHT,虽复杂度低但仍引入常数开销,对极短序列或小batch未必有正向收益;(c) Omni-Token Scaling依赖rsqrt近似,与FP8/低精度attention叠加的效果未验证;(d) 评测集中于7B~30B规模,70B+与更大上下文(>128K)未覆盖。
独立分析的弱点
独立分析的弱点:(1) Omni-Token Scaling的目标范数选择(附录T有ablation)对外文/代码token的鲁棒性未充分验证,若TNI模式随prompt变化剧烈,固定缩放策略可能不稳,改进方向是自适应或content-aware的缩放目标;(2) Canalized Rotation用固定Hadamard基底,对极深模型的累积数值误差缺乏分析,可探索随机化旋转或层间自适应旋转基底;(3) 系统设计依赖H20 GPU与特定Tensor Core路径,跨厂商(NVIDIA其他型号、AMD MI300)可移植性未讨论,工程上可补一套Triton/cutlass实现降低门槛;(4) 残差窗口R=128在超长上下文(1M+)下仍会带来显存碎片,与prefix cache/page-attention(vLLM)的协同未量化,这是与主流推理栈集成的关键缺口。
未来方向
作者隐含的未来方向:把OScaR推广到更激进的sub-2bit、与speculative decoding结合进一步降低延迟、扩展到更大模型(70B+)与更长上下文。基于成果可延伸的方向:(1) Omni-Token Scaling可与动态稀疏attention(Spark/Gear)结合,做量化+稀疏的联合压缩;(2) Canalized Rotation思想可迁移到权重量化(AWQ/SmoothQuant的激活侧),统一处理权重与KV;(3) 把TNI作为可学习目标,用少量校准数据自适应选择每层的旋转基底,而非全局固定Hadamard;(4) 探索TNI与训练阶段的关系——是否可在预训练中加入范数均衡正则,从源头消除TNI、让推理量化更易;(5) 多模态场景下研究跨模态token范数跳变的成因(是否与视觉/音频encoder的归一化设计有关)。
复现评估
复现性整体较好。代码已在 https://github.com/ZunhaiSu/OScaR-KV-Quant 公开,包含CUDA kernel实现与算法。论文给出关键超参:INT2量化、group size 32、残差长度R=128、离线Value旋转、FHT、rsqrt-based缩放;评测基准LongBench-E、NIAH、OCRBench、DocVQA、MMAU-Pro均为公开数据集,模型Llama-3.1-8B/Qwen3-8B/Qwen3-VL-4B/8B/Qwen3-Omni-30B-A3B均开源。主要挑战在于:(1) CUDA kernel需H20/A100等高端GPU,复现3.0×/5.3×/4.1×效率数据需特定硬件与BF16 FlashDecoding-v2基线严格对齐;(2) TurboQuant+等基线需单独复现对齐;(3) 多模态与全模态评测(Qwen3-Omni-30B)显存需求大,普通实验室难以复现全表。综合属'中等偏上可复现',算法部分门槛低、系统效率部分门槛高。
论文图表
总览图分三部分:左侧用Key状态热图说明per-channel量化的两类问题——通道异常值与TNI;中间示意OScaR的两步处理(Canalized Rotation + Omni-Token Scaling)并把OScaR定位为适用于X-LLMs(文本/多模态/全模态)的统一框架;右侧给出Llama-2-7B、Qwen3-8B、Qwen3-VL-8B、Qwen3-Omni-30B上LongBench/OCRBench/MMAU-Pro三任务在16bit/KIVI/TurboQuant/OScaR下的精度对比柱状图,以及token L2范数曲线、latency、throughput效率图,量化OScaR在精度与效率两端的优势。
这张图用一页讲清了'问题—方法—结果'全链条:TNI是问题、OScaR两步法是方法、跨模态精度与3.0×/5.3×/4.1×效率是结果,是理解全文动机与四点贡献的最佳入口。
(a) Key张量幅度热图显示明显的稀疏通道异常值(少数列幅值极高);(b) Value张量幅度相对均匀;(c) KIVI分块per-channel量化示意:Key按通道分块、Value按token量化,新token先进入高精度残差窗口R=128,攒满后再整块量化,兼顾通道异常值处理与自回归生成。
这张图确立了'为何要per-channel量化Key、per-token量化Value'的直觉基础,是理解后续TNI为何只攻击per-channel一侧、OScaR为何沿用per-channel范式的前提。