Together AI 开源 OSCAR:一种面向长上下文 LLM 服务的注意力感知 2 位 KV 缓存量化系统
Together AI 发布了 OSCAR(离线频谱协方差感知旋转),这是一种用于长上下文 LLM 服务的 INT2 KV 缓存量化方法。与以往基于数据无关的 Hadamard 变换的旋转方法不同,OSCAR 从离线估计的注意力感知协方差结构中推导出键和值的独立旋转。在每 KV 元素 2.28 位的精度下,OSCAR 在 Qwen3-4B-Thinking-2507 上将 BF16 精度差距缩小至 3.78 个点,在 Qwen3-8B 上为 1.42 个点,同时在 100K 上下文长度下实现约 8 倍 KV 内存缩减和高达 3 倍的解码加速。
文章情报
要点
- OSCAR 是一种使用注意力感知旋转的 2 位 KV 缓存量化方法,可保持近 BF16 的准确性。
- 它通过离线校准从查询和值协方差中推导出旋转,从而将量化噪声引导至注意力不敏感的方向。
- OSCAR 在长上下文推理中实现了高达 8 倍的 KV 内存缩减和 3 倍的解码加速。
- 它与 SGLang 集成,支持分页注意力,并提供预计算旋转的 ModelScope 模型动物园。
为什么重要
这条新闻值得关注,因为OSCAR 是一种使用注意力感知旋转的 2 位 KV 缓存量化方法,可保持近 BF16 的准确性。
技术影响
可能影响模型选型、推理成本、产品能力和评测基准。
长上下文推理使 KV 缓存成为 LLM 服务的主要成本之一。在自回归解码过程中,缓存随上下文长度、批大小和模型深度而增长。在高批大小和长上下文(例如跨数十个并发请求的 100K 个令牌)的情况下,KV 缓存消耗了 GPU 内存的很大一部分。对其进行压缩是增加批大小和减少内存流量的一种直接方法。
最明显的方法是量化。但将 KV 缓存推至 INT2(2 位)精度在很大程度上是不切实际的。以前的方法要么精度崩溃,要么需要与分页 KV 缓存系统不兼容的自定义服务布局。Together AI 的 OSCAR(离线频谱协方差感知旋转)解决了这两个问题。
为什么 INT2 KV 缓存量化很难?KV 激活包含通道级异常值。一小部分通道持有非常大的值,而大多数通道行为良好。当应用 INT2 量化(只有四个可表示级别)时,这些异常值主导了比例因子。量化器将其大部分范围浪费在罕见的尖峰上,正常值被压缩到仅一个或两个有效级别。这会严重降低注意力质量。
基于旋转的量化通过应用固定的正交变换(通常是 Hadamard 变换)将异常值能量重新分布到所有通道来解决此问题。这种方法在 INT4 下效果不错。但在 INT2 下,一个更深层次的问题仍然存在:旋转是与数据无关的。它可以平滑激活范围,但不知道注意力机制实际读取的方向。均匀分布量化误差并不等同于将其推入低重要性的方向。在 INT2 下,只有四个级别,这种区别决定了模型是否能正常工作。
OSCAR 的不同之处:OSCAR 的关键观察是,量化前应用的旋转应来自注意力统计本身,而不是 KV 激活的原始分布。对于键,重要的下游误差不是键的欧几里得重建误差,而是注意力 logits 中的误差。研究团队证明了这一误差为:‖QK⊤ − QK̂⊤‖²F = tr((K − K̂)Q⊤Q(K − K̂)⊤)。权重矩阵是查询协方差 Q⊤Q,而不是 K⊤K。查询能量大的方向会放大 logits 中的量化误差。OSCAR 从校准集估计经验查询协方差 CQ = (1/N) Σ qn⊤qn,对其进行特征分解,并使用特征向量 UQ 作为键旋转基。
对于值,相关误差在于注意力输出 SV。这取决于注意力分数矩阵 S 如何加权每个值行。研究团队定义了分数加权值协方差 CS = (1/N) V⊤S⊤SV。通过 S 聚合后仍保持较大的方向是量化误差传播的方向。OSCAR 使用 CS 的特征向量 US 作为值旋转基。
最终的组合旋转为:RK = UQ · HHad · Pbr,RV = US · HHad · Pbr。三个因子分别解决了每组低位量化的不同失败模式:UQ/US 将通道与注意力重要性方向对齐,HHad 等化通道重要性,Pbr 重新排序通道以确保每个量化组从重要性层次结构的每个级别获得一个代表。
服务系统:混合精度缓存布局:OSCAR 作为 INT2 KV 缓存模式集成到 SGLang 的生产服务堆栈中,并完全兼容分页注意力。每个请求的 KV 缓存布局使用三个区域:前 64 个令牌(汇令牌)以 BF16 存储,当前位置之前的最后 256 个令牌(最近令牌)以 BF16 存储,中间的所有令牌(历史令牌)在 OSCAR 旋转和裁剪后以 INT2 存储。在 128K 上下文长度下,BF16 汇和最近窗口仅占总令牌的 0.24%。
结果:研究团队在四个模型配置上评估了 OSCAR:Qwen3-4B-Thinking-2507、Qwen3-8B、Qwen3-32B 和 GLM-4.7-FP8(358B 参数)。在每 KV 元素 2.28 位下,Qwen3-4B 的平均准确率差距为 -3.78 点,Qwen3-8B 为 -1.42 点,Qwen3-32B 为 -0.02 点,GLM-4.7-FP8 为 +0.27 点。相比之下,没有旋转的朴素 INT2 准确率为 0.00,QuaRot-INT2(仅 Hadamard)准确率显著较低。在长上下文鲁棒性(RULER-NIAH)方面,OSCAR 在 Qwen3-4B 和 Qwen3-8B 上保持了接近 BF16 的性能,直至 128K,而 QuaRot-INT2 则降至 0。在吞吐量方面,OSCAR 在 100K 上下文长度下实现了高达 3.08 倍的解码加速,在批大小为 32 时,作业级吞吐量提高到 BF16 的 7.83 倍。
OSCAR 的旋转预计算并发布在 ModelScope 的 RotationZoo 中,无需用户重新校准。对于自定义模型,提供了一次性离线校准脚本。OSCAR 还与 SGLang 完全集成,支持标准 OpenAI 兼容 API,无需客户端更改。