LogQuant: Log-Distributed 2-Bit Quantization of KV Cache with Superior Accuracy Preservation
作者: Han Chen, Zicong Jiang, Zining Zhang, Bingsheng He, Pingyi Luo, Mian Lu, Yuqiang Chen
分类: cs.LG, cs.AI, cs.CL
发布日期: 2025-03-25
备注: Accepted by ICLR 2025 Workshop on Sparsity in LLMs (SLLM)
🔗 代码/项目: GITHUB
💡 一句话要点
LogQuant:基于对数分布的2比特KV缓存量化,显著提升大模型推理精度
🎯 匹配领域: 支柱九:具身大模型 (Embodied Foundation Models)
关键词: KV缓存量化 大型语言模型 低比特量化 对数分布 推理优化
📋 核心要点
- 现有KV缓存量化方法依赖于token重要性假设或注意力预测,易产生性能瓶颈和预测偏差。
- LogQuant采用对数过滤机制,选择性压缩整个上下文的KV缓存,在降低内存占用的同时提升性能。
- 实验表明,LogQuant在吞吐量、batch size和精度方面均优于现有方法,尤其在复杂任务上提升显著。
📝 摘要(中文)
本文提出LogQuant,一种用于大型语言模型(LLM)推理中KV缓存的突破性2比特量化技术,可在显著节省内存的同时保持卓越的性能。先前的方法要么假设后面的token更重要,要么试图基于先前的注意力模式来预测重要的token。然而,这两种方法都可能导致性能瓶颈或频繁的错误预测。LogQuant采用不同的方法。通过应用基于对数的过滤机制,它有选择地压缩整个上下文中的KV缓存,与现有方法相比,在相同甚至更小的内存占用下实现更好的性能。在基准测试中,它在不增加内存消耗的情况下,吞吐量提高了25%,batch size提高了60%。对于诸如数学和代码补全等具有挑战性的任务,LogQuant在相同的压缩比下,精度提高了40%到200%,优于同类技术。LogQuant可以轻松地与流行的推理框架(如Python的transformers库)集成。实现代码可在https://github.com/Concyclics/LogQuantKV获取。
🔬 方法详解
问题定义:大型语言模型推理时,KV缓存占用大量内存,成为性能瓶颈。现有的量化方法,如基于token重要性或注意力预测的方法,容易出现性能瓶颈和预测偏差,导致精度下降。
核心思路:LogQuant的核心思路是利用对数分布的特性,对KV缓存进行选择性压缩。它认为,并非所有token都同等重要,通过对数过滤机制,可以保留更重要的信息,从而在低比特量化下保持较高的精度。
技术框架:LogQuant的整体框架包含以下几个主要步骤:1. 对KV缓存进行采样,确定需要量化的部分。2. 应用基于对数的过滤机制,选择性地保留重要的KV值。3. 对选择的KV值进行2比特量化。4. 在推理过程中,使用量化后的KV缓存进行计算。
关键创新:LogQuant的关键创新在于其对数过滤机制。与现有方法不同,它不依赖于任何先验假设或预测模型,而是直接基于KV值的分布进行选择性压缩,从而更有效地保留了重要的信息。
关键设计:LogQuant的关键设计包括:1. 对数过滤函数的具体形式,需要仔细调整以平衡压缩率和精度。2. 量化策略的选择,例如是否使用对称或非对称量化。3. 与现有推理框架的集成方式,需要考虑性能和易用性。
🖼️ 关键图片
📊 实验亮点
实验结果表明,LogQuant在不增加内存消耗的情况下,吞吐量提高了25%,batch size提高了60%。在数学和代码补全等复杂任务上,LogQuant在相同压缩比下,精度提高了40%到200%,显著优于现有方法。这些结果表明LogQuant在降低内存占用和提升推理性能方面具有显著优势。
🎯 应用场景
LogQuant可广泛应用于各种需要低延迟和高效率的大型语言模型推理场景,例如移动设备上的本地推理、边缘计算以及大规模在线服务。通过降低内存占用,LogQuant能够支持更大的模型和更大的batch size,从而提升用户体验和降低部署成本。未来,LogQuant有望成为LLM推理优化的重要组成部分。
📄 摘要(原文)
We introduce LogQuant, a groundbreaking 2-bit quantization technique for KV Cache in large language model (LLM) inference, delivering substantial memory savings while preserving superior performance. Previous methods either assume that later tokens are more important or attempt to predict important tokens based on earlier attention patterns. Both approaches, however, can result in performance bottlenecks or frequent mispredictions. LogQuant takes a different approach. By applying a log-based filtering mechanism, it selectively compresses the KV Cache across the entire context, achieving better performance with the same or even reduced memory footprint compared to existing methods. In benchmark tests, it enhances throughput by 25% and boosts batch size by 60% without increasing memory consumption. For challenging tasks such as Math and Code Completion, LogQuant improves accuracy by 40% to 200% at the same compression ratio, outperforming comparable techniques.LogQuant integrates effortlessly with popular inference frameworks like Python's transformers library. Implementation can be available in https://github.com/Concyclics/LogQuantKV.