推理篇第12节:TensorRT-LLM(二)——KV Cache与PageAttention优化
KV Cache不是"缓存加速"——它是大模型自回归推理的生存之锚;而PageAttention让它从低效的连续分配进化为灵活的分页管理
前言
上一节我们跑通了TRT-LLM的第一个模型。但你可能注意到了:生成式LLM的推理有一个根本性的"矛盾"——每生成一个新token,模型都需要"回头看一眼"之前所有的token来计算注意力。如果每次都重新计算,复杂度是O(n²);如果全部缓存,显存又随着序列增长线性膨胀。
这正是KV Cache与PageAttention试图解决的问题。理解它们,是理解LLM推理优化的关键。这一节,我们从自回归推理的本质出发,一步步推导出KV Cache的必要性、它的显存瓶颈,以及PageAttention如何用"分块+虚拟映射"的方式优雅地解决这个瓶颈。
一、自回归推理的本质矛盾
1.1 为什么KV Cache必不可少
在自回归(auto-regressive)生成中,每步只输出一个新token。以生成"我 爱 编程"为例:
Step 1: prompt="AI助手:" → 输出 Token_1 计算: Q("AI助手:") × K_all × V_all → output Token_1 Step 2: prompt="AI助手:我" → 输出 Token_2 计算: Q("AI助手:我") × K_all × V_all → o