第五部分:推理引擎选型
5.1 推理引擎到底是什么
推理引擎 = 把前面所有事情打包成一个软件,让你不用自己写。
类比:
- 你不需要自己写数据库 → 用 MySQL/PostgreSQL
- 你不需要自己写 Web 服务器 → 用 Nginx
- 你不需要自己写 LLM 推理 → 用 vLLM/SGLang/TensorRT-LLM
你的价值不是写引擎,是知道:该选哪个、怎么配置、哪些参数要调、不同引擎的极限和坑在哪。
5.2 三个主流引擎
vLLM:行业事实标准
推荐用作 baseline
核心创新:PagedAttention(KV Cache 分页)+ Continuous Batching
优势:
- 上手最快,文档最全
- 模型支持最广(新模型出来当天就支持)
- OpenAI 兼容 API
- 社区最大
劣势:
- 单卡峰值吞吐不是最高
- 多轮对话场景被 SGLang 超过
SGLang:chat/agent 场景王者
MaaS 场景首选
核心创新:RadixAttention(跨请求 KV Cache 共享)
优势:
- MaaS 场景的最优解(多客户共享 system prompt)
- 多轮对话吞吐显著领先 vLLM 30%
- 性能演进特别快
劣势:生态成熟度不如 vLLM;新模型支持慢一拍。
TensorRT-LLM:NVIDIA 官方吞吐天花板
高级配置
核心思路:编译优化,把模型编译成 NVIDIA 硬件原生的高度优化代码。
优势:
- 单卡吞吐最高
- 量化方案最全
- 投机解码做得最激进(最高 3.6x)
劣势:
- 上手门槛高,要"编译模型"
- 编译 70B 模型要 20-30 分钟
- 模型变了要重编
- 调试困难
性能对比(某型号卡 80GB, Llama 3.3 70B FP8)
| 引擎 | 吞吐 (tokens/s) | 相对值 |
|---|---|---|
| vLLM | ~12,500 | 100% |
| SGLang | ~16,200 | 130% |
| LMDeploy | ~16,200 | 130% |
| TensorRT-LLM | ~14,500-16,500 | 116-132% |
按月度 GPU 成本算,30% 的差距大概是某金额/月(某规模集群)。选错引擎一年损失某金额。
5.3 OpenAI / Anthropic 实际在用什么
跟客户聊天的最高级弹药。
某厂商的快速模式(2.5 倍加速)
- 不是新硬件,还是某型号卡
- 本质:降低 batch size + 更激进的 Speculative Decoding
- 代价:单 token 成本是普通模式的 6 倍
- 哲学:保留原模型完整能力,只调 serving 参数
某厂商的某模型(15 倍加速 / 1000+ tokens/s)
- 用某厂商的晶圆级芯片(单片 70 平方英寸,44GB SRAM)
- 把整个模型放进 SRAM,避免 HBM 读写
- 不是原版某模型,是蒸馏出来的小模型
- 哲学:新硬件 + 模型蒸馏,吞吐为王
对某客户的启示:客户没有某厂商的晶圆级芯片,只有某型号卡。所以能走的是某厂商的软件路线,更激进的投机解码 + 智能 batching + Prefix Caching。具体到引擎选型,就是 SGLang 作为主引擎 + EAGLE-3 投机解码。
5.4 三步走选型方案
明天某总问"建议用哪个引擎",标准答案:
第一阶段(1-2 个月):vLLM 跑通 baseline。最稳妥,最快出结果。某开源模型和某国产模型都能跑起来。所有基础优化都开启:FP8 权重、FP8 KV Cache、Continuous Batching、PagedAttention、基础 Prefix Caching。这一步把硬件能力利用到 70%。
第二阶段(2-4 个月):评估 SGLang 作为主引擎。MaaS 场景多客户共享 system prompt,RadixAttention 再榨出 30% 吞吐。如果业务方向稳定,必上。
第三阶段(可选,6 个月后):针对最高流量模型用 TensorRT-LLM 做编译优化,再榨 15-30%。工程成本高,要看 ROI。
不建议一上来就上 TensorRT-LLM,编译时间长,模型一变要重编,工程团队会被卡住。
附录:必背数字 + 核心心智模型
明天会议室前必须脱口而出的数字
| 类别 | 数字 |
|---|---|
| 某型号卡显存 | 80 GB HBM3 |
| 某型号卡 HBM 带宽 | ~3 TB/s |
| 某型号卡 FP16 算力 | 1000 TFLOPS |
| 某型号卡 FP8 算力 | 2000 TFLOPS |
| 某型号卡 NVLink 带宽 | 400 GB/s(某型号卡是 900 GB/s) |
| PCIe 5.0 带宽 | 64 GB/s |
| IB NDR 带宽 | 400 Gbps(时延 1 μs) |
| 70B 模型 FP16 / FP8 / INT4 | 140GB / 70GB / 35GB |
| Decode 算力利用率 | 1-5% |
| Continuous Batching 收益 | 3-10x |
| Speculative Decoding 收益 | 2-3x |
| Prefix Caching 收益 | Prefill 省 80-90% |
| Disaggregated Serving 收益 | 单 token 成本省 30-50% |
| 引擎吞吐对比 (某型号卡 70B) | vLLM 12.5k / SGLang 16.2k tokens/s |
核心心智模型(一句话记忆)
如果只记一件事:LLM 是自回归生成的,一个 token 一个 token 蹦出来。整个推理时间 95% 花在 Decode 阶段,而 Decode 阶段 GPU 算力 95% 闲置。所有加速技术都在攻击这个事实。
如果记三件事
- Prefill 处理输入(compute-bound),Decode 循环生成(memory-bound),两阶段对硬件需求完全不同
- KV Cache 让自回归从 O(N²) 降到 O(N),但占大量显存,是所有显存优化技术的核心战场
- Decode 阶段 GPU 算力 95% 闲置,所以 batching、speculative decoding、量化、prefix caching 都在攻击这个事实
明天对话的开场定位
"某总,简单介绍下我自己。我在 NVIDIA 做的是 NGC 容器和 GPU 调度,之前在 Apple AIML 做多租户 GPU 平台,规模和你们这个某规模量级接近。当时核心问题和你们要解决的本质上是同一类:怎么在共享硬件上让多个互不信任的 workload 既不互相干扰、又把整体利用率拉到 70%+。这套经验放到推理 MaaS 场景,调度问题是同构的,只是 workload 从训练任务变成 serving 流量,优化目标从 throughput 变成 throughput 加 latency 双约束。今天想先听一下你们具体的业务画像,再讨论方案。"
四句话回答法
不要只给结论,要给"推导 + 代价"。明天在客户面前的标准答法:
- 结论 1 句话
- 推导 2-3 句话
- 代价 / 边界 1 句话
例:
❌ 短答:"4 台的高。"
✅ 四句答:"四台高,主要是 KV Cache 池子大了,batch 能开更大,吞吐能高 3-5 倍。但代价是卡间通信开销增加,某型号卡的 NVLink 还是阉割版,网络拓扑没设计好的话加卡反而变慢。所以更准确的说法是:四台理论上限高,但实际收益取决于网络设计和 workload pattern。"
脱敏说明
本文按公开发布要求做了脱敏处理:卡型号(H800/H100/H200)替换为「某型号卡」,集群规模替换为「某数量台」「某规模」,成本金额替换为「某金额」,人名替换为「某总」,客户名替换为「某客户」,未发布产品名替换为「某厂商」「某模型」。性能对比数字为公开模型与引擎的可复现结果,予以保留。
修订记录
| 日期 | 改了什么 | 为什么 | 谁 |
|---|---|---|---|
| 2026-08-05 | 从整篇拆成第 6/6 章,正文未改动 | 整篇 44 分钟读不完,拆成每章 20 分钟以内 | 工程 |