什么是 PagedAttention?
PagedAttention 是一种 LLM 服务技术,它像虚拟内存分页一样用固定大小块管理键值缓存显存,以减少浪费和碎片。
工作原理
PagedAttention 因 vLLM 而广为人知,它让 LLM 服务的显存使用更高效。在自回归解码中,每个活跃序列都需要随生成 token 增长的 KV Cache 显存。朴素分配会浪费大量 GPU 显存,因为序列长度不同,预留空间常常过量。PagedAttention 将 KV Cache 拆成块,并把逻辑序列位置映射到物理块,从而实现更灵活的分配、共享和回收。这让内存压力下的更高并发和更好吞吐成为可能。
主要特点
- 用固定大小块管理 KV Cache,而不是大块连续预留
- 减少变长序列造成的显存浪费
- 当 KV Cache 是瓶颈时提升服务并发能力
- 支持连续批处理负载中的高效调度
- 与 vLLM 关系密切,但思想也适用于更广泛的 LLM 服务系统
常见用途
- 在有限 GPU 显存上服务大量并发 LLM 请求
- 减少聊天负载中的 KV Cache 碎片
- 提升长输出生成的吞吐量
- 在生产推理中支持连续批处理
- 评估显存高效的 LLM 服务引擎
示例
loading...
Loading code...常见问题
为什么会出现 KV Cache 显存浪费?
请求序列长度不同,朴素分配可能为每个请求预留超过实际需要的连续显存。
PagedAttention 只属于 vLLM 吗?
它与 vLLM 强相关,但分页式 KV Cache 管理的思想也可启发其他服务系统。
PagedAttention 会提升模型质量吗?
不会。它是服务效率技术,应在保持模型行为不变的同时提升显存利用率和吞吐量。
PagedAttention 什么时候最有价值?
当 GPU 显存和 KV Cache 碎片限制并发或长上下文服务时,它最有价值。