12. vLLM vs TGI vs TensorRT-LLM vs SGLang 该怎么选?
整理 vLLM、TGI、TensorRT-LLM、SGLang 的选型思路。
简单回答
vLLM 是目前最流行的开源推理框架,PagedAttention + Continuous Batching,社区活跃、模型支持广、API 兼容 OpenAI,适合大部分场景。TGI(Text Generation Inference,HuggingFace 出品)集成简单、与 HuggingFace 生态紧密结合,适合快速部署。TensorRT-LLM(NVIDIA)性能上限最高,针对 NVIDIA GPU 做了深度优化,但配置复杂、灵活性差。SGLang 在结构化生成和复杂 Prompt 编排上有独特优势。选择标准主要看性能需求、运维复杂度、模型兼容性和团队技术栈。
详细解释
vLLM
vLLM 的核心优势前面已经详细讲过了——PagedAttention、Continuous Batching、高效调度。它已经成为开源推理框架的事实标准。
模型支持非常广泛——LLaMA、Qwen、Mistral、DeepSeek、ChatGLM 等主流模型基本都支持。支持量化模型(GPTQ、AWQ、bitsandbytes)。支持 TP 多卡推理。提供 OpenAI 兼容的 API 接口——切换到 vLLM 基本不需要改业务代码。
社区非常活跃,版本迭代快。但也意味着 API 可能在版本间有 breaking change,稳定性需要关注。
适合绝大多数场景,特别是需要高吞吐的在线服务。
TGI(Text Generation Inference)
TGI 是 HuggingFace 推出的推理框架。和 HuggingFace 生态深度集成——用 HuggingFace 的模型格式直接加载,支持 HuggingFace Hub 上的模型,集成 HuggingFace 的 Token 认证。
TGI 也实现了 Continuous Batching、FlashAttention、量化支持等。性能不如 vLLM 极致,但部署简单——Docker 一拉就能跑。支持 HuggingFace 的 Inference Endpoints 一键部署。
适合团队已经重度使用 HuggingFace 生态、需要快速部署不想折腾太多的场景。在性能不是极致追求的场景下完全够用。
TensorRT-LLM
TensorRT-LLM 是 NVIDIA 推出的推理优化框架,在 NVIDIA GPU 上的性能上限最高。它把模型编译成优化的 TensorRT 引擎,利用 NVIDIA 特有的硬件特性(如 FP8 tensor core、kernel fusion)做深度优化。
TensorRT-LLM 的优势在极致性能——在 NVIDIA GPU 上的吞吐量和延迟通常是最好的,特别是在 H100 上结合 FP8 量化。NVIDIA Triton Inference Server 作为 serving 层也提供了成熟的生产级特性。
劣势是使用门槛高。模型需要经过编译(build)过程,配置复杂,出问题调试困难。模型适配需要写额外代码,不像 vLLM 那样加载就能跑。版本兼容性问题比较多。而且只支持 NVIDIA GPU。
适合对性能有极致要求、有专门团队维护推理基础设施、且用 NVIDIA GPU 的场景。
SGLang
SGLang 是一个比较新的框架,核心特色是结构化生成优化和 Prompt 编排。它提供了一种 DSL(Domain Specific Language)来编排复杂的 LLM 调用——包括多轮对话、分支选择、结构化输出约束等。
SGLang 的 RadixAttention 是对 Prefix Caching 的一种高效实现——自动检测和共享不同请求之间的公共前缀 KV Cache。对于有大量相同 System Prompt 的场景(如 Agent 系统),能显著节省 Prefill 开销。
性能上 SGLang 近期发展很快,在某些 benchmark 上已经和 vLLM 相当甚至更好。特别是在结构化输出、JSON Schema 约束生成、以及复杂的 multi-turn 场景下。
适合需要复杂 Prompt 编排、结构化输出、或者 Prefix Caching 收益大的场景。
怎么选
大部分场景的默认选择是 vLLM ——社区最大、模型支持最广、性能够好、API 标准。除非有特殊需求,从 vLLM 开始不会错。
快速部署、不想折腾 ——TGI,Docker 一拉就跑。
极致性能、NVIDIA GPU、有专人维护 ——TensorRT-LLM。
复杂的结构化生成、Prompt 编排 ——SGLang 值得一看。
如果用 AMD GPU ——目前 vLLM 的 ROCm 支持比其他框架好。如果用国产芯片——需要看各框架的适配情况,可能需要特定厂商的推理引擎。
面试时可以这样答
默认选择是 vLLM——社区最大、模型支持最广、PagedAttention 加 Continuous Batching 性能很好、API 兼容 OpenAI。大部分场景从 vLLM 开始不会错。
TGI 适合快速部署和深度 HuggingFace 生态用户。TensorRT-LLM 在 NVIDIA GPU 上性能上限最高,但配置复杂门槛高,适合有专人维护的大型部署。SGLang 在结构化生成和 Prefix Caching 上有独特优势。
选择主要看几个因素:性能需求是否极致(TensorRT-LLM)、运维复杂度承受能力(TGI 最简单,TensorRT-LLM 最复杂)、有没有特殊需求(结构化输出 → SGLang)。一般团队我都建议先用 vLLM 跑起来,有了性能基线后如果发现不够再考虑切换。
常见追问
- vLLM 和 TensorRT-LLM 的性能差距具体有多大?
- 你实际用的是哪个推理框架?遇到过什么问题?
- 这些框架对 MoE 模型的支持情况怎么样?