尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
MLA 的 KV Cache 到底有多大:先把层数、字节和分片算清楚
同样写着“512 维潜变量加 64 维位置分支”有人算出 6.75 KiB/Token有人算出 67.5 KiB/Token。两者相差十倍通常不是算法突然进步了而是层数漏了一位。容量规划里最危险的错误往往发生在单位和统计范围上。MLA 以低维潜在状态保存注意力所需的信息是 DeepSeek-V2 已提出的设计并非 2026 年 10 月才出现的新概念。DeepSeek-V2 原论文先写公式再填配置以一种简化 MLA 缓存布局为例每层为每个 Token 保存潜变量与独立 RoPE Key 分支。若层数为 L两个维度分别为 dc、dr每元素占 b 字节未分片的缓存为KV_bytes L × (dc dr) × b × sequence_length × concurrent_sequences这是教学模型的存储公式。它没有包括页表、对齐、量化缩放因子、额外状态或共享层。真实引擎可能使用不同布局模型配置也不保证所有层完全相同。取 L60、dc512、dr64、FP16 每元素 2 字节单层单 Token 为 1152 B全层为 69120 B也就是 67.5 KiB128 KiToken 的单序列全层缓存为 8.4375 GiB。这里明确使用 1 Ki1024、1 GiB1024³ B避免把十进制 GB 与二进制 GiB 混在一张表里。把计算器写成可检查的代码下面的维度是人为指定的算术样例不代表某个现役模型的完整配置也不是实测显存。保存后用 Python 3 运行。from fractions import Fraction def mla_bytes(layers, dc, dr, element_bytes, tokens, sequences1): args (layers, dc, element_bytes, tokens, sequences) if any(x 0 for x in args) or dr 0: raise ValueError(invalid dimension) return layers * (dc dr) * element_bytes * tokens * sequences per_token mla_bytes(60, 512, 64, 2, 1) full mla_bytes(60, 512, 64, 2, 128 * 1024) assert per_token 69120 assert Fraction(full, 1024 ** 3) Fraction(135, 16) # 仅比较两个假设向量的元素数不是模型能力对比。 saved 1 - Fraction(576, 8192) print(bytes/token:, per_token) print(GiB/sequence:, float(Fraction(full, 1024 ** 3))) print(element reduction %:, float(saved * 100))最后一行得到约 92.97%不是 85.9%。但“8192 个元素变成 576 个元素”只是一组给定维度的比较不能直接拿来宣称某个模型相对另一个模型省了同样比例更不能据此证明精度无损。比较完整 MHA/GQA 缓存时还要把 Key、Value、KV 头数和 head_dim 一起写出来。TP8 不等于一律除以八一种缓存可能按头分片另一种潜在状态可能被复制。还有流水线按层分配、跨层共享以及不同 Attention 后端的差别。没有读引擎布局与分配日志之前直接把总量除以 TP 数会得到一个看似精确、实际无法使用的单卡容量。应当分别记录逻辑全局字节数、每张卡实际保存的状态、物理块取整后的分配量。权重、激活、CUDA Graph 和通信缓冲区另外列账不能把“KV 放得下”写成“模型可以运行”。10 月 7 日 vLLM 对 DeepSeek-V4.1-Flash 的说明已经涉及压缩状态、窗口状态及跨层共享。它提醒我们旧版 MLA 的简化公式不能自动覆盖新模型的全部缓存。vLLM 官方工程说明这份计算器只验证整数与单位未调用 GPU、未加载模型。落地时应从目标 checkpoint 的配置和实际后端入手再用分配日志核对公式。容量数字可以精确到字节前提是每个因子都有明确含义。
RELATED

相关推荐

投机采样为什么能保持同分布:用三个词元把残差算出来

投机采样为什么能保持同分布:用三个词元把残差算出来

“无损加速”最容易被误解成两件事:输出文本逐字不变,或者小模型猜错了也无所谓。随机采样下,真正要保留的是目标模型的输出分布。草稿模型负责提出候选,接受规则和拒绝后的补偿分布共同保证结果;漏掉后半段&#xff0…

📅 2026/10/25 5:24:23
CANN与AIGC:生成式AI部署优化的核心技术解析

CANN与AIGC:生成式AI部署优化的核心技术解析

1. CANN与AIGC:生成式AI部署优化的黄金组合当Stable Diffusion能在1秒内生成高清图像、ChatGPT可以实时响应复杂问答时,背后的秘密武器正是CANN(Compute Architecture for Neural Networks)这类专为AI设计的计算架构。作为华为昇腾…

📅 2026/10/25 5:24:23
正则断言实战:先行与后行断言详解及避坑指南

正则断言实战:先行与后行断言详解及避坑指南

正则表达式里的先行断言和后行断言,是我在代码评审里见得最多、也最容易被误用的两个语法点。很多人写业务正则时,一遇到“匹配但不消耗字符”的需求就卡壳,要么绕一大圈用捕获组加额外判断,要么干脆放弃正则改用字符串截取&#…

📅 2026/10/25 5:19:23
MORE NEWS

更多资讯

📰

RRF 融合后还要不要重排:先画候选召回上限

RRF 能把不同检索通道的排名合到一起,但它不能把没召回的文档变出来。重排器也是一样。很多“换了重排模型还是答错”的问题,实际发生在候选池形成之前。 10 月 8 日,Qdrant 与 Pento 发布了 miniCOIL EN-ES 的双语稀疏检索研究预览&#xf…

📰

199_负载突变下转速环积分饱和的恢复过程设计

从一个反复烧驱动模块的现场说起 几年前做过一台大惯量旋转台的项目,电机通过减速机构拖动一个偏心负载。空载调试一切正常,转速环响应干脆利落。但是一旦把真实负载挂上去,做突加突卸测试,问题就来了:每次负载突然卸掉的瞬间,转速会猛地冲上去,超调大得吓人,紧接着驱…

📰

198_弱磁区电压裕量不足时的电流分配策略调整

一个把母线电压吃干榨净的现场 早年间做一套宽调速范围的永磁同步驱动项目,样机在额定转速以下跑得四平八稳,温升、噪声、效率都在预期内。问题出在往高速推的阶段:转速刚越过基速不久,控制器就开始报母线电压利用率异常,同时相电流波形上出现明显的削顶畸变,转矩输出像…

📰

197_电流环与速度环带宽配比失当引起的振荡现象

前年冬天,有个做卷绕设备的项目找到我。他们的机器在低速运行时一切正常,但产线速度提上去之后,张力就开始周期性波动,幅度越来越大,最后设备自己保护停机。现场工程师换了张力传感器、检查了机械传动、甚至把电机都拆下来重新对中,折腾了快两周,问题依旧。 我到现场之…

📰

196_反电动势谐波对转子位置估算误差的耦合分析

从一次诡异的低速抖动说起 去年冬天调一台无位置传感器永磁同步驱动样机,额定转速三千转,带载运行在中高速区间一切正常。但客户要求必须能稳定运行在百分之五额定转速以下,问题就来了。低速轻载时电机发出周期性的“咯噔咯噔”抖动,电流波形上叠加了明显的六次谐波纹波,…

📰

Agent多Agent框架实战:Router路由器与四种多智能体架构区别说明(TaoToken统一API接入)

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬