先给结论
选型看业务阶段与场景。业务探索期需频繁换模型,或追求最大开源生态与活跃社区支持,选 vLLM 作通用推理的默认起点。若是 Agent 应用,存在大量多轮对话、提示词复用,或需高频生成结构化 JSON 数据,选 SGLang。若模型版本固定,团队具备 NVIDIA 栈运维能力,且对单卡延迟与吞吐量有极致追求,选 TensorRT-LLM。三者共同底座均为 KV 缓存管理、连续批处理与量化支持,差异在于缓存结构与编译深度。
逐项对比
| 对比维度 | vLLM | SGLang | TensorRT-LLM |
|---|---|---|---|
| 定位 | 通用 served 推理默认起点 | 结构化生成与前缀复用特化 | 追求极致性能的官方引擎 |
| 强项 | 开源生态最大,模型覆盖最广 | 前缀树缓存复用,前端约束编程 | 编译期内核融合,单卡吞吐天花板最高 |
| 弱项 | 极端延迟与内核级极致优化依赖社区 | 生态与模型覆盖少于通用框架 | 构建链路重,版本强绑定,灵活性低 |
| 典型场景 | 频繁切换模型的通用推理服务 | Agent多轮对话,批量JSON生成 | 固定模型的大规模线上高并发推理 |
| 成本 | 接入成本低,社区资源非常丰富 | 接入成本中等,需要适配前端语法 | 运维成本高,模型编译迭代周期长 |
vLLM 核心是 PagedAttention 分页 KV 缓存与连续批处理。它将内存分页管理,解决碎片。优势在于开源生态最大,新模型发布后第一时间被支持,模型覆盖最广。短板在于极端延迟与内核级极致优化相对滞后,往往依赖社区贡献 kernel 才能追平底层性能差距。
SGLang 采用 RadixAttention 前缀树机制。当多个请求共享系统提示词或历史对话时,能直接复用这部分 KV 缓存,避免重复计算。配合前端约束编程能力,SGLang 在处理 Agent 多轮调用和批量结构化输出时优势明显,不过其生态与模型覆盖面少于 vLLM。
TensorRT-LLM 走重度编译路线。它通过编译期内核融合与量化协同,配合 In-flight batching,换来单卡延迟与吞吐量的最高天花板。但这让部署像造桥一样笨重,每次更新模型需重新编译,且强绑定 NVIDIA 栈,迭代周期长,灵活性偏低。
面试怎么答
遇选型题,先向面试官确认业务阶段与具体场景,问清是探索期或稳定期,是通用对话还是 Agent 场景。确认前提后,按场景抛出结论,说明共同底座技术,最后点出底层差异原因。
常见错误是脱离业务空谈性能,比如直接断言 TensorRT-LLM 最好因为吞吐最高,或认为 vLLM 适用所有场景。不要只背诵名词,必须把技术名词与业务收益对应,例如把 RadixAttention 与 Agent 多轮对话的缓存命中率联系在一起,以此体现真实的工程选型能力。