大模型压缩KV缓存新突破,中科大提出自适应预算分配,工业界已落地vLLM框架...

Ada-KV优化KV缓存压缩提升推理效率
部署运行你感兴趣的模型镜像
中科大博士冯源 投稿
量子位 | 公众号 QbitAI

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

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

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

cbb287c23c7648b023f0560c6a362ebd.png

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

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

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

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

e7b50bfc2f0646cfffd4469cd7ad6c4e.png

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

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

90c52dd36cac4af856cf34423bed17fd.png

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

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

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

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

经验性分析

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

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

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

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

e433902176bc9c842e22d4a8bd86c4e3.png

理论性分析

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

242b4dd137b62169ee548e9709f60276.png

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

19835cd81a39224edacbf6b8347a0052.png

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

e9440ba176fa4ab6a2a6094eb6585ecf.png

理论与实际结果一致验证了这一结论:注意力头间的适配性预算分配能够显著提升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)。

a5da87c97c11f9a2bcf0306dd0f09702.png
bab114724e6a6ef7746cafa71bbf1347.png

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

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

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

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

025d7d41f2634fc371b6c25cbe687f88.png

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

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

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

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

8fb8629cd15ce7170444d5a8f42ed33c.png

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

您可能感兴趣的与本文相关的镜像

Vllm-v0.11.0

Vllm-v0.11.0

Vllm

vLLM是伯克利大学LMSYS组织开源的大语言模型高速推理框架,旨在极大地提升实时场景下的语言模型服务的吞吐与内存使用效率。vLLM是一个快速且易于使用的库,用于 LLM 推理和服务,可以和HuggingFace 无缝集成。vLLM利用了全新的注意力算法「PagedAttention」,有效地管理注意力键和值

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值