关键 KV 占用空间

搜索文档
Cache Me If You Can:陈丹琦团队如何「抓住」关键缓存,解放LLM内存?
机器之心· 2025-06-24 22:07
核心观点 - 普林斯顿大学陈丹琦团队提出「KV足迹」作为统一度量标准,用于比较不同KV缓存优化方法的效率[10] - 团队定义「关键KV足迹」为模型性能保持90%以上时的最小KV足迹,确保优化方法实用性[12] - 提出PruLong方法,通过端到端学习注意力头专业化,将KV足迹比先前方法降低12%[15][36] KV缓存问题 - Transformer模型自回归解码时需存储所有先前token的注意力状态(KV缓存),内存消耗随文本长度线性增长[3] - 处理128K token提示时,Llama-3-70B模型需分配42GB内存专用于KV缓存[5] - 现有稀疏注意力方法难以横向比较,因优化目标(预填充/解码阶段)和评估指标不一致[6][9][20] KV足迹度量框架 - 将KV条目分为活跃/非活跃/被驱逐三类,KV足迹定义为所有时间步中未被驱逐条目的归一化比例[24][26] - 支持分块预填充和多轮交互场景的评估,覆盖完整推理流程的内存使用[21][22][23] - 实验显示KV足迹与吞吐量强相关,但具体排名受实现细节影响[27] 现有方法分类 | 方法类型 | 代表技术 | 特点 | |---------|---------|------| | 动态稀疏 | NSA/MoBA | 提升吞吐量但未减少KV内存[29] | | 预填充优化 | MInference/FTP | 加速预填充但不影响解码阶段[29] | | 新近度驱逐 | StreamingLLM/DuoAttention | 固定窗口减少KV占用,可能丢失远距信息[30] | | 后填充驱逐 | H2O/SnapKV | 预填充阶段峰值内存高,长生成场景效果有限[30] | PruLong技术创新 - 训练目标:直接优化下一个token预测损失,而非隐藏状态重建误差[37] - 离散掩码:通过伯努利分布参数化实现端到端二进制掩码学习[38] - 数据改进:采用自然长上下文数据(代码/书籍)替代合成数据[39] - 实验结果:在召回任务中保持原始性能,同时显著降低内存占用[15][36]