苏州炬擎数原科技
Novi Enterprise ↗ 中文 / EN联系我们
← 返回技术 Blog
技术 Blog 2026-10-14 · 次阅读

长上下文在端侧的内存账怎么算:权重与 KV Cache 的估算方法

苏
苏州炬擎数原科技
TorchDigit
长上下文在端侧的内存账怎么算:权重与 KV Cache 的估算方法

端侧部署长上下文,最先撞上的往往不是算力,是内存。算力决定生成快不快,内存决定模型装不装得下、上下文能开多长、同时接几路请求。上下文一长,KV Cache 随长度增长,内存先于算力成为瓶颈,把这两笔账分开算,设备才选得准。

内存由两笔账构成:权重与 KV Cache

设备内存里,模型相关的占用分两块。一块是权重,模型参数本身的存储,量化之后相对固定,不随输入变化。另一块是 KV Cache,推理时为已处理的 token 保留注意力键值,随上下文长度逐位增长,随并发路数成倍叠加。

两笔账的性质不同。权重是一次性占用,装进内存就固定下来;KV Cache 是运行中动态增长,峰值出现在最长上下文、最高并发的时刻。估算设备能否承载,按两笔账的峰值之和算,不按权重的固定值算。

两笔账各自怎么估

两笔账的估算方式各不相同,受影响的变量也不一样。

项 估算方式 受什么影响
权重占用 参数量乘位宽,再除以八,按量化后的位宽计 参数档位与量化位宽
KV Cache 层数乘头数乘头维度乘二,再乘序列长度与并发,按缓存位宽计 上下文长度、并发路数、缓存位宽
运行时与驱动 按平台固定量预留,单独出一项 运行时实现与推理后端

权重那笔账好算,量化方案一定,数字就定了。KV Cache 那笔账跟着业务场景走:上下文开到多长、同时接几路,两个变量一放大,缓存占用按乘积上升。运行时与驱动的固定占用单列一项,估算时不会漏掉。

估算落到具体设备时,把已知的三项先填上:参数档位与量化位宽填权重那一行,层数、头数与头维度填 KV Cache 那一行,系数按缓存位宽对齐。

三项齐了,剩下能动的只有上下文长度与并发路数,占用随这两个变量变化,估出来的是一条随长度上升的曲线,不是一个固定值。

长上下文在端侧的内存账怎么算:权重与 KV Cache 的估算方法

上下文长度与并发怎么共同推高占用

KV Cache 的占用与上下文长度成正比,与并发路数也成正比。两个变量相乘,放大效应比单独看其中任何一个都大。上下文开一倍、并发加一路,缓存占用翻的不是一倍两倍。

业务里的峰值常同时落在两个变量上:一批请求集中到达,每路输入又都是长文档。估算按这个最忙时段取值,把并发路数与最长上下文放在一起算,得出的缓存占用才是设备要留住的量。

分路之后占用更清楚。短任务与长任务分开跑,短任务用小上下文,长任务单独一路,缓存占用各按自己的长度算,总量比全部按最长上下文预留要省。

长上下文在端侧的内存账怎么算:权重与 KV Cache 的估算方法

量化对两笔账的差别

量化对两笔账的作用不一样。权重那笔账,量化直接压位宽,占用随位宽下降,压得动。KV Cache 那笔账,量化要专门对缓存做处理,缓存位宽降下来,占用跟着降,但缓存里的数值对精度更敏感,量化方案要单独校准。

两者的收益不同步。权重从高位宽压到低位宽,省下的是固定占用,一次性兑现。缓存压位宽省下的是动态占用,随上下文长度放大,长上下文下收益更明显。两笔账分别定量化方案,比一套方案套到底更省内存。

两笔账的分工也定下了优化的顺序。内存吃紧时先看权重能不能再压一档,权重压完仍紧的,再动缓存的位宽与分路策略。顺序不反着走:权重先省下的是固定占用,稳住底盘;缓存后调的是动态占用,跟着业务场景走。

怎么留余量

  1. 按峰值预留。按最长上下文与最高并发同时出现的最忙时段取值,不用平均值。
  2. 权重与缓存分开留。权重按固定值加运行时的量留,缓存在峰值基础上往上取一档,给上下文临时增长留空间。
  3. 按场景分路。短任务与长任务分路跑,各自按自己的长度分配缓存,不把最长上下文的占用摊到每一路。

三条原则合起来是一句话:先按峰值算总额,再按场景分路把峰值拆开。设备内存按总额选,运行时的实际占用靠分路压下来,长上下文就落得进设备。

常见问题

问:长上下文要把内存一直留到最大吗?
按业务里的最长上下文与最高并发一起算峰值,再按场景分路把峰值拆开。短任务与长任务分路,各自按自己的长度分配,总额按峰值预留,实际占用由分路压下来。

问:缓存量化会不会影响输出?
缓存量化单独校准,按任务对精度的敏感度定方案。对数值敏感的层缓存保持较高位宽,对数值不敏感的层缓存压位宽,两笔账分开权衡。

问:权重和缓存哪个先省?
先省权重。权重是固定占用,量化一次压下去就兑现;缓存按业务场景调,靠上下文长度与并发的取值把占用控住。两笔账一起算,内存才估得准。

长上下文的内存账,是把权重与 KV Cache 分开算,再加并发倍数。炬擎数原(TORCHDIGIT)在端侧推理链路上提供炬焰推理引擎与端侧模型系列,权重与缓存的分项估算沿这条链路一并落地。以上内容仅供参考。

上一篇 同一模型在 CPU 与 NPU 上输出不一致,按什么顺序排查
下一篇 端侧设备连续运行的稳定性怎么验证:该记哪些日志、记多久

相关阅读