论文 Efficient Inference of Vision Instruction-Following Models with Elastic Cache 介绍了一种名为Elastic Cache的新型KV缓存管理技术,旨在提高多模态指令跟随模型的时间和内存效率,同时保持其生成长且连贯输出的能力。
Elastic Cache的主要思想。指令编码占据了大部分的理论计算成本,而实际的延迟却可以忽略不计(这里我们以基于1024个指令生成512个标记为例)。这表明,不仅仅是模型权重,输出生成中使用的KV缓存也可能成为一个重要的瓶颈。我们提出了Elastic Cache,通过基于指令标记重要性得分的缓存合并,并在输出生成阶段辅以固定点消除策略。我们的设计在显著加速推理的同时,保持了生成质量。
主要贡献
Elastic Cache技术:提出了一种新的KV缓存管理方法,通过在指令编码和输出生成阶段使用不同的稀疏化策略来优化缓存管理。
缓存合并策略:在指令编码阶段,使用基于注意力得分的重要性度量来选择关键的KV向量,并将这些向量作为锚点,将整个指令序列中的其他KV向量与最近的锚点合并。
动态缓存管理:在输出生成阶段,采用固定点消除策略,动态管理KV缓存,平衡初始指导和新内容之间的缓存。
实验
实验设置
基线方法:与两种最先进的基线方法Heavy-Hitter Oracle (H2O)和StreamingLLM (Local)进行比较。
模型选择:使用LLaVA-7B/13B和Qwen-VL-7B作为视觉指令调优模型。
评估指标:使用Perplexity (PPL)和ROUGE-L得分来评估模型性能。
视觉指令跟随任务的结果。我们使用PPL(越低越好)和ROUGE(越高越好)指标评估Elastic Cache及基线方法。我们进行了不同规模的LLaVA-1.5(a)(b)和Qwen-VL-7B(c)的视觉任务实验。我们的Elastic Cache始终优于基线方法。
实验结果
视觉指令跟随:在视觉指令跟随任务中,Elastic Cache在不同的KV缓存预算下表现优于基线方法,展示了更好的性能和鲁棒性。
缓存策略比较:Elastic Cache在缓存预算减少的情况下,仍能生成连贯且合理的输出,而基线方法在缓存预算减少时性能显著下降。
图像识别问题的生成结果。我们将KV缓存预算固定为0.5。在这种实验设置下,Local和H2O缓存修剪方法无法生成合理的结果,而Elastic Cache则能够保持生成能力,提供详细且正确的图像描述。
消融实验
丢弃位置:在输出生成阶段,固定特定的丢弃位置比简单地丢弃最远的缓存或频率策略表现更好。
合并策略:相比简单地驱逐缓存,合并未使用的缓存与已验证的缓存可以获得更好的性能。
重要性度量:使用注意力得分的总和作为重要性度量,比移动平均值和均值等其他方法表现更好。
结论与影响
结论:Elastic Cache显著提高了指令跟随模型的推理效率和生成能力,超越了现有的基线方法。
局限性:依赖注意力得分进行缓存优化可能并不总是与最计算效率的缓存策略一致。
潜在负面影响:Elastic Cache的效率和速度提升可能会加速AI系统在监控应用中的部署。
相关信息
代码:https://github.com/liuzuyan/elasticcache
论文:https://arxiv.org/abs/2407.18121v1