困难serving推理系统RadixAttentionSGLang面试高频
RadixAttention(SGLang)相比 vLLM 的 prefix caching 有什么不同?
6 0 0
参考答案
两者都做前缀 KV 复用,但数据结构和复用能力不同。 **vLLM Automatic Prefix Caching**: - 按固定大小的 KV block 做哈希,识别相同前缀的块并复用。 - 主要复用**线性前缀**(请求开头完全相同的一段)。 - 实现相对简单,配合 PagedAttention 的块管理。 **SGLang RadixAttention**: - 用 **radix tree(基数树/压缩前缀树)** 组织所有请求的 KV Cache。 - 树的每条路径代表一个 token 序列,公共前缀自然共享同一条路径(同一批 KV 块)。 - 能复用**树状分支的共享前缀**,不只是线性前缀——非常适合有共同 system prompt 后又分叉的场景、多轮对话、树搜索、并行采样。 - 配合 LRU 淘汰管理树节点。 **优势场景**: - SGLang 在结构化生成、Agent、多轮、复杂前缀共享场景下命中率更高。 - 对 few-shot(多个请求共享同一批示例)等收益明显。 **本质**:RadixAttention 把"前缀共享"从线性升级为树形,用基数树自动发现并最大化所有可能的共享,是 SGLang 的核心特性之一。
讨论区(0)
还没有评论,来做第一个发言的人吧