跳到主要内容
← 返回问题库
concept ●●●○○ #kv-cache#memory-layout#long-context

KV cache 为什么按 layer 切分而不是按 token 切分?

长上下文推理里 KV cache 跨层级管理的最基础问题——能说清这道题,第十六模块前 4 章基本就在掌握中

题目

为什么主流推理引擎(vLLM / TensorRT-LLM / 鲲鹏路线 1)的 KV cache 按 layer 切分而不是按 token 切分?分别从下面三个维度说清楚:

  1. 访存模式:attention 计算里 KV 的访问粒度长什么样
  2. 跨层级管理:放进 HBM/DRAM/RDMA 池/SSD 时,哪种切法更友好
  3. 跨节点共享:PD 解耦推理 / KV cache pool 场景下哪种切法传输效率高

最好能给出一个反例:什么情况下按 token 切分理论上更优?

提示

注意 attention 计算的 dependency:算第 N 层时只需要第 N 层的全部 K/V,不需要其他层的。这条规律决定了访存”自然单元”。

你的答案

解题思路(折叠)

[此处可写完整解答;做题时建议先盖住自己想]

📝 写下你的答案

写完点「AI 检查」会把你的答案和标准答案要点对照——本地存浏览器 localStorage,不会上传。

📚 标准答案要点(点击展开)
 

常见错误

  • 误以为按 token 切分能"按需 evict 旧 token"——实际上 layer 内 evict 旧 token 同样可行
  • 没意识到 prefill / decode 两阶段对 KV 访存模式差异巨大
  • 把"分片粒度"和"驱逐粒度"混淆