KV Cache压缩
搜索文档
上海AI Lab胡侠:KV Cache压缩之后,可让价格2万美金的GPU发挥出20万美金的价值丨GAIR 2025
雷峰网· 2025-12-12 15:16
文章核心观点 - 胡侠团队提出“有损计算”方案,通过主动引入可控的信息损失来提升大语言模型的推理效率,核心思路是用精度换取效率,且不损害模型准确率[3][7] - 该方案在算法和系统层面实现两项关键技术突破:通过粗化远距离标记位置信息将模型语境长度扩展至原有水平的8倍;将KV Cache量化为2比特,实现8倍内存效率提升和3.5倍时钟时间加速[4][7] - 该方案的核心创新在于对Key Cache和Value Cache采用不同的压缩方法,使得在激进的2比特量化下模型性能(准确率)几乎不掉点[12][24] - 该技术方案是“即插即用”的,无需针对特定模型或领域进行额外微调,并已被hugging face的transformer、llama.cpp等主流开源软件包使用[15][34] 技术方案细节 - **算法层面:粗化位置信息** - 通过粗化远距离标记的位置信息来扩展上下文,无需使用精确的相对距离进行计算[7] - 该策略是根据上下文的需要进行动态调整的,而非静态或完全根据文本内容动态调整[11] - 此方法成功将大语言模型的语境长度扩展至原来水平的8倍[4][7] - **系统层面:KV Cache量化压缩** - 将过去令牌的中间状态(KV Cache)量化为2比特数字[4][7] - 此举实现了8倍内存效率的提升和3.5倍实际速度(时钟时间)加速[4][7] - 研究最大挑战是确保在2比特低精度表示下模型准确率不下降,并通过大量实验验证[12] - 关键创新在于对Key Cache和Value Cache采用不同的压缩方法,这是实现2比特压缩下几乎不掉点的主要贡献[12][24] - **技术原理与哲学** - 灵感源于深度学习的两大发现:模型参数量比精度更重要;删除大量参数后模型准确率损失很小[8] - 哲学上与混合专家模型(MoE)等类似,都是用效率换取精度,但目标是不损害最终任务准确率[16] - 技术上与MoE不同:MoE通过稀疏性(忽略部分词)解决问题,而有损计算是快速处理全部信息但记忆模糊位置[16] 性能影响与应用场景 - **对模型性能的影响** - 方案主要针对语言大模型进行实验(如在llama上),对多模态模型或其他智能体的效果尚未明确[14][19] - 压缩到2比特时,在聊天机器人(chatbot)等问答任务上准确率几乎不掉点,但在生成程序等对精度要求极高的任务上可能影响准确性[23] - 评估“有损操作”是否过度依赖于大量实验,通过观察模型准确率下降曲线来判断,不同任务下降曲线不同[22] - **潜在应用价值与场景** - **提升硬件价值**:将KV Cache从16比特压缩到2比特,相当于压缩近10倍,能让80GB A100 GPU的等效存储量增加10倍,粗略估算可使价值2万美金的GPU增值到20万美金[13] - **主要应用场景**:目前主要应用于聊天机器人(chatbot),以及在医疗健康领域基于罕见病的问诊系统[28] - **对高要求场景的适用性**:在法律、医疗等场景,任务基于大量统计信息,可能不需要极高精度即可做出精准判断,因此有损计算方案可以应用[27] - **部署意义**:当前主要价值在于解决服务器端推理速度慢的问题,对于部署到手机等端侧的意义尚不明确[32] 行业现状与前景 - **行业背景** - 大模型厂商在超长上下文处理方面竞争激烈,已有模型支持百万Token(1M)级别的输入[2] - 提升上下文长度是巨大的工程与效率之战,能在金融、法律、医疗等长语境任务中创造更大商业与技术价值[3] - **方案成熟度与采用** - 该方案相关研究论文于2024年发表[14] - 相关技术已被集成到hugging face的transformer、llama.cpp等主流开源软件包中[15] - 工业界当前主流优化手段是将KV Cache压缩到8比特(如DeepSeek),压缩到4比特已属激进,2比特更多是实验室成果[12] - **未来发展方向** - 下一个前沿包括探索2比特量化在实际中的应用条件与边界,以及加强相关的理论研究[33] - 未来模型架构可能直接在预训练阶段设计稀疏性,以提升整体效率,而非仅在推理阶段补救[30] - 该方案目前专用于GPU,尚未考虑与内存计算、低精度AI芯片等特定硬件的协同设计,但发挥最大潜力可能需要硬件层面的变革[29]
将KV Cache预算降至1.5%!他们用进化算法把大模型内存占用砍下来了
机器之心· 2025-09-14 13:16
核心技术创新 - 提出EvolKV进化框架 仅使用完整KV cache预算的1.5%即可实现超越完整模型的性能表现 大幅降低大语言模型推理成本 [1][6][11] - 采用任务驱动的进化算法优化KV cache分配 通过下游任务性能反馈自适应调整每层缓存预算 突破传统基于规则启发式方法的局限性 [4][6][13] - 将层分组优化与黑盒进化搜索结合 在减少搜索空间的同时实现细粒度性能感知分配 支持多样化评估标准包括准确率和F1分数 [6][9][16] 性能表现 - 在Needle-in-a-Haystack基准测试中比最佳基线提升多达13% 在RULER基准测试中提升多达3.6% [11][31] - LongBench评估显示在128到2048的KV cache预算范围内持续优于所有基线 在GSM8K数学任务中128预算下比最强基线准确率提升7个百分点 [11][25] - Mistral-7B-Instruct模型在多个子数据集(MultiFieldQA-en/2WikiMultihopQA/MuSiQue等)上不仅保持完整模型竞争力 甚至在某些预算下实现超越 [22] 方法架构 - 设计缓存效率评分机制CacheScore ∈ [0,1] 通过平滑折扣函数确保方案平均预算接近目标值c 超参数λ平衡原始性能与缓存效率 [14][15] - 采用层分组策略将L个transformer层划分为J=⌈L/n_g⌉个连续组 显著降低搜索维度并优化稳定性的同时保持细粒度控制 [16] - 通过迭代进化算法逐组优化 固定已优化组参数并动态更新未优化组 最终通过比例补全机制确保总预算精确匹配目标值 [17][20] 实验结果 - 在Llama-3-8B-Instruct上TREC子集128预算时比最强基线高7.69个百分点 在GSM8K任务中512预算下达到完整模型95.7%性能 显著优于基线84.5% [23][25] - 可视化显示不同预算下KV cache分配呈非均匀模式 验证了模型不同层级在信息处理中的功能差异性 [7][27][28] - RULER基准测试表明优化策略具备强泛化能力 迁移到其他评估场景仍保持性能优势 在Mistral-7B-Instruct上提升0.99分 Llama-3-8B-Instruct提升3.6分 [31]