📖 什么是 PagedAttention?
PagedAttention 是 vLLM 的核心创新,灵感来自操作系统的虚拟内存分页机制。它解决了 LLM 推理中的内存瓶颈问题。
🎯 解决的问题
传统 KV Cache 的痛点:
- 内存碎片 - 预分配连续内存,大量碎片浪费
- 静态分配 - 无法动态调整,浪费严重
- 无法共享 - 相同前缀无法复用
- 效率低下 - 内存利用率仅 20-40%
⚡ 工作原理
PagedAttention 将 KV Cache 分成固定大小的"页":
┌─────────────────────────────────────┐
│ GPU Memory (Blocks) │
├─────┬─────┬─────┬─────┬─────┬───────┤
│ B0 │ B1 │ B2 │ B3 │ B4 │ ... │
└─────┴─────┴─────┴─────┴─────┴───────┘
↓ ↓ ↓
┌─────┬─────┬─────┐
│ Seq1│ Seq1│ Seq1│ ← 序列1的逻辑块
└─────┴─────┴─────┘
┌─────┬─────┐
│ Seq2│ Seq2│ ← 序列2的逻辑块
└─────┴─────┘📊 核心优势
🔄 内存共享示例
# 两个请求有相同前缀
Request 1: "请翻译以下内容:Hello World"
Request 2: "请翻译以下内容:Good Morning"
# 共享部分
共享前缀: "请翻译以下内容:" → 只存一份
独立部分: "Hello World" / "Good Morning"📈 性能提升
- 吞吐量 - 提升 2-4x
- 内存效率 - 从 20-40% 提升到接近 100%
- 并发能力 - 可服务更多并发请求
- 延迟稳定 - 减少 P99 延迟波动