整体架构

本文档介绍 CacheBlend 系统的整体架构设计,包括核心组件、与 vLLM 的集成方式以及数据流与控制流的详细说明。


3.1.1 CacheBlend 系统组件

CacheBlend 系统由三个主要组件组成:

graph TB subgraph "CacheBlend 系统架构" User["用户查询"] --> Retriever["检索器"] Retriever --> Controller["Loading Controller
加载控制器"] subgraph "KV Cache Store" CPU["CPU RAM"] SSD["SSD"] Disk["Slower Disks"] end Controller --> Store["KV Cache Store
KV缓存存储"] Store --> CPU Store --> SSD Store --> Disk Controller --> Fusor["Fusor
缓存融合器"] Store --> Fusor Fusor --> LLM["LLM 推理引擎"] LLM --> Response["生成响应"] end style Controller fill:#87CEEB style Fusor fill:#90EE90 style Store fill:#FFD700

3.1.2 与 vLLM 的集成

CacheBlend 在 vLLM 之上实现,约 3000 行 Python 代码。集成点包括:

graph TB subgraph "vLLM + CacheBlend 集成" subgraph "vLLM 核心" Engine["LLM Engine"] Executor["Model Executor"] Runner["Model Runner"] end subgraph "CacheBlend 扩展" Meta["cache_fuse_metadata"] OldKV["old_kvs"] Status["temp_status"] end subgraph "修改的模块" LlamaModel["LlamaModel"] LlamaAttn["LlamaAttention"] XFormers["XFormers Backend"] end Engine --> Executor Executor --> Runner Runner --> LlamaModel LlamaModel --> Meta LlamaModel --> OldKV LlamaModel --> Status LlamaAttn --> XFormers end

3.1.3 数据流与控制流

sequenceDiagram participant U as 用户 participant R as 检索器 participant LC as Loading Controller participant KS as KV Cache Store participant F as Fusor participant LLM as LLM Engine U->>R: 1. 提交查询 R->>LC: 2. 返回相关文本块列表 LC->>KS: 3. 查询 KV Cache 是否存在 KS->>LC: 4. 返回 KV Cache 位置信息 LC->>LC: 5. 计算理想重计算比例 LC->>F: 6. 发送重计算比例 LC->>KS: 7. 开始加载 KV Cache 到 GPU loop 每一层 KS->>F: 8. 加载第 i 层 KV F->>F: 9. 执行选择性重计算 end F->>LLM: 10. 提供融合的 KV Cache LLM->>U: 11. 生成并返回响应

下一步: Loading Controller(加载控制器)