跳转到主要内容

推理框架对比 2026:从 Engine 到 Serving Stack

· 约 11 分钟阅读

1. 结论

2026 年的 LLM 推理框架竞争,已经从单机 engine 性能,转向一套 serving stack 的系统竞争:

  • Engine 层:vLLM、SGLang、TensorRT-LLM、TGI、LMDeploy 负责模型执行、batching、parallelism 和 OpenAI-compatible API。
  • Kernel 层:FlashInfer、FlashAttention、TensorRT-LLM kernels 决定 attention、MoE、GEMM、quantization 的硬件效率。
  • KV Cache 层:PagedAttention、RadixAttention、LMCache、Mooncake、NIXL、KV offload 把 KV 从进程内临时状态变成可复用、可迁移、可路由的系统资源。
  • Serving 编排层:NVIDIA Dynamo、llm-d、Ray Serve、KServe 等把多个 engine 实例组织成 P/D 分离、cache-aware routing、autoscaling 和多租户服务。

如果只问“哪个框架最快”,答案通常不稳定。更可靠的问题是:

  1. 这个 workload 是 prefill-bound、decode-bound,还是 KV-transfer-bound?
  2. 请求是否共享长 prefix、RAG 上下文或多轮对话历史?
  3. 模型是否是 MoE,是否需要 expert parallelism 或 DeepEP?
  4. 目标是低 TTFT、低 TPOT、最大 tokens/s/GPU,还是 SLO 下的 QPS?
  5. 部署对象是单机、单集群、Kubernetes fleet,还是异构 GPU/CPU/SSD 层级?

2. 2026 推理系统栈

层级代表系统主要职责关键问题
API / RouterOpenAI-compatible server, llm-d router, Dynamo frontend, Ray Serve接入请求、负载均衡、SLO 控制、cache-aware routing请求应该去哪个 engine / 哪个 KV cache owner?
SchedulervLLM scheduler, SGLang scheduler, TensorRT-LLM in-flight batchingcontinuous batching、chunked prefill、P/D 分离、admission controlprefill job 会不会阻塞 decode?
EnginevLLM, SGLang, TensorRT-LLM, TGI, LMDeploy模型执行、并行、量化、spec decode、structured output单实例如何把 GPU 用满?
KV RuntimePagedAttention, RadixAttention, LMCache, NIXL, MooncakeKV 分页、prefix reuse、KV transfer、offload、持久化KV 是重新算、迁移、复用,还是落盘?
KernelFlashInfer, FlashAttention, TRT-LLM kernels, Triton kernelsattention、GEMM、MoE grouped GEMM、FP8/FP4 kernelkernel 是否匹配 batch shape 和硬件?
HardwareH100/H200/B200/GB200, AMD MI300X/MI325X, CPU/MetalHBM 带宽、NVLink/IB、FP8/FP4、PCIe/NVMebottleneck 在算力、显存带宽还是网络?

这张表比“框架功能清单”更重要。实际线上系统经常是组合形态:vLLM 或 SGLang 做 engine,FlashInfer 做 kernel,LMCache 做 KV 复用,llm-d / Ray Serve / Dynamo 做编排。

3. Prefill/Decode 分离成为主线

传统聚合式 serving 把 prefill 和 decode 放在同一批 GPU 上。问题是两阶段的瓶颈不同:

  • Prefill 处理长 prompt,矩阵计算密集,更接近 compute-bound。
  • Decode 每步生成一个 token,反复读取 weights 和 KV cache,更接近 memory-bandwidth-bound。
  • Prefill job 插入 decode 流程时,会拉高 tail TPOT / ITL。
  • 长上下文、RAG、多轮 agent 和 reasoning 输出让两阶段的资源需求更不对称。

P/D 分离把 prefill instance 和 decode instance 拆开,中间传输 KV cache。这样可以单独调 TTFT 和 TPOT,也可以给两阶段配置不同并行策略、GPU 类型和扩缩容比例。

系统P/D 分离形态关键点
vLLMexperimental disaggregated prefillingprefill / decode 运行在两个 vLLM 实例,通过 connector 传 KV;官方明确提示该功能主要用于独立调 TTFT/ITL 和控制 tail ITL,不保证提升吞吐
TensorRT-LLMdisaggregated servingcontext / generation 分离,支持 KV cache exchange、overlap optimization 和 cache-aware routing
Ray ServevLLM v1 上的 P/D deployment把 prefill/decode 拆成独立 deployment,可用 NIXLConnector 或 LMCacheConnectorV1 传 KV
NVIDIA Dynamodistributed inference framework面向 reasoning model 的多节点 serving,强调 disaggregated serving、KV-aware routing 和跨 GPU pool 编排
llm-dKubernetes-native distributed inference在 Kubernetes 上组合 vLLM、智能路由、KV cache 管理、P/D 分离、SLO-aware autoscaling

建模启发:P/D 分离不是免费吞吐提升。模拟器至少要显式建模:

TTFT = queue_prefill + prefill_compute + kv_transfer + first_decode
TPOT = queue_decode + decode_step + scheduling_gap
KV transfer cost = bytes(KV blocks) / effective_network_bandwidth + protocol_overhead

对短 prompt、短输出、低并发请求,KV transfer 和调度开销可能抵消收益。对长 prompt、中等输出、tail latency 敏感的 workload,P/D 分离更容易有效。

4. KV Cache 变成系统资产

早期推理框架把 KV cache 当作 engine 内部状态;2026 年的趋势是把它作为可观测、可复用、可迁移的资源。

能力典型实现解决的问题
Paged KVvLLM PagedAttention, FlashInfer PagedKV降低连续内存分配压力,支持变长请求和 continuous batching
Prefix reusevLLM automatic prefix caching, SGLang RadixAttentionsystem prompt、多轮对话、RAG 前缀重复时减少 prefill
KV transfervLLM NIXL / LMCache / Mooncake connectors, TensorRT-LLM KV exchangeP/D 分离时把 prefill 生成的 KV 交给 decode
KV offloadLMCache, vLLM offloading connector, llm-d tiered KVGPU 显存不足或长上下文复用时,把 KV 放到 CPU/SSD/远端存储
Cache-aware routingllm-d, TensorRT-LLM disaggregated server, SGLang load balancer请求路由到已有 prefix/KV 的 worker,减少重复 prefill

KV cache 复用的收益高度依赖 workload。多轮 agent、RAG、固定 system prompt 和批量同源任务能提高 hit rate;一次性短请求几乎没有收益。

模拟器启发

effective_prefill_tokens = new_tokens + missed_prefix_tokens
saved_prefill_compute = hit_prefix_tokens * per_token_prefill_cost
extra_kv_memory = cached_prefix_tokens * kv_bytes_per_token

如果缓存放到 CPU/SSD,还要把 load_KV_latency 加回 TTFT;命中不等于免费。

5. Engine 层对比

框架核心定位强项主要边界
vLLM通用高吞吐 serving enginePagedAttention、continuous batching、OpenAI-compatible API、量化生态、spec decode、P/D connector 生态极端 MoE/DeepSeek workload 通常需要额外 tuning;P/D 分离仍受 connector 和基础设施成熟度影响
SGLang面向复杂程序化 LLM workload 的 serving engineRadixAttention、structured generation、speculative decoding、DeepSeek/MoE 支持、DeepEP 集成生产部署需要理解 runtime 参数;生态规模小于 vLLM
TensorRT-LLMNVIDIA 硬件上的高性能编译/运行时FP8/FP4、kernel fusion、in-flight batching、Blackwell 支持、TRT-LLM/Triton/Dynamo 集成模型适配和构建流程更重;对非 NVIDIA 硬件不可用
FlashInfercomposable inference kernel libraryPagedKV attention、decode/prefill kernel、JIT 编译、被上层框架复用不是完整 serving 系统
TGIHugging Face 生态 serving部署简单、HF model hub 集成、Rust router、常见量化对最新 MoE/P/D/KV 生态的覆盖通常落后于 vLLM/SGLang
LMDeploy轻量部署和 TurboMind engineAWQ/W4A16、KV INT8、C++ backend、部署简单大规模 MoE、P/D 分离和 fleet 编排能力有限
llama.cpp单机、CPU、边缘和 GGUF 生态极致量化、CPU/Metal/CUDA 多后端、单文件模型不适合多节点高并发 serving
DeepSpeed/FlexGenoffload 和离线大 batchGPU-CPU-NVMe 层级、超大模型离线推理实时交互 serving 不是主战场

6. MoE 与 Expert Parallelism

MoE 推理把瓶颈从普通 dense GEMM 扩展到 expert routing、dispatch/combine、all-to-all、load balance 和 expert placement。

问题对框架的要求
Expert 分散在多卡/多机需要 expert parallelism、fast all-to-all、拓扑感知 placement
每 token 激活少量 expert需要 grouped GEMM / fused MoE kernel,避免小 GEMM 吞吐低
热门 expert 倾斜需要 routing 监控、load balance、capacity 策略
Prefill 和 decode 资源需求不同MoE 更容易需要 P/D 分离和不同并行配置
DeepSeek 类模型有 MLA/MoE 组合KV layout、attention kernel、expert dispatch 要一起调

SGLang 公开的 DeepSeek 96 H100 案例把 P/D disaggregation 和 large-scale expert parallelism 放在一起,这是 2025 以后 MoE serving 的典型方向。TensorRT-LLM 也在持续补 large-scale EP、DeepSeek R1、MTP 和 Blackwell 优化。

详见 MoE 推理

7. Speculative Decoding 不再是单一功能

Speculative decoding 的基本形式是 draft-verify,但框架支持已经分化:

方式代表实现适用场景风险
Draft modelvLLM / SGLang小模型草稿 + 大模型验证draft 质量低时 acceptance rate 低
EAGLE / EAGLE-3SGLang、vLLM 生态利用 hidden state 预测后续 token需要匹配模型和草稿权重
MTPDeepSeek-V3/R1、vLLM MTP 支持模型训练时内置多 token prediction head需要模型原生支持,不能靠 serving 开关生成
N-gram / suffixvLLM 等重复文本、代码补全、固定模板泛化能力有限
DSpark 类半自回归 drafterDeepSpec/DSpark 方向DeepSeek-family target + 专用 drafter需要 target hidden-state export、draft/verify loop 和 scheduler 支持

关键判断:spec decode 的收益来自“多发 token 被 target 接受”。吞吐收益取决于:

speedup ≈ accepted_tokens_per_verify / (1 + draft_overhead + verify_overhead)

如果 acceptance rate 低、draft 模型占用 GPU、或者 batch 中请求形态差异大,收益会下降。不要把它建模成固定倍数。

详见 投机解码DSpark 与 MTP

8. Structured Output 与 Agentic Serving

Agent、tool calling、JSON schema、function calling 会改变 serving 负载:

  • decode 时要按 grammar / schema 过滤 token;
  • batch 内请求可能有不同 grammar;
  • reasoning trace、tool result、RAG context 会拉长 prompt;
  • 同一个会话会反复复用 system prompt 和工具说明;
  • 输出格式错误会触发重试,放大 tail latency。

SGLang 默认推荐 XGrammar 作为 structured output 后端;vLLM 也把 structured outputs、tool calling、reasoning outputs 放进 serving 功能。对框架选型来说,这说明 engine 不只负责“吐 token”,还要和 agent runtime、schema validator、router、cache 层配合。

模拟器启发:结构化输出会改变 decode step 的采样成本,但更大的影响常来自重试率和输出长度分布。需要在 workload 里记录:

schema_type, grammar_backend, retry_rate, avg_tool_calls, reasoning_tokens, output_tokens

9. 业界信号

方向公开案例可以学到什么
P/D 分离vLLM、TensorRT-LLM、Ray Serve 均已有文档化支持P/D 分离已经从论文/实验进入主流框架,但要把 KV transfer 和调度成本纳入评估
Reasoning servingNVIDIA Dynamo 针对 DeepSeek-R1/GB200 报告 disaggregated serving 带来的请求数提升reasoning model 的长输出让 decode pool、KV routing、fleet 编排变成核心问题
MoE at scaleSGLang DeepSeek 96 H100 案例MoE serving 不能只看单卡 kernel,需要 EP、P/D、网络拓扑和 scheduler 一起设计
Kubernetes-native inferencellm-d 进入 CNCF Sandbox,围绕 vLLM、prefix-cache routing、KV tiering、SLO autoscaling 做生产栈生产推理开始从单 engine 部署走向 cloud-native serving stack
KV cache platformLMCache 把 KV cache 做成可持久化、可复用、可观测的管理层长上下文、RAG、多轮 agent 的性能上限取决于 KV 生命周期管理

这些案例的指标不能直接横向比较。硬件、模型、ISL/OSL、SLO、并发、batch 策略、KV hit rate 不同,tokens/sx 倍提升 只在原测试条件下成立。

10. 场景化选型

场景首选方向理由
通用 OpenAI-compatible API,高并发,模型覆盖广vLLM生态大、部署简单、PagedAttention/continuous batching 成熟
DeepSeek/MoE/共享 prefix 多的服务SGLangRadixAttention、DeepSeek/MoE 支持和程序化 serving 能力更强
NVIDIA 单模型固定形态,追求硬件极限TensorRT-LLM编译优化、kernel fusion、FP8/FP4、Blackwell 支持更直接
多节点 P/D 分离、reasoning 服务、fleet 编排Dynamo / llm-d / Ray Serve + vLLM/SGLang/TRT-LLM需要 router、KV transfer、autoscaling 和多实例生命周期管理
RAG、多轮、长上下文、system prompt 重复vLLM/SGLang + LMCache 或框架内 prefix cache关键瓶颈在重复 prefill 和 KV 生命周期
单机/边缘/CPU/本地工具llama.cpp / LMDeploy部署简单,量化格式丰富
离线大 batch、GPU 显存不足DeepSpeed/FlexGen/offload 系统更适合吞吐优先的批量任务,不适合交互式低延迟

11. 评估指标

框架评估必须同时报告 workload、硬件和 SLO,否则结论不可复用。

指标含义常见误区
TTFT请求到首 token 的延迟只看平均值会掩盖 prefix miss 和排队
TPOT / ITLdecode 阶段相邻 token 延迟prefill 插队会拉高 tail
E2E latency请求完成时间长输出 reasoning 请求不能只看 TTFT
tokens/s/GPU单卡吞吐不同 ISL/OSL 和 batch 下不能直接比较
SLO QPS满足延迟约束时的最大 QPS比裸吞吐更接近线上容量规划
KV hit rateprefix/KV 复用比例hit 的 KV 如果在 CPU/SSD,还要算加载延迟
acceptance ratespec decode 接受率接受率低时 draft 成本会抵消收益
GPU utilizationSM/HBM/NVLink/PCIe 利用率单个 utilization 数字无法定位瓶颈

建议压测矩阵至少包含:

model, precision, tp/pp/dp/ep, gpu_type, gpu_count,
ISL distribution, OSL distribution, concurrency,
prefix_share_ratio, kv_hit_rate, structured_output_ratio,
TTFT P50/P95/P99, TPOT P50/P95/P99, E2E P95,
tokens/s/GPU, SLO QPS, GPU memory, network bandwidth

12. 与模拟器的关系

推理框架会影响模拟器参数,不应只把 framework 当作字符串标签。

框架能力对模拟器的影响
Paged KV block size影响 KV internal fragmentation 和可容纳 batch
Prefix cache / RadixAttention改变有效 prefill tokens 和 TTFT
P/D 分离引入独立 prefill/decode queue、KV transfer、P
配比
Expert parallelism引入 all-to-all、expert imbalance、dispatch/combine 开销
FP8/FP4/INT4改变 weight bytes、GEMM throughput、精度风险
Speculative decoding引入 draft cost、verify cost、acceptance rate
Structured output改变 decode sampling cost、重试率和输出长度
KV offload引入 CPU/SSD/network load latency 和缓存容量

详见 模拟器建模指南KV Cache Hit Ratio 修正模型

13. 相关页面

14. 参考资料