返回

文章详情

KVarN:华为原生vLLM KV-cache量化后端

Hacker News2026年6月4日 15:18

⚡️ 专为智能和长上下文工作负载构建。💡 KVarN 提供 3-5 倍的 KV-cache 容量和高达 ~1.3 倍的 FP16 吞吐量,因此您可以适应更长的上下文并提供更多的并发请求,同时保持 FP16 级别的准确性。🔌 无需校准,即插即用,适用于 vLLM。原生的 vLLM 注意力后端:只需添加一个标志,无需更改模型,无需校准。🥊 高达 ~2.4× 的 TurboQuant 吞吐量,相同的容量,更高的准确性。 为什么选择 KVarN(方差归一化 KV-Cache)? kvarn /kvɑːn/ · 名词(瑞典语)一种用于将物质磨成更小颗粒或粉末的磨粉装置,特别是谷物、种子、香料、咖啡豆、KV-cache。KV-cache 量化通常会有一个问题。如 vLLM TurboQuant 博客所示,现有方法购买额外的 KV-cache 容量但放弃吞吐量(TurboQuant 报告称 2.3-3.7 倍容量的吞吐量降低 40% 至 52%),而激进的低比特量化往往也会影响准确性。在生产中很少开启 KV-cache 量化的主要原因是失去速度和质量。KVarN 的构建旨在兼顾两者。在 Qwen3-32B(AIME25,16K 上下文爆发,TP=2)上,它匹配 FP16 的准确性并超越其吞吐量,同时提供约 4× 的 KV-cache 容量:KVarN 保持在博客的方法无法达到的右上角:FP16 级别的准确性,FP16 或更好的吞吐量,以及几倍的上下文。 快速启动 KVarN 以 vLLM 分支的形式发布。像安装 vLLM 一样安装它,然后选择 KVarN KV-cache 数据类型。 # 1. 克隆 git clone https://github.com/huawei-csl/KVarN.git cd KVarN # 2. 安装(使用上游预编译的轮文件;KVarN 内核是 Triton,在运行时 JIT 编译) VLLM_USE_PRECOMPILED=1 pip install -e . from vllm import LLM , SamplingParams llm = LLM ( model = "Qwen/Qwen3-32B" , dtype = "float16" , # KVarN 运行在 float16 kv_cache_dtype = "kvarn_k4v2_g128" , # 启用 KVarN block_size = 128 , # KVarN 瓷砖大小 ) print ( llm . generate ( "用一句话解释 KV-cache 量化。" , SamplingParams ( max_tokens = 64 ))[ 0 ]. outputs [ 0 ]. text ) 服务方式相同: vllm serve Qwen/Qwen3-32B --dtype float16 --kv-cache-dtype kvarn_k4v2_g128 --block-size 128 注意:KVarN 运行在 float16 计算中。瓷砖 / 页大小当前固定为 128(一个 vLLM 块 = 一个 KVarN 瓷砖);其他页面大小即将推出。 提示(容量):KVarN 实现其完整的 KV-cache 容量时,必须有空间以摊销小的固定解码工作空间。在多 GPU 或宽裕的 --gpu-memory-utilization 设置下,这一点是自动的。在紧张的单 GPU 预算下,vLLM 的 CUDA 图形内存分析器可能会过量保留并缩减 KV 池;设置 VLLM_MEMORY_PROFILER_ESTIMATE_CUDAGRAPHS=0(和/或提高 --gpu-memory-utilization)以恢复全部容量。 KVarN 如何工作? KVarN 逐个固定大小的令牌瓷砖对 KV 缓存进行量化,依次通过以上四个阶段: Cache:来自注意力的原始 fp16 KV 瓷砖(通道 × 令牌)。 Rotated Cache:通道维度的 Hadamard 旋转混合通道,使每个通道的离群值分散,从而便于瓷砖的量化。旋转是正交的,因此注意力分数得以保留。 Normalized Cache:迭代方差归一化(类似 Sinkhorn),在对数空间中交替进行列和行的标准偏差归一化,使瓷砖的方差均等化,并在任何舍入发生之前减小量化误差。 Quantized Cache:以低比特宽度进行非对称的四舍五入,读取时将比例再折叠(键每通道,值每令牌)。 提供的预设在键上花费更多的位,而不是在值上( kvarn_k4v2_g128:4 位键,2 位值)。我们选择发布此配置,因为它满足最严格的准确性标准,匹配 FP16,这是最苛刻的生产部署和 vLLM 所要求的,同时仍然提供高于 FP16 的吞吐量。 引用 KVarN 是我们论文的官方 vLLM 实现:📄 KVarN:方差归一化 KV-Cache 量化缓解推理任务中的误差积累 ( arXiv:2606.03458 ) 如果您使用 KVarN,请引用: @misc { muller2026kvarn , title = { KVarN:方差归一化 KV-Cache 量化缓解推理任务中的误差积累 } , author = { Lorenz K. Muller 和 Philippe Bich 和 Chiara Boretti 和 Hyun-Min Chang 和 Jiawei Zhuang 和 Lukas Cavigelli } , year = { 2026 } , eprint = { 2606.03458 } , archivePrefix = { arXiv } , primaryClass = { cs.LG } , url = { http://arxiv.org/abs/2606.03458 } } 许可证和归属 KVarN 基于 vLLM (v0.22.0) 构建,并在 Apache 2.0 许可证下发布。原始 vLLM 自述文件保留为 README_vLLM.md。

赞助内容

NordVPN Next-gen Antivirus

本站免费、广告极少。如果觉得有帮助,可以请我们喝杯咖啡 —— 任何金额都对持续运营有实际帮助。

请我喝杯咖啡