文章摘要
当你需要把一个大语言模型部署成可以对外服务的 API,第一个要做的选型不是'用哪家云',而是'用哪个推理引擎'。vLLM、TensorRT-LLM、SGLang 是当前最主流的三大开源 LLM 推理引擎,它们在架构设计、性能特征、硬件支持和运维复杂度上有根本差异。本文从工作负载特征出发,给出清晰的选型决策框架,基于 2026 年实测数据量化吞吐、延迟和成本差异,并覆盖量化策略、自动扩缩容、监控指标等工程实践。
1问题场景:为什么推理引擎选型如此重要
想象一个具体场景:你的团队训练好了一个 Llama 3.3 70B 模型,准备对外提供 API 服务。你找了一台 H100 GPU,装上推理框架,启动服务,开始接收请求。第一个月运行良好,但到了第二个月,用户量翻倍,你发现响应越来越慢、GPU 显存频繁爆满、每次换模型版本都要停机半小时。
这些问题都不是模型本身的问题,而是推理引擎选型或配置不当的问题。
推理引擎(Inference Engine)是把训练好的模型权重变成实际 token 输出的运行时软件。它决定了:
- 同样的 GPU 能服务多少并发请求(吞吐)
- 用户发出请求后多久看到第一个字(首 token 延迟)
- 换模型版本需要停机多久(冷启动时间)
- 每百万 token 花多少钱(单 token 成本)
选型错误的代价:选错引擎可能导致同样的硬件吞吐低 20%、延迟高 30%、运维成本翻倍。在大规模部署下,这些差异会转化为每月数千甚至数万美元的成本差距。
本文的目标读者:需要把 LLM 部署成生产服务的工程师、架构师或技术负责人。你不需要是推理优化专家,但需要了解不同引擎的架构权衡,做出符合自己工作负载特征的选型决策。
本文不会做什么:不会罗列所有推理引擎的功能清单,不会逐行对比 API 参数,不会深入 CUDA 内核实现。我们聚焦在"你的工作负载适合哪个引擎"这个决策问题上。
2三大引擎的架构哲学:PagedAttention vs 编译优化 vs 前缀缓存
vLLM、TensorRT-LLM、SGLang 这三个引擎的核心差异不在功能列表,而在架构哲学。 理解它们各自押注的优化方向,才能理解为什么在不同场景下性能差异这么大。
2.1 vLLM:以内存管理为核心的通用优化器
vLLM 的核心创新是 PagedAttention——借鉴操作系统虚拟内存的分页思想,把 KV Cache(推理过程中缓存的注意力键值对,避免重复计算)切成固定大小的"页",按需分配、非连续存储。
为什么这很重要:KV Cache 是推理中最消耗显存的组件之一。传统方式需要为每个请求预分配最大长度的连续显存,导致大量碎片和浪费。PagedAttention 把浪费从 60-80% 降到 4% 以下,意味着同样的 GPU 显存可以服务更多并发请求,直接转化为更高的吞吐和更低的单 token 成本。
vLLM 的设计哲学是"通用优化器"——通过优秀的内存管理让任何模型、任何硬件都能高效运行。它不假设你的工作负载有什么特殊模式,而是提供稳定的 baseline 性能。
硬件支持:vLLM 基于 PyTorch 构建,天然支持多种硬件后端——NVIDIA CUDA、AMD ROCm、Intel GPU、Google TPU、AWS Neuron。2025 年 5 月 vLLM 加入 PyTorch Foundation,社区活跃度进一步提升,目前 GitHub 超过 46,500 stars,贡献者超过 1,000 人。
2.2 TensorRT-LLM:以编译优化为核心的专用优化器
TensorRT-LLM 的核心创新是提前编译(Ahead-of-Time Compilation)——在部署前把模型编译成针对特定 GPU 型号、特定批处理大小、特定序列长度优化的内核图(kernel graph)。
为什么这很重要:编译后的内核图消除了运行时的动态调度开销,在 GPU 高负载(高 batch occupancy)时效率最高。实测数据显示,在 100 并发请求下,TensorRT-LLM 的吞吐比 vLLM 高 16%,首 token 延迟低 12%。
代价是什么:
- 编译时间长:首次编译一个 70B 模型的 FP8 引擎需要约 28 分钟。
- 硬件绑定:只支持 NVIDIA GPU(Ampere、Hopper、Blackwell 架构),没有 AMD、TPU 或 CPU 路径。
- 配置绑定:编译后的引擎针对特定的批处理大小和序列长度优化,改变配置需要重新编译。
TensorRT-LLM 的设计哲学是"专用优化器"——通过编译时优化榨干特定硬件的每一滴性能。它假设你知道自己要部署什么模型、在什么硬件上、跑什么负载,然后针对这个配置做极致优化。
注意:TensorRT-LLM v1.0 之后引入了 PyTorch 后端(现在是默认),可以直接加载 Hugging Face 权重,跳过编译步骤。这降低了入门门槛,但峰值吞吐比编译引擎路径低 5-10%。
2.3 SGLang:以结构化生成为核心的场景优化器
SGLang(Structured Generation Language)的核心创新是 RadixAttention——把 KV Cache 组织成基数树(Radix Tree)结构,自动识别和缓存共享的前缀。
为什么这很重要:很多 LLM 应用有大量前缀复用——多轮对话共享历史上下文、RAG 应用共享检索文档、Agent 工作流共享系统提示。传统引擎对每个请求都重新计算完整 KV Cache,SGLang 只计算一次共享前缀,后续请求直接复用。
典型场景:一个客服机器人有 2000 token 的系统提示词,每天处理 10 万个请求。用 vLLM 或 TensorRT-LLM,每个请求都要重新计算系统提示词的 KV Cache。用 SGLang,系统提示词的 KV Cache 只计算一次,后续请求直接复用,节省大量计算。
SGLang 的设计哲学是"结构化优化器"——通过识别工作负载中的结构模式(前缀共享、多轮上下文)来消除重复计算。它假设你的应用有可预测的复用模式,并利用这些模式加速。
适用场景:
- 多轮对话(每轮共享历史上下文)
- RAG 应用(多个查询共享相同的检索文档)
- Agent 工作流(多个步骤共享系统提示和工具定义)
- 少样本学习(多个请求共享相同的示例)
2.4 三种设计哲学小结
| 引擎 | 核心机制 | 设计哲学 | 硬件支持 | 适用场景 |
|---|---|---|---|---|
| vLLM | PagedAttention | 通用优化器 | NVIDIA/AMD/TPU/Neuron | 多模型、快速迭代、混合硬件 |
| TensorRT-LLM | 提前编译 | 专用优化器 | NVIDIA only | 单一模型、长期稳定、极致性能 |
| SGLang | RadixAttention | 结构化优化器 | NVIDIA 为主 | 多轮对话、RAG、Agent |
这三种哲学没有绝对优劣,关键在于匹配你的实际场景。
3选型决策框架:你的工作负载适合哪个引擎
引擎选型不是"哪个最好"的问题,而是"哪个最适合你的场景"的问题。 这一章给你一个清晰的决策框架,帮助你根据自己的工作负载特征、硬件环境、团队能力和运维模式做出选择。
3.1 决策维度一:硬件环境
第一个要问的问题:你的 GPU 是什么品牌?未来会不会变?
全 NVIDIA 环境:vLLM、TensorRT-LLM、SGLang 都可以。如果你确定未来 12 个月不会引入 AMD 或其他硬件,三个引擎都在考虑范围内。
混合硬件或可能引入 AMD:只能选 vLLM。TensorRT-LLM 是 NVIDIA 专用,没有 ROCm 支持路径。SGLang 目前也以 NVIDIA 为主,AMD 支持不如 vLLM 成熟。
为什么这很重要:很多团队现在全用 NVIDIA,但 12-18 个月后可能因为成本、供应或性能原因引入 AMD MI300X。如果你选了 TensorRT-LLM,到时候要整体迁移;如果一开始就用 vLLM,迁移成本几乎为零。
决策规则:
3.2 决策维度二:模型稳定性
第二个关键问题:你的模型多久换一次?
模型稳定,几个月甚至一年不换:TensorRT-LLM 的编译成本可以摊薄。28 分钟的编译时间分摊到几个月的运行中,几乎可以忽略。你可以享受编译优化带来的 8-16% 吞吐提升和对应的成本下降。
模型频繁更新,每周甚至每天都有新版本:vLLM 更合适。每次模型更新都要重新编译 TensorRT-LLM 引擎,28 分钟的编译时间在频繁更新场景下会变成持续的运维负担。vLLM 加载模型只需 62 秒,模型切换几乎无感。
多模型并行运行:vLLM 是唯一合理选择。如果你同时运行 5-10 个不同模型(比如不同任务用不同大小的模型),TensorRT-LLM 要为每个模型编译引擎,运维复杂度会爆炸。
决策规则:
- 单一模型,稳定运行 3 个月以上 → TensorRT-LLM 有优势
- 模型每月或更频繁更新 → vLLM
- 多模型并行 → vLLM
3.3 决策维度三:工作负载特征
第三个问题:你的请求模式是什么样的?
高并发、长输出:比如批量处理 1000 个文档摘要任务,每个输出 2000 token。这种场景下 TensorRT-LLM 的编译优化优势最大,高并发时吞吐领先 13-16%,单 token 成本低 12%。
低并发、交互式:比如客服机器人,同时只有 5-10 个用户对话。这种场景下 vLLM 和 TensorRT-LLM 的性能差距很小(个位数百分比),vLLM 的易用性优势更值得考虑。
大量前缀复用:比如 RAG 应用(所有请求共享检索文档)、多轮对话(每轮共享历史)、Agent 工作流(多步共享系统提示)。这种场景下 SGLang 的 RadixAttention 可以带来显著的吞吐提升,是明显的最优选择。
决策规则:
- 高并发(50+ 并发请求)+ 单一模型 → TensorRT-LLM
- 低中并发(< 20 并发)+ 快速迭代 → vLLM
- 大量前缀复用(RAG/多轮/Agent) → SGLang
3.4 决策维度四:团队能力与运维模式
最后一个问题:你的团队有什么能力?运维模式是什么?
小团队、快速迭代、DevOps 能力有限:vLLM。安装简单(一个 Docker 命令),配置少,社区活跃,遇到问题容易找到答案。不需要维护编译流水线,不需要理解 TensorRT 的量化细节。
大团队、有 MLOps 能力、追求极致性能:TensorRT-LLM。可以投入工程资源建立编译流水线,理解量化和内核优化的细节,愿意为 10-15% 的性能提升付出运维成本。
特定场景(Agent/RAG/多轮对话):SGLang。如果你的应用有明显的结构化特征,SGLang 的前缀缓存可以带来显著收益,值得学习和投入。
3.5 综合决策树
把四个维度综合起来,决策树如下:
第一步:硬件检查
- 混合硬件或可能引入 AMD → 选 vLLM,结束
- 全 NVIDIA → 进入第二步
第二步:模型稳定性
第三步:工作负载特征
- 大量前缀复用(RAG/多轮/Agent) → 选 SGLang,结束
- 高并发(50+)或低中并发 → 进入第四步
第四步:团队能力
- 小团队、快速迭代 → 选 vLLM
- 大团队、MLOps 成熟、追求极致 → 选 TensorRT-LLM
这个决策树覆盖了 80% 的场景。剩下 20% 的边界情况(比如超高并发但模型频繁更新),需要在具体场景中权衡,但大多数团队可以用这个框架快速定位。
| 决策维度 | 选 vLLM | 选 TensorRT-LLM | 选 SGLang |
|---|---|---|---|
硬件环境 | 混合或可能引入 AMD | 全 NVIDIA 且确定不变 | 全 NVIDIA |
模型稳定性 | 频繁更新或多模型 | 单一模型稳定 3 个月+ | 单一模型 |
工作负载 | 通用场景 | 高并发(50+) | 大量前缀复用 |
团队能力 | 小团队、快速迭代 | 大团队、MLOps 成熟 | 特定场景(Agent/RAG) |
4性能对比:基于实测数据的权衡分析
选型框架告诉你"怎么选",性能数据告诉你"选完之后能得到什么"。 这一章基于 Spheron 2026 年 8 月在 H100 SXM5 80GB 上的实测数据(模型 Llama 3.3 70B FP8),量化三个引擎在不同并发度下的性能差异。
4.1 吞吐对比
测试条件:单卡 H100 SXM5 80GB,模型 Llama 3.3 70B FP8,vLLM v0.18.0,TensorRT-LLM v1.2.0 编译引擎,200 个请求(平均输入 512 token,平均输出 256 token)。
| 并发数 | vLLM (tok/s) | TensorRT-LLM (tok/s) | TRT-LLM 优势 |
|---|---|---|---|
| 1 | 120 | 130 | +8% |
| 10 | 650 | 710 | +9% |
| 50 | 1,850 | 2,100 | +13% |
| 100 | 2,400 | 2,780 | +16% |
关键观察:
- 低并发差距小:单请求时 TensorRT-LLM 只快 8%,这个差距在很多场景下可以忽略。
- 高并发差距大:100 并发时差距拉到 16%,这是编译优化在高 batch occupancy 下的优势——内核图在高负载时调度效率更高。
- SGLang 未参与对比:SGLang 的优势在前缀复用场景,通用吞吐测试中不是它的强项。
实际意义:如果你的服务长期运行在 50+ 并发,TensorRT-LLM 的 13-16% 吞吐提升意味着同样的 GPU 可以服务更多请求,或者同样的请求需要更少的 GPU,直接转化为成本节省。
4.2 首 token 延迟(TTFT)对比
TTFT(Time to First Token) 是用户实际感受到的"响应速度"——从发送请求到看到第一个字的时间。
| 并发数 | vLLM p95 (ms) | TensorRT-LLM p95 (ms) | 差距 |
|---|---|---|---|
| 1 | 68 | 55 | -19% |
| 10 | 195 | 170 | -13% |
| 50 | 720 | 620 | -14% |
| 100 | 1,450 | 1,280 | -12% |
关键观察:
- TensorRT-LLM 延迟更低:在所有并发度下 TTFT p95 都低 12-19%,用户感知更"快"。
- 低并发差距小:单请求时差距只有 13ms,用户几乎感觉不到。
- 高并发差距明显:100 并发时差距 170ms,在交互式聊天产品中用户可以感知到差异。
实际意义:如果你的产品是面向用户的交互式应用(聊天、客服、助手),TTFT 直接影响用户体验。TensorRT-LLM 在延迟上有稳定优势,但如果你很少跑到 50+ 并发,这个优势不值得额外的运维成本。
4.3 冷启动时间对比
冷启动时间是从容器启动到可以处理第一个请求的时间。
| 引擎 | 冷启动时间 | 说明 |
|---|---|---|
| vLLM | ~62 秒 | 加载权重即可服务 |
| TensorRT-LLM(编译引擎) | ~28 分钟(首次)+ 90 秒(后续) | 首次需要编译,编译后复用 |
| TensorRT-LLM(PyTorch 后端) | ~90 秒 | 跳过编译,性能略降 |
| SGLang | ~70 秒 | 与 vLLM 接近 |
关键观察:
- vLLM 冷启动最快:62 秒,适合自动扩缩容、蓝绿部署、快速迭代。
- TensorRT-LLM 编译引擎冷启动慢:28 分钟的首次编译是一次性成本,但每次模型更新都要重新编译。
- TensorRT-LLM PyTorch 后端是折中:跳过编译,冷启动 90 秒,但峰值吞吐比编译引擎低 5-10%。
实际意义:
- 如果你需要自动扩缩容(根据流量自动增减 GPU 实例),vLLM 的 62 秒冷启动意味着扩容更快响应。
- 如果你需要蓝绿部署(新旧版本并行运行,无缝切换),TensorRT-LLM 的 28 分钟编译会让部署流程复杂化。
- 如果你模型稳定、不需要频繁扩缩容,TensorRT-LLM 的编译成本可以接受。
4.4 单 token 成本对比
单 token 成本 = GPU 每小时成本 / (吞吐 token/s × 3600) × 1,000,000。
以 Spheron H100 SXM5 按需价格 $5.01/小时为例,50 并发下的吞吐数据:
| 引擎 | 吞吐(50 并发) | GPU 成本 | 单百万 token 成本 |
|---|---|---|---|
| vLLM | 1,850 tok/s | $5.01/hr | $0.75 |
| TensorRT-LLM | 2,100 tok/s | $5.01/hr | $0.66 |
关键观察:
- TensorRT-LLM 成本低 12%:同样的 GPU,TensorRT-LLM 每百万 token 便宜 $0.09。
- 成本差距随并发增加:100 并发时 TensorRT-LLM 吞吐优势拉到 16%,成本差距更大。
- 低并发差距小:10 并发以下时,成本差距只有个位数百分比。
实际意义:
- 如果你的服务长期运行在高并发(50+),TensorRT-LLM 的 12% 成本节省在大规模下很可观。假设你每月 GPU 成本 $10,000,TensorRT-LLM 可以节省 $1,200/月。
- 如果你的服务并发波动大或长期低于 20,成本差距很小,vLLM 的易用性更值得考虑。
4.5 性能对比小结
| 指标 | vLLM | TensorRT-LLM | SGLang |
|---|---|---|---|
| 吞吐(高并发) | 基准 | +13-16% | 未测试(通用场景) |
| TTFT p95(100 并发) | 1,450 ms | 1,280 ms | 未测试 |
| 冷启动 | 62 秒 | 28 分钟(首次) | 70 秒 |
| 单 token 成本(50 并发) | $0.75/M | $0.66/M | 未测试 |
核心权衡:TensorRT-LLM 用运维复杂度换 10-16% 的性能提升。这个权衡是否值得,取决于你的并发水平、模型稳定性和团队能力。
5工程实践:部署与运维的关键决策
选定引擎只是第一步,部署和运维中的工程决策同样影响最终效果。 这一章覆盖三个关键实践:量化策略、自动扩缩容和监控指标。
5.1 量化策略:FP8 vs INT8 vs INT4
量化是把模型权重从高精度(FP16/BF16)转成低精度(FP8/INT8/INT4),用精度损失换显存节省和速度提升。
FP8(8 位浮点):
- 精度损失:< 1%,几乎无损
- 显存节省:约 50%(相比 FP16)
- 速度提升:1.5-2x
- 适用场景:生产环境首选,精度和性能的最佳平衡点
- 引擎支持:vLLM 和 TensorRT-LLM 都原生支持
INT8(8 位整数):
- 精度损失:1-3%,轻微
- 显存节省:约 50%
- 速度提升:1.5-2x
- 适用场景:对精度要求不高的场景,或 FP8 不可用时的替代
- 引擎支持:vLLM 和 TensorRT-LLM 都支持
INT4(4 位整数):
- 精度损失:3-8%,明显
- 显存节省:约 75%
- 速度提升:2-3x
- 适用场景:显存极度紧张,或可以接受明显精度损失的场景
- 引擎支持:vLLM 和 TensorRT-LLM 都支持,但 TensorRT-LLM 的 INT4 优化更成熟
决策建议:
- 生产环境首选 FP8:精度损失最小,性能提升显著,是当前生产环境的最佳实践。
- 显存紧张时考虑 INT4:如果模型太大,FP8 仍然超出显存,可以试 INT4,但要充分测试精度。
- 避免在关键任务上用 INT4:医疗、法律、金融等对精度要求高的场景,不要用 INT4。
5.2 自动扩缩容策略
自动扩缩容是根据流量自动增减 GPU 实例,优化成本和响应速度。
vLLM 的扩缩容优势:
- 冷启动 62 秒,扩容响应快
- 不需要编译步骤,新实例启动即可服务
- 适合流量波动大的场景(电商促销、新闻热点)
TensorRT-LLM 的扩缩容挑战:
- 编译引擎冷启动 28 分钟(首次),扩容慢
- 解决方案:预编译引擎镜像,新实例加载预编译引擎只需 90 秒
- 或者使用 PyTorch 后端,冷启动 90 秒,但性能略降
扩缩容决策:
- 流量波动大、需要快速扩容:vLLM,或 TensorRT-LLM PyTorch 后端
- 流量稳定、可预测:TensorRT-LLM 编译引擎,预编译镜像可以解决冷启动问题
- 混合策略:基础负载用 TensorRT-LLM 编译引擎(成本最优),峰值负载用 vLLM 快速扩容
5.3 监控指标:判断引擎是否运行正常
关键监控指标:
- 吞吐(tokens/s):实际处理的 token 数。如果低于预期,可能是批处理配置不当或 GPU 利用率低。
- TTFT p95(首 token 延迟 95 分位):用户体验指标。如果 p95 超过 2 秒,用户会感到"卡顿"。
- GPU 利用率:应该长期在 70-90%。低于 60% 说明批处理配置不当;高于 95% 说明接近饱和,需要扩容。
- 显存使用率:应该稳定在 80-90%。突然上升可能是 KV Cache 泄漏;长期低于 70% 说明可以服务更多并发。
- 请求队列长度:如果队列持续增长,说明吞吐不足,需要扩容或优化批处理。
告警阈值建议:
- TTFT p95 > 2000 ms:告警,用户体验下降
- GPU 利用率 < 60% 持续 5 分钟:告警,可能是配置问题
- 显存使用率 > 95%:告警,接近 OOM(Out of Memory)
- 请求队列长度 > 100:告警,需要扩容
5.4 常见陷阱与规避
陷阱 1:忽视批处理配置
- 问题:默认批处理配置可能不适合你的工作负载,导致吞吐低或延迟高。
- 规避:根据你的并发水平和请求长度调整 max_batch_size 和 max_num_seqs 参数。
陷阱 2:过度量化
- 问题:为了省显存用 INT4,结果精度损失严重,业务指标下降。
- 规避:先在测试集上评估不同量化方案的精度,选择精度损失 < 2% 的方案。
陷阱 3:忽视 KV Cache 管理
- 问题:长上下文场景下 KV Cache 占用过多显存,导致并发能力下降。
- 规避:启用 PagedAttention(vLLM 默认启用),设置合理的 max_model_len 限制。
陷阱 4:盲目追求高吞吐
- 问题:为了最大化吞吐,把批处理设得很大,结果 TTFT 飙升,用户体验差。
- 规避:吞吐和延迟要平衡。根据 SLA 设定 TTFT 上限,在满足延迟要求的前提下最大化吞吐。
6边界与局限:引擎选型不是万能药
引擎选型可以带来 10-20% 的性能提升,但它不是推理优化的全部。 这一章明确引擎选型的边界,避免过度依赖引擎而忽视其他优化手段。
6.1 引擎选型的局限性
局限 1:引擎无法弥补模型本身的低效
- 如果模型架构本身计算量大(比如超大稠密模型),换引擎只能优化 10-20%,无法根本解决问题。
- 更好的方案:考虑模型架构优化,比如用 MoE(Mixture of Experts)替代稠密模型,或用蒸馏减小模型规模。
局限 2:引擎无法解决硬件瓶颈
- 如果 GPU 显存不足、互联带宽低,引擎再优化也跑不起来。
- 更好的方案:先解决硬件瓶颈,比如升级到更大显存的 GPU,或优化节点间互联。
局限 3:引擎优化有上限
- 引擎优化主要在内存管理和调度层面,无法改变 Transformer 架构本身的计算复杂度。
- 更好的方案:结合其他推理优化技术,比如推测解码(Speculative Decoding,可以提升 2-5x 速度)、模型剪枝、知识蒸馏。
6.2 引擎选型之外的优化手段
优化 1:推测解码(Speculative Decoding)
- 原理:用小模型快速生成草稿,大模型验证,加速 2-5x。
- 适用场景:对延迟敏感的场景,可以和任何引擎组合使用。
优化 2:模型架构优化
- MoE(Mixture of Experts):只激活部分参数,计算量大幅减少。比如 Mixtral 8x7B 总参数 46.7B,但每个 token 只激活 12.9B。
- 蒸馏(Distillation):用大模型教小模型,小模型性能接近大模型但速度快很多。
优化 3:硬件优化
- GPU 选型:不同 GPU 的性价比差异很大。H100 性能最强但贵,L40S 性价比高但性能弱。
- 多卡并行:张量并行(Tensor Parallelism)可以把大模型分到多卡,提升吞吐。
6.3 引擎选型的决策边界
什么时候引擎选型不是最重要的:
- 模型太大,单卡放不下:先解决模型并行问题,引擎选型是次要的。
- 延迟要求极高(< 100ms):引擎优化的 10-20% 不够,需要推测解码 + 模型蒸馏 + 硬件优化的组合。
- 成本极度敏感:引擎优化带来的成本节省有限,考虑用更小模型或 spot 实例。
什么时候引擎选型是关键:
- 模型可以放下,但吞吐不够:引擎选型可以带来 10-20% 吞吐提升,是关键优化手段。
- 多模型并行,运维复杂:选 vLLM 可以大幅简化运维。
- 高并发场景,成本敏感:TensorRT-LLM 的 12% 成本节省在大规模下很可观。
6.4 长期视角:引擎生态的演进
vLLM 的演进方向:
- 2025 年 5 月加入 PyTorch Foundation,社区活跃度进一步提升。
- 硬件支持持续扩展,AMD ROCm、Intel、TPU、AWS Neuron 都在官方支持路线图上。
- 未来可能整合更多推理优化技术(推测解码、前缀缓存)到核心引擎。
TensorRT-LLM 的演进方向:
- v1.0 引入 PyTorch 后端,降低编译门槛,吸引更广泛用户。
- 持续优化 NVIDIA 最新硬件(Blackwell、Grace Hopper)。
- 可能进一步整合 NVIDIA 生态(Triton Inference Server、NIM)。
SGLang 的演进方向:
- 专注结构化生成和 Agent 场景,RadixAttention 持续优化。
- 可能扩展更多硬件支持,但目前以 NVIDIA 为主。
选型建议:引擎选型不是一次性决策,要关注生态演进。vLLM 的社区驱动和硬件中立性让它长期风险更低;TensorRT-LLM 的 NVIDIA 绑定在纯 NVIDIA 环境下性能最优,但有生态锁定风险。
7选型决策清单:从评估到落地的完整路径
最后一章给你一个可执行的清单,从评估到落地,确保选型决策不遗漏关键因素。
7.1 评估阶段(1-2 周)
步骤 1:明确工作负载特征
- 统计典型并发水平(p50、p95、p99)
- 统计请求长度分布(输入、输出 token 数)
- 识别是否有前缀复用(系统提示、多轮历史、共享文档)
- 确定模型更新频率(每周/每月/每季度)
步骤 2:明确硬件环境
- 当前 GPU 型号和数量
- 未来 12 个月硬件规划(是否可能引入 AMD 或其他硬件)
- 是否需要自动扩缩容
步骤 3:明确团队能力
- 团队规模(小团队 < 5 人 / 大团队 > 10 人)
- MLOps 成熟度(是否有编译流水线、自动化部署经验)
- 对推理优化的投入意愿(愿意为 10% 性能提升付出多少运维成本)
7.2 测试阶段(2-4 周)
步骤 4:搭建测试环境
- 准备代表性测试数据集(覆盖典型请求模式)
- 准备测试脚本(模拟真实并发和请求长度)
- 准备监控工具(Prometheus + Grafana 或类似方案)
步骤 5:基准测试
- 测试 vLLM:吞吐、TTFT p95、冷启动时间、显存占用
- 测试 TensorRT-LLM:同上(编译引擎和 PyTorch 后端都测)
- 测试 SGLang:同上(如果有前缀复用场景,重点测前缀缓存命中率)
步骤 6:成本分析
- 计算每个引擎的单 token 成本(GPU 成本 / 吞吐)
- 计算运维成本(编译时间、部署复杂度、故障恢复时间)
- 综合评估 TCO(Total Cost of Ownership)
7.3 决策阶段(1 周)
步骤 7:应用决策树
- 按硬件、模型稳定性、工作负载、团队能力四个维度打分
- 确定首选引擎和备选引擎
- 记录决策理由,便于后续复盘
步骤 8:风险评估
- 评估首选引擎的长期风险(生态锁定、硬件绑定、社区活跃度)
- 制定迁移预案(如果首选引擎不合适,迁移到备选引擎的成本)
7.4 落地阶段(2-4 周)
步骤 9:小规模试点
- 选择 1-2 个非关键业务试点
- 部署首选引擎,监控关键指标
- 收集反馈,调优配置
步骤 10:全量部署
- 制定迁移计划(灰度发布、回滚预案)
- 全量部署,监控关键指标
- 建立运维手册(常见问题、故障恢复、扩缩容策略)
7.5 持续优化
步骤 11:定期复盘
- 每季度复盘引擎性能、成本、运维复杂度
- 关注引擎版本更新和新特性
- 评估是否需要调整选型
步骤 12:持续学习
- 关注社区动态(GitHub、Discord、博客)
- 参与社区讨论,反馈问题和需求
- 学习其他团队的实践经验
7.6 小结
引擎选型是一个多维权衡问题,没有绝对最优解。关键是理解你的工作负载特征、硬件环境、团队能力,然后用决策框架找到最适合的方案。
记住三个核心原则:
- 先理解需求,再选引擎:不要为了用某个引擎而用,要从需求出发。
- 量化权衡,不要凭感觉:用基准测试数据说话,不要凭印象或口碑。
- 保持灵活性:引擎选型不是一次性决策,要根据业务变化和引擎演进而调整。
选对引擎可以带来 10-20% 的性能提升和成本节省,但它只是推理优化的一部分。结合推测解码、模型架构优化、硬件优化等手段,才能构建真正高效的 LLM 推理系统。
8参考资料
- vLLM vs TensorRT-LLM 2026: Faster or Cheaper Inference? — Spheron Blog, 2026-08-13
- vLLM: Easy, Fast, and Cheap LLM Serving with PagedAttention — vLLM 官方文档
- TensorRT-LLM: A TensorRT Toolbox for Optimized LLM Inference — NVIDIA 官方页面
- SGLang: A Structured Generation Language for LLMs — SGLang GitHub 仓库
- vLLM joins PyTorch Foundation — PyTorch Foundation, 2025-05
🎯 相关面试题
巩固本篇知识点,备战 AI 岗位面试。
- 中级概念查看详解 →
主流大模型部署/推理框架 vLLM、TGI、llama.cpp、SGLang 如何对比与选型?
vLLM 靠 PagedAttention 与连续批处理拿高吞吐,是生产服务首选;TGI 生产级且贴 HF 生态;llama.cpp 主打 CPU/边缘/Mac 量化本地;SGLang 擅长复杂控制流与结构化输出。按吞吐、硬件、并发、控制流和生态选型。
- 高级系统设计查看详解 →
P/D 分离架构的调度策略设计:在 Prefill 算力利用率 >80%、Decode 内存利用率 <70%、网络带宽 100GB/s 约束下如何最小化 TPOT?何时应回退到 co-located 架构?
vLLM 在 GLM-5.2 B300 NVFP4 部署中通过 PD 分离实现 TPOT 从 40ms 降至 17ms(vllm.ai 2026-07-23 官方博客)。本题给定三条硬约束(Prefill 算力利用率 >80%、Decode 内存利用率 <70%、网络带宽 100GB/s),要求候选人设计调度策略最小化 TPOT,并判断何时应回退到 co-located 架构。核心考察点:(1) KV Cache 传输延迟与计算延迟的联合建模;(2) 速率匹配的调度实现(请求级路由、动态伸缩、KV 感知路由);(3) 约束条件的物理含义与冲突检测;(4) co-located 回退的判据(流量规模、互连带宽、序列长度分布、运维成熟度)。
- 高级系统设计高频查看详解 →
如何从零设计一个类 ChatGPT 的对话产品?
从对齐后的模型、低延迟推理服务、会话与上下文管理、安全护栏到评测飞轮的端到端对话产品设计。
- 高级系统设计高频查看详解 →
LLM 推理服务如何优化吞吐与延迟(vLLM / 批处理 / 量化)?
连续批处理提吞吐、PagedAttention 省显存、量化降成本、张量并行扩容量、投机解码降延迟。
