KV-cache 量化是大模型推理优化的关键路径,但传统方法面临两个核心难题:一是通道维度上的离群值(outliers)导致量化误差集中,二是自回归解码过程中误差随 token 累积放大。KVarN 通过 Hadamard 旋转与迭代方差归一化的组合策略,在无需校准数据的前提下实现了 FP16 级别的精度保持。
Hadamard 旋转:离群值的数学分散
Hadamard 矩阵是正交矩阵的一种特殊构造,其元素仅为 ±1,满足 $H H^T = nI$ 的性质。在 KVarN 的实现中,系统对 KV-cache 的每个 tile(固定 128 tokens)沿通道维度执行 Hadamard 旋转:
$$\tilde{X} = X \cdot H$$
其中 $X$ 为原始 KV tile(channels × tokens),$H$ 为 Hadamard 矩阵。旋转后的关键特性在于:原本集中在特定通道的离群值被均匀分散到所有通道维度。这种 "能量重分布" 使得后续量化步骤面对的数值分布更加平坦,显著降低了因离群值导致的截断误差。
从工程实现角度,Hadamard 旋转可通过快速 Walsh-Hadamard 变换(FWHT)在 $O (n \log n)$ 复杂度内完成,避免了 $O (n^2)$ 的矩阵乘法开销。KVarN 的代码实现中,旋转操作与后续的方差归一化融合在同一个 kernel 中,最小化了显存带宽占用。
迭代方差归一化:Sinkhorn 式的动态校准
旋转后的 KV tile 进入方差归一化阶段。KVarN 采用类 Sinkhorn 的迭代算法,在 log 空间中对行(token 维度)和列(channel 维度)交替进行标准差归一化:
- 列归一化:计算每个通道的标准差 $\sigma_c$,将各通道缩放至单位方差
- 行归一化:计算每个 token 的标准差 $\sigma_t$,将各 token 缩放至单位方差
- 迭代收敛:重复上述两步直至方差分布收敛(通常 3-5 次迭代)
这种双轴归一化的设计基于一个关键观察:KV-cache 中的数值波动在通道和 token 两个维度上都存在显著差异。仅进行单轴归一化无法同时约束两个方向的离群行为。
在 log 空间执行归一化是 KVarN 的精妙之处。相比于直接在原始数值空间操作,log 空间能更好地处理跨越多个数量级的数值范围,避免极端值对归一化参数的过度影响。迭代过程中,系统动态计算归一化尺度因子,这些因子在反量化时用于恢复原始数值范围。
非对称量化与尺度折叠
经过旋转和归一化的 KV tile 进入最终的量化阶段。KVarN 采用非对称最近邻舍入(asymmetric round-to-nearest),对 keys 和 values 分配不同的比特宽度:keys 使用 4-bit,values 使用 2-bit。这种不对称设计源于注意力机制对 keys 和 values 的敏感度差异 ——keys 参与注意力分数计算,对精度要求更高;values 仅用于加权求和,可承受更大压缩。
量化尺度(scales)采用折叠策略:keys 的尺度按通道存储,values 的尺度按 token 存储。在读取时,反量化操作将尺度因子乘回,恢复近似原始值。尺度折叠的设计使得量化后的存储开销最小化:每个 128-token tile 仅需存储少量的尺度参数。
可落地的实现参数
基于 KVarN 的开源实现,以下是可直接应用的参数配置:
核心配置参数
kv_cache_dtype:kvarn_k4v2_g128(4-bit keys + 2-bit values,128-token tile)block_size: 128(与 vLLM 的 page size 对齐)dtype: float16(计算精度保持 FP16)
内存优化参数
VLLM_MEMORY_PROFILER_ESTIMATE_CUDAGRAPHS=0:禁用 CUDA graph 内存预分配,释放更多 KV-cache 空间--gpu-memory-utilization: 建议设置为 0.9 以上以充分利用容量优势
性能监控指标
- 量化误差监控:定期采样检查反量化后的数值分布
- 迭代收敛次数:方差归一化通常 3-5 次迭代收敛,超过 10 次需检查输入数据异常
- 吞吐对比:与 FP16 基线对比,正常应达到 1.0-1.3x 吞吐
局限与权衡
Hadamard 旋转和方差归一化引入了额外的计算开销,尽管报告称为 "modest",但在短序列场景下可能抵消内存带宽节省的收益。此外,当前实现固定 128-token 的 tile 大小,对于需要更大粒度量化的场景存在限制。
KVarN 的校准自由特性意味着无需准备校准数据集,这简化了部署流程,但也意味着无法针对特定任务微调量化参数。对于极端精度的场景,仍需权衡是否采用传统的校准式量化方案。
资料来源
- KVarN GitHub 仓库:https://github.com/huawei-csl/KVarN
- KVarN 论文(arXiv:2606.03458):https://arxiv.org/abs/2606.03458
内容声明:本文无广告投放、无付费植入。
如有事实性问题,欢迎发送勘误至 i@hotdrydog.com。