智源社区 2024年11月03日
大模型压缩KV缓存新突破,中科大提出自适应预算分配,工业界已落地vLLM框架
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

中科大研究团队提出了一种名为Ada-KV的创新方法,用于优化大模型推理过程中的KV缓存压缩。传统KV缓存压缩方法通常将所有注意力头分配相同的压缩预算,而Ada-KV则针对不同注意力头的特性差异,采用自适应预算分配算法。通过这种方式,Ada-KV能够显著提升缓存压缩质量,有效缓解长序列推理中内存和I/O延迟问题。该研究不仅在学术界引发了广泛讨论,更实现了工业界开源落地,例如Cloudflare workers AI团队将其集成到vLLM框架中,并发布了技术报告和开源代码,推动了KV缓存压缩技术的进步。

🤔**注意力头关注度差异显著影响压缩效果:** Ada-KV团队发现,大模型中不同注意力头对KV缓存的关注度存在显著差异。大部分注意力头关注度集中在少量KV缓存上,而少数注意力头则倾向于分散注意力。这种差异表明,如果采用统一的压缩预算分配策略,可能会导致压缩效率低下,无法充分利用缓存资源。例如,大部分注意力头只需很少的KV缓存即可收集接近0.9的注意力权重,而少数注意力头则需要接近50%的KV缓存才能达到同样的效果。 这种关注度差异的存在,为Ada-KV团队提出了一个重要的思考:是否应该针对不同注意力头采用不同的压缩预算分配策略?通过经验性和理论性的分析,团队最终给出了肯定的答案,即注意力头间的适配性压缩预算分配对于提升压缩质量具有巨大潜力。

💡**理论分析与自适应预算分配算法:** Ada-KV研究团队进一步从压缩输出损失的角度出发,对不同预算分配策略下KV缓存压缩对注意力输出的影响进行了形式化分析。基于此,他们提出了一种以注意力权重为基础的自适应分配方案,并证明了这种跨注意力头的预算分配策略能够降低损失上界。这一理论上的结论在实际实验中也得到了验证,即注意力头间的适配性预算分配能够显著降低注意力输出损失,从而提升KV缓存压缩的效果。 Ada-KV团队提出的自适应预算分配算法,能够根据不同注意力头的关注度差异,动态调整其对应的压缩预算。通过这种方式,能够确保那些关注度高的注意力头获得更多的压缩资源,从而提高压缩质量,同时降低整体的压缩损失。这使得Ada-KV能够在有限的缓存资源下,实现更高的压缩效率和更好的推理性能。

🚀**Ada-SnapKV和Ada-Pyramid:结合现有方案,增强压缩质量:** Ada-KV团队将自适应预算分配策略结合到两个领先的缓存压缩方案:SnapKV和PyramidKV中,分别得到了两种适配性压缩方案:Ada-SnapKV和Ada-Pyramid。通过在广泛使用的长序列开源大模型和长文本任务评估基准上的实验,他们证明了所有适配性预算分配增强的压缩方法(Ada-SnapKV和Ada-Pyramid)均优于原有的均匀预算分配压缩方法(SnapKV和Pyramid)。 此外,Ada-KV团队还开发了一种展平的KV缓存管理布局,并定制了CUDA kernel,以实现高效的缓存更新管理。结合Flash Attention技术,该方案在适应性预算分配的情况下,实现了高效推理,并在相同预算下保持了与先前缓存压缩方案一致的计算效率。这表明,Ada-KV不仅能够提升压缩质量,还能够保证推理效率,从而为大模型推理提供更佳的解决方案。

改进KV缓存压缩,大模型推理显存瓶颈迎来新突破——

中科大研究团队提出Ada-KV,通过自适应预算分配算法来优化KV缓存的驱逐过程,以提高推理效率。

打破KV Cache压缩将所有注意力头分配相同压缩预算的常规做法,针对不同的注意力头进行适配性压缩预算分配

展开来说,由于大模型在自回归生成过程中,每生成一个新token都需要将对应的KV矩阵存储下来,这导致缓存随着生成序列长度的增加而急剧膨胀,引发内存和I/O延迟问题,尤其在长序列推理中尤为突出。

因此,KV缓存压缩成为了一项必要的优化。

不过令人头秃的是,现有压缩方法往往在各个注意力头之间平均分配预算,未能考虑其特性差异。

而中科大团队在注意到——不同注意力头关注度存在差异后,对其进行适配性压缩预算分配,通过精细化运作带来更高的压缩质量。

相关研究不仅在学术界引起讨论,更实现了工业界开源落地。

例如,Cloudflare workers AI团队进一步将其改进落地于工业部署常用的vLLM框架中,并发布技术报告,开源全部代码。

KV缓存压缩从均匀性预算分配→适配性预算分配

一开始,Ada-KV团队首先思考:

注意力头间的适配性压缩预算分配是必要的吗?

通过从经验性和理论性两个角度进行分析后,团队的回答是:yes!

经验性分析

Ada-KV团队发现,在大模型中注意力头之间存在着显著不同的关注集中度差异

大部分注意力头关注度集中在少量KV cache上,只需很少的KV cache(例如,1%)就可以几乎收集接近0.9的注意力权重;

而少数注意力头则倾向于分散注意力,往往需要接近50%的KV Cache才能够将注意力权重聚集到0.9。

考虑到如此巨大的关注度集中度的差异,注意力头间的适配性压缩预算分配对于压缩质量的提升有着巨大潜力。

理论性分析

Ada-KV研究团队进一步从压缩输出损失的角度出发,形式化了在不同分配策略下KV Cache压缩对注意力输出的损失影响:

他们基于这一理论提出了一种以注意力权重为基础的自适应分配方案,并发现这种跨注意力头的预算分配策略始终能够降低损失上界。

此外,这一理论上的更低损失上界在实际实验中也展现出更低的注意力输出损失:

理论与实际结果一致验证了这一结论:注意力头间的适配性预算分配能够显著提升KV缓存压缩的效果

通过适配性头间预算分配增强KV Cache压缩质量

作者将Ada-KV这一适配性预算分配策略结合到现有的两个领先的Cache压缩方案:SnapKV和PyramidKV中,分别得到两种适配性压缩方案:Ada-SnapKV和Ada-Pyramid

他们进一步在广泛使用的长序列开源大模型Mistral-7B-Instruct-32KLWM-Text-Chat-1M长文本任务评估基准LongBench上的16个数据集上进行了充分的评估。

实验结果显示,所有适配性预算分配增强的压缩方法(Ada-SnapKV和Ada-Pyramid)全部优于原有的均匀预算分配压缩方法(SnapKV和Pyramid)。


Ada-KV团队在算法实现的同时,也考虑到了执行效率的优化。

他们开发了一种展平的KV Cache管理布局,并定制了CUDA kernel,以实现高效的Cache更新管理。

结合Flash Attention技术,该方案在适应性预算分配的情况下,实现了高效推理,并在相同预算下保持了与先前Cache压缩方案一致的计算效率。

目前,代码已在GitHub上完全开源,助力推动注意力头间适应性压缩预算分配的研究。

Cloudflare推动Ada-KV于工业界部署落地

Cloudflare公司旗下的Workers AI团队针对实际并发服务场景中存在的内存碎片问题,基于Paged Attention重新实现了Ada-KV算法,并将其落地于实际部署使用的推理框架vLLM中。

他们发布了技术报告,对该方案进行了详细评估,同时开源了相关代码,助力Ada-KV在工业界的快速应用和落地。

如果你对后续进展感兴趣,欢迎持续关注~

Ada-KV Paper:
https://arxiv.org/abs/2407.11550
Ada-KV Code:
https://github.com/FFY0/AdaKV
Cloudflare Technical Report:
https://arxiv.org/abs/2410.00161
Cloudflare Code:
https://github.com/IsaacRe/vllm-kvcompress

—  —

投稿请发邮件到:

ai@qbitai.com

标题注明【投稿】,告诉我们:

你是谁,从哪来,投稿内容

附上论文/项目主页链接,以及联系方式哦

我们会(尽量)及时回复你

点这里?关注我,记得标星哦~

一键三连「分享」、「点赞」和「在看」

科技前沿进展日日相见 ~ 

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

KV缓存压缩 Ada-KV 大模型推理 注意力机制 显存优化
相关文章