← 机制演示库 章节知识地图 ↗ / 演示 14 · PagedAttention 分页注意力(自动播放)

PagedAttention · 把 OS 页式内存搬进 GPU

场景:两个请求(A=34 token,B=20 token)同时推理,KV cache 怎么存?传统框架按 max_model_len 连续预分配 → 相对预留长度浪费约 95%;PagedAttention 把 KV cache 切成 16 token/block 的小块按需分配、离散映射(Block Table 逻辑→物理)+ 共享前缀写时复制 → 内碎片压缩到"最后一块装不满"。示意数据:Llama-2-13B,max_model_len=4096,A100-80G。⚠ 本页所有百分比都标注分母——不同分母的数字不能直接相减(见 ⑩)。
1x2x 待播放
阶段
—
A 请求
—
B 请求
—
碎片率
—
问题(连续预分配) → 相对预留浪费 95% → Block Table(逻辑→物理) → 分页按需分配 → 共享前缀 CoW → 内碎片压缩到最后一块
问题
连续预分配
内碎片
95% 浪费
Block Table
逻辑→物理
分页分配
按需离散
共享前缀
写时复制 CoW
碎片率口径
分母不同不可比
光点 = 当前环节 · 三思想:分块 / 离散映射 / 写时复制
KV cache 内存布局(每格 = 1 个 16-token 块)—
传统预分配
Paged·A
Paged·B
共享前缀
🟦 已分配(预留未用)|🟧 实际使用|🟪 共享前缀(A/B 共读)|⬜ 空闲/外部碎片
碎片率对比—
传统预分配(连续空间)—
PagedAttention(分页)—
有效 KV 显存占比从约两三成抬升(分母=总 KV 池),同一张卡并发约 2 倍量级
就绪点 ▶ 播放,看传统预分配如何浪费 95%,分页如何救回来。PagedAttention
⚡ 运行时动作:正在发生什么💡 知识讲解:为什么这么设计
内存日志16 token/block · Block Table 逻辑→物理
AI 工程小册 · 机制演示库 · 演示 14 PagedAttention 分页注意力(自动播放机制动画)
← 返回演示库