摘要
键值(KV)缓存通过存储历史生成令牌的KV张量来加速大语言模型解码,虽减少冗余计算却增加内存占用。现有方法将KV张量压缩为低位表示,但量化误差会随令牌生成累积导致输出偏差。本文提出SQuat(子空间正交KV缓存量化)技术:首先构建由查询张量张成的子空间以捕获关键任务信息,在键张量量化时强制要求(反)量化键与原始键的差值保持子空间正交,从而最小化量化误差对注意力机制输出的影响。该方法无需模型微调或离线校准数据集,并具有理论支撑。实验表明,SQuat可将峰值内存降低2.17-2.82倍,吞吐量提升2.45-3.60倍,且基准测试得分优于现有KV缓存量化算法。
核心方法
-
子空间构建
通过当前查询张量构建任务相关子空间,使用奇异值分解确定信息量最大的方向。 -
正交约束量化
量化过程满足误差项与查询子空间正交的条件:
$$\langle K - \tilde{K}, Q \rangle = 0$$
其中$K$为原始键,$\tilde{K}$为量化键,$Q$为查询子空间基。 -
动态范围调整
根据子空间投影特性自适应调整各维度的量化区间,优先保留与注意力计算强相关的特征分量。
实验结果
指标 | 提升幅度 | 对比基线 |
---|---|---|
内存占用 | 2.17-2.82x | 8-bit均匀量化 |
推理吞吐量 | 2.45-3.60x | 分组量化方法 |
困惑度得分 | +0.8-1.2 | 最邻近量化 |
技术优势
- 零训练开销:直接应用于预训练模型
- 理论保障:误差传播具有明确上界
- 硬件友好:支持现有AI加速器的定点运算单元