不同架构模型KV Cache大小计算

MHA模型

kv cache采用BF16存储时,每个token KV cache大小:

layer_num * 2 * head_num * head_dim *2

第一个2是key和value两个张量,第二个2是BF16的dtype大小。

DeepSeek V3.1架构MLA

DeepSeek V3.1架构模型包括DeepSeek V3.1, Kimi-k2全系列,如Kimi-k2.6, k2-thinking等。

kv cache采用BF16存储时,每个token KV cache大小:

layer_num*(512+64)*2

例如DeepSeek V3.1:

61*(512+64)*2 = 68.625 K

Kimi-k2.5/Kimi-k2.6与DeepSeek层数都是61层,区别是MOE部分,因此kv cache容量相同。

DeepSeek V3.2架构MLA + topk indexer

DeepSeek V3.2架构模型包括DeepSeek V3.1,GLM5系列,如GLM5.1.

DeepSeek V3.2与V3.1的区别,除了增加了一个2048 topk的indexer模块,还采用了FP8量化,但是不是所有部分都进行了FP8量化,这使得kv cache计算稍微复杂了一些。当然V32也可以采用BF16存储,只是对推理decode能达到的batch不利。

每个token KV cache大小: layer_num * (656 + (128+4)) = layer_num *788

解释:

FP8量化按128分块,每个分块需要一个FP32的缩放系数,所以每个128对应128xFP8+1xFP32。

head_dim是512+64,512的部分采用FP8,大小是512(FP8) + 512/128*4,而64的部分BF16不量化。indexer部分128采用FP8,大小为128+4。

所以总大小为:512(FP8) + 512/128*4 + 64(BF16)*2 + (128+4)

DeepSeek V3.2的FP8 kv cache大小为:

61*(656 + (128+4)) = 46.942 K

GLM5/GLM5.1与DeepSeek V3.2除了MOE,还有模型层数变大,为78层。因此kv cache大小为

78*788 = 61464 = 60.023 k。

to do: 3:1混合attention,包括MHA+linear, MLA+linear

相关推荐
阿杰学AI7 天前
AI核心知识123—大语言模型之 KV Cache
人工智能·ai·语言模型·自然语言处理·aigc·kv cache·键值缓存
handsomestWei18 天前
KV Cache与vLLM、SGLang推理框架
vllm·推理框架·kv cache·sglang
lin_dec+18 天前
KV Cache:大模型推理加速的关键技术
nlp·transformer·vllm·大模型推理·kv cache
一顿能吃五大海碗啊啊啊1 个月前
大模型推理加速 KV cache
mha·gqa·mqa·kv cache
dawdo2223 个月前
自己动手从头开始编写LLM推理引擎(9)-KV缓存实现和优化
缓存·llm·transformer·qwen·kv cache
被制作时长两年半的个人练习生3 个月前
KV Cache
kv cache
enjoy编程4 个月前
Spring AI 大模型工程核心:效率的极限博弈
注意力机制·flashattention·kv cache·pd分离·pagedattention·epd分离·radixattention
每天都要写算法(努力版)4 个月前
【混合注意力模型的 KV Cache 设计与统一管理实践解析】
llm·vllm·kv cache
爱分享的飘哥9 个月前
第四十六章:AI的“瞬时记忆”与“高效聚焦”:llama.cpp的KV Cache与Attention机制
llama·llama.cpp·kv cache·attention优化·llm cpu推理·量化attention·gguf推理