![]()
这项由华为中央软件院研究团队完成的研究,以预印本形式发布于2026年6月2日,论文编号为arXiv:2606.03458,感兴趣的读者可通过该编号查阅完整原文。
当你和一个健忘的朋友聊天,他每隔几分钟就会忘记你刚说的话,你们的对话会变得越来越混乱。越到后面,他说的话就越没法接上前面的逻辑,最终整个对话就崩掉了。现代AI大语言模型面临着一个非常相似的困境——只不过,这种"健忘"不是因为脑子不好使,而是因为内存不够用。
近年来,AI领域掀起了一股"推理时扩展"的热潮。简单来说,就是让模型在回答一个问题之前,花更多时间思考,生成更长的"思维链",就像人类在解一道难题时会先打草稿。DeepSeek、o系列模型这些推理大模型的崛起,正是这个思路的产物。但问题随之而来:思考得越久,占用的"记忆空间"就越多。这里所说的记忆空间,在技术上叫做KV缓存,你可以把它理解成AI在思考过程中随手记在纸上的草稿。思考链越长,草稿纸就越多,GPU的内存就越快被塞满。
解决这个问题的一个思路是"压缩草稿"——也就是KV缓存量化技术。这就像把写满字的A4纸拍成缩略图存起来,用更少的空间存更多的信息。极端情况下,可以把原本每个数据用16位二进制表示,压缩到只用2位。这样一来,内存占用可以缩减到原来的八分之一。
但压缩不是免费的。就像把一份详细地图压缩成一张小图,细节必然会丢失。问题在于:究竟哪些细节的丢失是致命的,哪些是无所谓的?华为的研究团队发现,以往的方法在回答这个问题上犯了一个关键性的错误,而这个错误在AI做长篇推理时会越滚越大。他们由此提出了一种名为KVarN的新方法,在几乎不增加计算成本的前提下,大幅改善了压缩效果。
一、草稿纸的两种损坏方式
要理解KVarN解决的问题,先得搞清楚草稿被压缩后会出现什么样的损坏。
研究团队把压缩误差分成了两种类型。第一种叫"方向误差",第二种叫"幅度误差"。以一支箭来打比方:一支箭既有方向(朝哪飞),也有长短(飞多远)。方向误差就是箭飞歪了,幅度误差就是箭飞远了或近了。
对于AI模型里的KV缓存来说,这两种误差对最终结果的影响是完全不同的。研究团队通过数学分析,把每一个压缩误差分解成这两个分量,然后观察最大的那些误差主要是由哪种原因造成的。结果非常清晰:在最大的0.1%的误差里,有超过80%来自幅度误差;在最大的1%的误差里,幅度误差的贡献也超过60%。换句话说,那些真正"坏得厉害"的压缩,几乎都是因为一支箭该飞100米,结果只飞了20米,或者飞了500米——方向其实还凑合,主要是远近出了大问题。
这个发现直接指向了一个更具体的问题:是哪些"箭"特别容易出现幅度误差?答案是那些本身就特别"长"或特别"短"的箭,也就是在KV缓存中,那些数值特别大或特别小的"异常词元"。在AI模型处理语言的过程中,每一个词(或子词)都会产生一组数值,这组数值的整体大小就是所谓的"词元幅度"。某些特殊位置的词会产生异常大的数值,这些词在压缩过程中会被严重变形,而这种变形是致命的。
更糟糕的是,研究团队还发现,这些大误差对最终输出质量的破坏程度,远超它们在总误差中的占比。他们做了一个实验:如果把最差的5%的误差替换成精确值,最终输出质量的提升远超过修正剩余95%误差所能带来的提升。这就好像一个蛋糕配方里99%的步骤都做对了,但盐放多了十倍,整个蛋糕就毁了——那1%的致命错误的危害,远超过其他99%的小瑕疵之和。
二、错误是怎样像滚雪球一样越来越大的
发现"幅度误差是主要敌人"只是第一步。研究团队还揭示了一个更令人担忧的现象:这种误差会随着AI生成文本的时间推移,不断累积放大。
以往评测KV缓存压缩效果的主流方法,是把一大段文字一次性送进模型(叫做"预填充"模式),然后看压缩后的结果有多准确。这就像给一个人一本书,让他一次读完,然后测试他的理解。但AI在实际推理时不是这样工作的。它是一个词一个词地生成文本,每生成一个词,这个词的草稿就会被记录下来,然后在生成下一个词时被用到。
这就意味着:如果早期生成的草稿已经被压缩变形了,那么之后的每一步都是基于这份变形的草稿继续生成的。变形的草稿产生了略微错误的下一个词,错误的词产生了更错误的草稿,更错误的草稿又产生了更错误的词……这是一个雪球越滚越大的过程。
为了测量这个雪球效应,研究团队设计了一种叫做"伪解码"的评测方法。具体做法是把一段长文本切成若干小块,每处理完一块就压缩一次草稿,然后用压缩过的草稿处理下一块。这样就模拟了AI在实际生成长文本时的真实状态。通过对比不同压缩方法在这种"累积"模式下和传统"静态"模式下的表现差异,可以直接观察到错误累积的速度。
研究结果令人警觉。在传统的KIVI压缩方法下,随着上下文长度从几千词增长到三万词,累积模式下的误差比静态模式下的误差显著更大,而且差距随着长度增加而扩大。这意味着,那些在短文本上表现还不错的压缩方法,在AI做长篇推理时会越来越力不从心。
三、Hadamard旋转:一个有用但不够用的老工具
在华为团队提出KVarN之前,学术界已经有一种常用于模型权重压缩的技术,叫做Hadamard旋转(也称为"非相干处理")。这个名字听起来很玄,本质上是做了一次数学上的"混合搅拌"。
可以用调鸡尾酒来理解:原始的KV缓存就像一杯分层明显的酒,某几层数值特别大,某几层特别小,这种不均匀性让压缩很难做。Hadamard旋转就像用搅拌棒把这杯酒充分混合均匀,让每一层的浓度都差不多,从而让压缩更容易。
研究团队测试了只用Hadamard旋转的效果,并把它标记为"HK"方法(Hadamard rotated K)。结果显示,这种方法确实能改善"通道维度"上的不均匀性——也就是说,在同一个词产生的那一组数值内部,不均匀性减少了。但对于"词元维度"上的不均匀性——也就是不同词之间幅度的悬殊差异——Hadamard旋转的改善效果非常有限。
从研究团队提供的图示中可以看到,用Hadamard旋转处理后,那些极端大或极端小的词,压缩前后的幅度差异依然很大。雪球效应的根源——词元幅度错误——并没有被根本解决。
四、KVarN的核心武器:双轴方差归一化
这正是KVarN的关键创新所在。研究团队在Hadamard旋转的基础上,引入了一种名为"方差归一化"的额外处理步骤,而且是同时在两个维度上做——既沿着通道维度(同一个词内部),也沿着词元维度(不同词之间)。
继续用调酒的比喻:Hadamard旋转只混合了每杯酒的内部,但不同杯子之间的容量依然差异巨大——有的杯子装了一升,有的只装了一毫升。方差归一化就像在混合之后,再给每杯酒换成统一大小的标准杯,把多余的倒掉,把不足的补满,让每杯酒的量级都大致相当。
技术上,这个过程用的是一种叫"Sinkhorn-Knopp风格"的迭代算法。听起来复杂,实际上思路很直接:交替对行和列做缩放,每次缩放都让整个矩阵的行方差和列方差更接近均匀,重复几次直到足够均匀为止。研究团队把这个步骤记为VarN()。
在实际操作中,KVarN的完整流程是这样的:每产生一个新词,就先对这个词的KV数值做Hadamard旋转(混合内部);积累了128个词之后,对这128个词形成的矩阵做方差归一化(统一词间量级);然后再做标准的四舍五入量化压缩,同时存储两个缩放系数——一个是量化时的标准尺度,另一个是方差归一化时用到的额外尺度。
关键在于,这个额外的缩放系数在存储时占用的空间极小,而在使用时(即从压缩状态还原时)只需要额外做一次简单的乘法。研究团队测量了这个额外步骤的计算开销:在Qwen3-4B模型上,每生成128个词的时间是1050毫秒,而对所有注意力层做一次方差归一化只需要1.9毫秒,占比0.18%,基本可以忽略不计。
五、两种工具相互补充,而不是简单叠加
Hadamard旋转和方差归一化的关系,并不是简单的"一加一等于二",而是两种工具各有所长、互相弥补。
从研究团队提供的每词元幅度误差分布图可以看出这一点。对于那些幅度处于"中间范围"的普通词,Hadamard旋转的效果相当好,能把压缩前后的幅度差异压缩到很小的范围。但对于那些幅度极大或极小的"异常词",Hadamard旋转就力不从心了,这些词的压缩误差依然散布在很宽的范围内。方差归一化则恰好在这些极端情况下表现突出,能有效约束这些异常词的幅度误差。两者叠加之后的KVarN,在整个幅度范围内都能把误差控制得很好,特别是那些之前无法处理的极端情况,几乎被完全驯服了。
在联合分布图中,理想的压缩应该让压缩后的幅度与压缩前的幅度完全一致,也就是所有点都落在一条对角线上。KIVI方法的点图显示出大量偏离对角线的散点,特别是在大幅度区域。KVarN的点图则几乎所有点都紧贴对角线,说明幅度保真度大幅提升。
六、在真实推理任务上的表现
研究团队在多个实际任务上测试了KVarN,涵盖数学推理、代码生成和指令遵循三大类,并与多种主流压缩方法进行了对比。
在数学推理方面,AIME24是一个竞赛级别的数学题库,题目难度极高,需要长篇推理才能作答。在Qwen3-4B模型上,不压缩的原始FP16精度下正确率为61.1%;KIVI压缩到2位后,正确率降到55.5%;只加Hadamard旋转的QuaRot方法则是56.7%;而KVarN在同样的2位2.3比特每元素的压缩率下,达到了60%,几乎完全追平了不压缩的精度。在体量更大的Phi-4-14B模型上,效果更为惊人——FP16精度下62.2%,KVarN为61.7%,压缩几乎没有损失,而KIVI则降到57.8%。
在MATH500数学基准测试上,Qwen3-4B在FP16下正确率为82.6%,KVarN压缩后为79.2%,而KIVI只有77.8%。Phi-4-14B的结果更为突出:FP16精度84.9%,KVarN为84.8%,几乎完全保留了模型能力,而KIVI则降至74.4%。
在代码生成方面的HumanEval测试中,Qwen3-4B的FP16精度为88.8%,KVarN为88.4%,KIVI为86.4%。Phi-4-14B的FP16精度为88.9%,KVarN为88.2%,而KIVI则下滑到了74.6%。这个74.6%对应的任务是让模型把自然语言描述翻译成能运行的Python代码,精度损失如此之大意味着大量代码会运行出错。
在指令遵循测试IFEval上,评测模型能否严格按照要求格式输出——比如字数限制、特定模板等。KVarN在三个模型上均表现最佳或与最佳持平,而且是在所有方法中唯一同时做到低比特率、均匀精度、且性能接近FP16的方法。
在长上下文检索测试"行检索"中,测试要求模型从包含数百行文字的长文本中找到特定行的内容。随着行数增加,任务难度急剧上升,因为上下文越来越长,错误累积效应越来越明显。KVarN在100到600行的各个测试点上,均优于KIVI和其他所有2比特方法,且在600行时仍能维持较高准确率,而KIVI在600行时准确率已显著下降。
相比之下,研究团队还测试了KVQuant(保留1%通道为FP16的混合精度方法)、PolarQuant(用极坐标表示键值)、TurboQuant(基于向量量化的高精度编码本方法)和Kitty(动态通道精度提升方法)。KVarN在2.3比特每元素的最低存储开销下,取得了所有方法中最高的综合性能。特别值得一提的是,KVarN使用的是"均匀精度"——每个元素都用相同的位数表示,不需要针对不同位置使用不同精度,这大大简化了硬件实现。
七、伪解码测试:错误积累的直接证据
研究团队用他们提出的伪解码评测方法,直接展示了KVarN在抑制误差累积方面的优势。
实验对象是Qwen3-4B模型,输入约三万词的长文本,对比了KIVI和KVarN在静态模式(一次性压缩,不累积)和累积模式(逐块压缩,模拟真实推理)下的注意力输出重构误差。
结果呈现出几个清晰的规律。在任何上下文长度下,KVarN的误差都低于KIVI,这是基本的量化质量提升。在累积模式下,两种方法的误差都随着上下文长度增加而增大,但KIVI的增速明显更快。KVarN的累积模式误差与KIVI的静态模式误差大致相当,这意味着KVarN的累积误差几乎和KIVI静态时一样低。换句话说,KVarN不仅基准误差更低,而且对时间累积效应更有抵抗力,随着上下文拉长,KVarN相对于KIVI的优势还在不断扩大。
这个结果直接解释了为什么KVarN在AIME24这类需要超长推理链的任务上优势最为显著——那正是误差累积效应最严重的场景。
说到底,这篇研究揭示的核心洞察其实并不复杂:在压缩AI的"记忆草稿"时,最危险的不是那些均匀分布的小误差,而是少数几个"跑偏得离谱"的词,它们的幅度被严重改变,然后在漫长的推理过程中把这种改变不断放大。华为团队的解法——先搅拌均匀,再统一量级——既有效又廉价,额外开销不足0.2%,却在竞赛数学、代码生成等高难度任务上把2位压缩的质量提升到了接近不压缩的水平。
这项研究的意义超出了技术本身。随着AI推理模型被越来越广泛地部署,对内存效率的需求只会越来越迫切。KVarN提供的是一个可以直接在现有推理框架(如vLLM)中实现的实用方案,研究团队已将相关代码开放,感兴趣的技术读者可以通过arXiv编号2606.03458找到原论文,进一步了解算法细节和实现方式。
一个值得思考的问题是:随着推理链越来越长,AI模型产生的"草稿纸"会继续膨胀,压缩技术的重要性会越来越突出。下一个值得关注的方向,或许是如何把量化技术与另一大类压缩策略——"丢弃不重要的词"(即KV驱逐和词元合并)——有机结合,两条路线天然互补,组合使用有望进一步突破内存瓶颈。
Q&A
Q1:KV缓存量化会不会让AI变笨,特别是在做数学题的时候?
A:KV缓存量化确实会带来一定精度损失,但KVarN方法把这种损失压到了非常低的水平。以Phi-4-14B模型为例,在MATH500数学测试中,不压缩时正确率84.9%,KVarN压缩到2位后仍有84.8%,几乎没有差别。关键在于KVarN专门针对长篇推理场景设计,抑制了误差随时间累积的问题,而这正是数学推理任务最需要的特性。
Q2:KVarN比KIVI好在哪里,为什么以前没有人这样做?
A:KIVI在量化时没有专门处理"词元幅度"的问题,导致某些词被压缩后幅度严重失真,而这种失真在长文本生成时会不断放大。KVarN通过增加一步方差归一化,直接用一个额外的高精度缩放系数来记录和还原每个词的幅度信息,从根本上解决了这个问题。以前没有人这样做,是因为学术界通常在"一次性预填充"场景下评测压缩方法,这个场景下误差不会累积,问题不明显,真正的弱点被掩盖了。
Q3:KVarN实现起来复杂吗,普通开发者能用上吗?
A:KVarN的核心操作包括Hadamard旋转和迭代方差归一化,这两步都可以高效地在GPU上实现。研究团队已经在vLLM推理框架中实现了KVarN,并开放了代码。额外的计算开销只有约0.18%,解压时的额外乘法操作也可以融合进现有的量化内核中,实测延迟增加不超过1.4%。对于有GPU推理部署经验的开发者来说,接入成本相对较低。





京公网安备 11011402013531号