Appearance
KV缓存与PagedAttention
深入理解 vLLM 的核心创新:PagedAttention 分页 KV 缓存管理,以及相关的 KV cache 块分配、前缀缓存和 KV 缓存卸载。
涵盖内容
| 章节 | 核心主题 |
|---|---|
| 概念 | PagedAttention 原理、块管理、前缀缓存、KV 卸载 |
| 练习 | 块分配模拟、前缀缓存分析 |
| 代码走读 | KVCacheManager、BlockPool、kv_cache_utils 关键代码 |
核心概念
Paged Attention 是 vLLM 的核心创新,借鉴操作系统虚拟内存的分页思想管理 KV Cache:
- 将 KV 缓存划分为固定大小的块(block)
- 按需分配块,避免预分配连续大块显存
- 支持共享块:多个请求可以共享相同前缀的 KV 缓存
- 支持块级交换:将不活跃的块换出到 CPU 内存
前置知识
- 调度系统
- Transformer 注意力机制的基本原理
- GPU 显存管理基础
学习路径
读完本主题后,你将理解:
- PagedAttention 如何实现高效的 KV 缓存管理
- 块的分配、释放和共享机制
- Prefix Caching 如何复用共享前缀的 KV 缓存
- KV 缓存卸载到 CPU/磁盘的分层策略
→ 下一步:执行器与Worker