PagedAttention 可视化 — 传统预分配 vs 分页管理

左:传统预分配 — 连续内存,容量先耗尽 → 请求阻塞。右:PagedAttention — Block 分页,按需分配 → 同等硬件多服务 2× 请求。
请求参数 A = 40 tokens (3 blocks) │ B = 72 tokens (5 blocks) │ C = 20 tokens (2 blocks) │ D = 56 tokens (4 blocks)

传统预分配

请求A 请求B 请求C 请求D 浪费 已释放
为什么不能分散分配?— 无 Block Table 做地址翻译,attention kernel 要求 K/V 在连续内存

利用率

活跃请求

浪费

已释放

PagedAttention

请求A 请求B 请求C 请求D 空闲Block

Block 利用率

活跃请求

空闲 Block
block_size = 16 (vLLM 默认)  |  max_model_len = 128 tokens → 每个请求预分配 8 blocks
1 / 7 键盘 ← → 翻页