vllm与sgLang

一、基本概念

先看kvcache概念:可以看作模型的短期记忆,模型每生成一个新词就疯狂吃gpu显存

1、对于vLLM框架有PagedAttention:按需分配、非连续存储的方式

PagedAttention:把每个请求的 KV Cache 切割成固定大小的“块(Block)”。这些块在物理显存中不需要连续存储,系统只需维护一个“块表(Block Table)”来记录逻辑块与物理块的映射关系。

优势:按需分配、非连续存储,提升显存利用率

2、SGLang有RadixAttention

它引入了一种叫基数树(Radix Tree)的数据结构来管理 KV Cache,在实际业务中(比如多轮对话、少样本学习或思维树搜索),很多请求之间拥有大量相同的前缀,当新的请求进来时,系统会自动识别它是否包含已有的公共前缀。如果有,就直接复用树上已经计算好的 KV Cache,只计算新增的部分。

优势:跨请求的前缀共享机制,消除了大量的重复计算

二、两种框架的最佳使用场景

vllm sglang tensordt-llm区别