跳转到主要内容

KV Cache Hit Ratio 修正模型:从直觉到统一公式

在固定配置下把 KV prefix hit 映射到 compute、cache load、overlap、TTFT 与 Delivered/Physical TPM

· 约 8 分钟阅读

本文目录

KV prefix hit 同时减少重复计算、增加或复用 cache 读取,并可能改变瓶颈位置。端到端模型不能只把 TTFT 或 TPM 乘一个 1-h;它要把 compute、load、overlap、fixed 与 decode 分开。

30 秒复习
  • 一句话:Hit 的收益取决于省下的 prefill compute 能否覆盖 cache load;Delivered TPM 通过总 chip-time 传导,Physical TPM 还要修正计入的 token 分子。
  • 三个判断:Attention 与逐 token 线性算子缩放不同;load 必须按来源层级和 per-rank bytes 计;Delivered TPM 与 Physical TPM 的分子含义不同。
  • 核心模型:TTFT = T_fixed + T_compute(h) + T_load(h) - α·min(T_compute,T_load),再与 T_decode 合成总 chip-time。
  • 边界:这是固定配置下的一阶敏感性/兼容模型,不替代目标 hit 下的原生仿真、显存重算与候选配置重排;输入缺失时应返回不可比较,而不是补零。

适用边界:固定配置分析,不替代原生重跑

本页适合解释单个既有配置在 hit 变化下的方向、兼容历史上缺少 KV 建模的结果,或作为 native 实现的对照近似。它不证明后处理与仿真可交换:

Correct⁡(Simulate⁡(h=0))≠Simulate⁡(h>0)\operatorname{Correct}(\operatorname{Simulate}(h=0)) \ne \operatorname{Simulate}(h>0)

KV hit 会改变有效 token 数、算子 shape、MoE 通信 payload、显存与 Batch 约束、overlap 关系,并可能改变最优 TP/DP/EP/MoE-TP 配置。因此生产模拟器必须把 hh 作为场景输入,在模型层重新执行算子、通信、显存和候选配置搜索;编排层不应根据 breakdown 展示标签二次推断物理缩放。完整的参数归属与验收规则见模拟器建模指南。

1. 本页接收什么、输出什么

输入至少包括:

  • 连续 prefix 的 token hit ratio hh;
  • 0-hit prefill breakdown;
  • 命中 payload 的驻留层级与 per-rank bytes/token;
  • 有效传输带宽与 overlap 假设;
  • decode chip-time 及 ISL/OSL 口径。

输出是同一 workload identity、同一并行配置、同一可行性边界下的 TTFT 与 TPM 近似修正。它不能用于跨配置重排,也不能复用 0-hit 下已经失效的 Batch 或显存结论。若 hh 是“命中请求比例”而不是“命中 token 比例”,必须先转换,二者不能直接代入同一公式。

2. Compute:按算子作用域缩放

KV Cache Hit 对 Prefill Causal Attention 计算面积的影响

图 1 · 连续 Prefix 命中后的 Causal Attention 区域 性质:计算区域示意。横轴为 Key、纵轴为 Query,均按 token 计;N = 7,H = 0 / 3 / 5,h = H/N。图中的 1 − h² 是连续面积近似,不是 Kernel 实测加速比。来源:本文原图;离散计数与适用条件见下文的面积推导链接。

Dense causal interaction 的剩余区域近似为 1−h21-h^2;完整几何推导及适用条件见 Causal Attention 命中面积。这里直接使用它,不再重复证明。

Attention vs FFN 计算量对比

图 2 · Attention 交互与逐 token 算子的缩放差异 条件:N = 7、H = 4、M = 3,h = 4/7。Attention 离散剩余量为 18/28 ≈ 64.3%;图示约 67% 对应连续近似 1 − h² ≈ 67.3%。FFN 剩余量为 3/7 ≈ 42.9%。来源:本文原图与图中计数;比较的是计算单元比例,不是耗时。

有可用 breakdown 时:

Tcompute(h)=Tattn-interact,0(1−h2)+Ttoken-linear,0(1−h)+Tother,0fother(h)\begin{aligned} T_{\text{compute}}(h) &=T_{\text{attn-interact},0}(1-h^2)\\ &\quad+T_{\text{token-linear},0}(1-h)\\ &\quad+T_{\text{other},0}f_{\text{other}}(h) \end{aligned}
Bucket一阶缩放说明
causal QK/AV interaction1−h21-h^2suffix 仍访问 cached prefix
QKV/O projection、FFN/MoE1−h1-h只为 miss suffix 重算
communication/runtime单独建模可能固定、分段或随 batch 改变
表 1 · 各计算分量的一阶缩放 来源:本节公式。h ∈ [0, 1],缩放因子无量纲;固定模型、workload 和并行配置,区分交互计算与逐 token 计算。这里的比例不是实测时延比例。

若 trace 只给一个混合 “attention” bucket,不能确定其中 projection 与 interaction 的占比。此时应保留区间或校准系数,而不是假装分解精确。

3. Load:命中不等于免费驻留

KV Cache Hit 对 Prefill TTFT 与 TPM 的影响

图 3 · Cache load 与 overlap 对 TTFT / TPM 的影响 性质:归一化趋势示意。时间以 0-hit prefill compute 的 T₀ 为基准,TPM 以 TPM₀ 为基准,均无量纲;h 为 token 命中比例。来源:本文原图,未附完整参数、绘图数据或硬件实测记录;“线上复刻”等图中文字不构成实测证明,曲线不能用于容量承诺。

若命中的 prefix 已在 GPU HBM,额外 transfer 可以接近零;若在 Host、NVMe 或远端 cache,需要加载到执行设备。令 NloadN_{\text{load}} 为本次确实迁移的 hit tokens:

Tload(h)=Nload(h)×Skv/token/rankBeffective/rankT_{\text{load}}(h) =\frac{N_{\text{load}}(h)\times S_{\text{kv/token/rank}}} {B_{\text{effective/rank}}}

简单场景可令 Nload=hNN_{\text{load}}=hN,但共享驻留、局部命中、分层 cache 或压缩传输都会改变它。

MHA/GQA 的 per-rank payload 可从 KV Cache 的全局逻辑公式出发,并按已确认的 TP layout 修正;MLA、CSA/HCA 必须使用各自 schema。不要把全模型 bytes 除以单卡带宽,也不要把理论链路峰值当有效带宽。

4. Overlap 与 TTFT

令 α∈[0,1]\alpha\in[0,1] 表示 load 与可变 compute 的可重叠程度:

Toverlap(h)=αmin⁡ ⁣(Tload(h),Tcompute(h))T_{\text{overlap}}(h) =\alpha\min\!\left( T_{\text{load}}(h), T_{\text{compute}}(h) \right) TTFT⁡(h)=Tfixed+Tload(h)+Tcompute(h)−Toverlap(h)\operatorname{TTFT}(h) =T_{\text{fixed}} +T_{\text{load}}(h) +T_{\text{compute}}(h) -T_{\text{overlap}}(h)
α\alpha解释可变部分
0不重叠的保守复刻Tload+TcomputeT_{\text{load}}+T_{\text{compute}}
1充分重叠的上界max⁡(Tload,Tcompute)\max(T_{\text{load}},T_{\text{compute}})
表 2 · Overlap 假设的两个端点 来源:本节 TTFT 模型。α 无量纲;两项时间须采用相同单位。α = 0 / 1 分别表示不重叠 / 充分重叠假设,实际值需由同一配置的 Trace 或实验校准。

α\alpha 不是硬件常数。它受 chunk、prefetch、scheduler、并发和依赖链影响,应由 trace 或实验校准;配置目标只能标为假设。

5. 从 TTFT 到两种 TPM

设同一规范化请求的:

C(h)=P(h)+DC(h)=P(h)+D
  • P(h)P(h):hit 修正后的 prefill chip-time。
  • DD:decode chip-time。

若 prefix hit 不改变输出长度与 decode 执行,DD 可暂视为固定;若 scheduler、cache contention 或 batch 形态同时变化,必须重测。

口径公式回答的问题
Delivered TPM(ISL+OSL)×60000C(h)\frac{(\mathrm{ISL}+\mathrm{OSL})\times60000}{C(h)}单位 chip-time 向用户交付多少 token?
Physical TPM(ISL(1−h)+OSL)×60000C(h)\frac{(\mathrm{ISL}(1-h)+\mathrm{OSL})\times60000}{C(h)}按“新算 token”口径折算多少 token?
表 3 · Delivered 与 Physical TPM 的记账口径 来源:本节推导。ISL / OSL 以 token 计,C(h) 以 chip·ms 计,结果为 token/(chip·min);60000 用于分钟与毫秒换算。固定请求长度和配置,Physical 口径不等同于 FLOPs 或能耗。

单位要求 C(h)C(h) 使用 chip·ms,结果为 token/(chip·min);若使用 chip·s,分子应为 60。若报告服务总吞吐,需另行明确 GPU 数量和统计窗口。两种分子不可混用:

  • cached input 仍属于用户请求,所以 Delivered TPM 保留完整 ISL。
  • Physical TPM 去掉未重新执行的 prefix token,但它只是 token 记账口径;suffix 对 cached prefix 的 attention 与 cache load 仍消耗硬件,不能把它当能耗或 FLOPs 真值。

高 OSL 或 decode 占比高时,prefill 即使显著缩短,端到端 TPM 增益也会被 DD 稀释。

6. 数据不足时如何退化

若没有算子 breakdown,可用单线性近似:

Tcompute(h)≈(1−h)T0T_{\text{compute}}(h)\approx(1-h)T_0

若进一步假设充分 overlap,并定义全量 cache load 与 0-hit compute 的时间比:

δ=NSkv/token/rankBeffective/rankT0\delta=\frac{N S_{\text{kv/token/rank}}} {B_{\text{effective/rank}}T_0}

则可写成趋势模型:

Θ(h)≈Θ0max⁡(1−h,δh)\Theta(h) \approx\frac{\Theta_0} {\max(1-h,\delta h)}

它只用于说明“compute 下降、load 上升”的交叉点。相比完整模型,它没有显式固定开销、算子差异和 decode,不能用于承诺绝对容量或 SLO。

7. 从 measured hit 修正到 target hit

若压测已经在 hmh_m 下完成,而目标是 hth_t,应使用同一校准模型分别求总 chip-time:

C(h)=P(h)+DC(h)=P(h)+D TPM⁡deliveredt=TPM⁡deliveredm×C(hm)C(ht)\operatorname{TPM}^{t}_{\text{delivered}} =\operatorname{TPM}^{m}_{\text{delivered}} \times\frac{C(h_m)}{C(h_t)}

再按目标 hit 转为 Physical TPM:

TPM⁡physicalt=TPM⁡deliveredt×ISL(1−ht)+OSLISL+OSL\operatorname{TPM}^{t}_{\text{physical}} =\operatorname{TPM}^{t}_{\text{delivered}} \times \frac{\mathrm{ISL}(1-h_t)+\mathrm{OSL}} {\mathrm{ISL}+\mathrm{OSL}}

这个相对修正要求模型、ISL/OSL、并行配置、并发和 cache 层级一致。若这些条件变化,不能把 hit 差异当唯一自变量。

8. 校准与误用检查

在输出结果前确认:

  1. hh 是 token-weighted 连续 prefix hit,还是其他统计?
  2. baseline 是 0-hit,还是已含 measured hit?
  3. attention bucket 是否拆出 projection?
  4. payload 是全局还是 per-rank,是否包含 Scale/对齐?
  5. 命中数据已经在 HBM,还是需要 Host/远端加载?
  6. 有效带宽和 α\alpha 来自实测还是配置假设?
  7. 输出是 Delivered 还是 Physical TPM?
  8. decode 是否确实可视为不变?
  9. 当前用途是固定配置敏感性分析,还是需要重新搜索候选配置?

缺失项应明确标记 missing、unavailable 或 not_comparable。估算值与校准值也应分栏展示。

相关页面