GAAC(Group‑Adaptive Additive Codec)是一种无损 KV 缓存压缩与服务系统,专为个人设备上的长上下文 LLM 推理设计。它利用 BF16 数据的指数部分高度冗余的特性,将指数序列按通道划分,用基准+偏移的方式在连续区间内进行编码。具体做法是:
- 对每个通道的指数计算最小基准
base与最大偏移offset,并根据实际分布选择最小的比特宽度w。 - 将同一组(通常为 64~256 个 KV 条目)内的所有通道共享相同的
w,实现组自适应。 - 编码后得到的比特流仍然可以逐块解码,避免一次性完整解压。
在注意力计算阶段,GAAC 使用融合的 kernel:在需要读取 KV 时即时重建对应的 BF16 值,随后直接参与注意力矩阵乘法,从而省去完整缓存的解压开销。
系统还支持块级压缩与固定容量槽位,使得 KV 缓存可以增量更新并按页调度,适配显存/内存的容量限制。
实验在五个主流模型上完成,取得了 1.405‑1.407× 的 BF16 KV 无损压缩率。对低精度缓存的压缩效果为:
- FP8 E4M3:1.09‑1.14×
- FP8 E5M2:1.25‑1.30×
在 NVIDIA DGX Spark 上,GAAC 在 64K token 上下文的解码注意力阶段提升 1.19‑1.27×,整体 W4A16 解码步骤提升 1.04‑1.15×。服务场景下,KV 常驻内存降低约 26%,在相同 KV 内存预算下吞吐提升 13‑29%。在 Apple M4 上也实现了 1.02‑1.25× 的注意力加速,证明了跨平台可移植性。
点评:GAAC 通过对指数冗余的细粒度编码,实现了无损压缩与注意力加速的双重收益,特别适合资源受限的个人设备,是长上下文 LLM 推理的实用突破。