返回文章
硬件与成本3 分钟阅读

同一模型为什么聊久了更占显存?

模型权重没有变,长对话却更容易触发内存不足。原因之一是生成过程保存的 KV cache。它与上下文长度、模型结构和并发有关,因此硬件预算需要同时考虑“模型多大”和“怎么使用”。

无品牌计算芯片与分层电路、内存模块的概念插画。
AI 生成的编辑插画用于表现文章主题,并非产品截图、研究结果或原始资料照片。
三个月免费开放 · 至 2027 年 1 月 10 日(日本时间),所有文章均可阅读全文。

KV cache 保存注意力计算所需的键和值,以减少生成后续 token 时的重复计算。Hugging Face 的缓存策略文档讨论了不同缓存方案的内存与速度取舍;NVIDIA 的推理文章也把缓存列为资源预算的重要部分。Hugging Face 文档 ↗、NVIDIA 技术文章 ↗

以常见的完整注意力缓存为例,一个简化估算是:

缓存字节数约等于 2 × 层数 × KV 头数 × 每头维度 × token 数 × 并发序列数 × 每元素字节数。

这里的 2 分别对应键和值。假设某个示例模型有 32 层、8 个 KV 头、每头 128 维,保存 4,096 个 token,单序列使用 2 字节数值,算出的缓存约为 512MiB。

在这些假设保持不变时:

  • 上下文变成 8,192 个 token,约为 1GiB。
  • 同时保存四条 4,096-token 序列,约为 2GiB。

这是自拟的数量级算例,未包含缓存分配、缓冲区等开销;滑动窗口、不同注意力结构和缓存量化也会改变结果,不能套用到所有模型。

视觉札记
选中的文档切片携带相邻背景信息,进入透明阅读窗口。
AI 生成的概念插画权重没变,对话仍在增长

试一试

固定模型与量化方式,逐步增加输入长度,记录峰值内存和首字延迟。随后再改变并发。每次只改变一个条件,才容易判断哪项需求推高了内存。

省显存方案也要测速度。把缓存移到其他内存位置,或进一步量化,可能带来新的计算与传输成本。

把原理,切开来看

权重没变,对话仍在增长

  1. 模型权重

    同一份检查点

  2. 更长上下文

    需要关注更多词元

  3. KV 缓存

    保存的注意力状态

编辑示意图缓存需求与模型结构、精度、上下文长度及并发有关。图中表达的是关系,并非实测增长曲线。

读懂之后,再动手试一次。

看看下一篇
这篇文章对你有帮助吗?

无需登录,同一浏览器在不同语言中只计一次。

正在读取点赞…

原始参考资料

这些资料用于核查与继续学习,来源不代表对本刊的背书。

huggingface.co参考原文 1developer.nvidia.com参考原文 2