展会资讯
模型网关调研报告
2026-07-01 02:34
模型网关调研报告

模型网关产品与技术架构调研:六大开源方案横向拆解

对 NVIDIA Dynamo、llm-d、vLLM production-stack、AIBrix、KServe、Envoy AI Gateway 六个开源项目的产品定位、技术架构与设计取舍做横向剖析,提炼对自研模型网关的设计启示。资料截至 2026-06。


〇、一句话定位

这六个项目不在同一层。把它们硬放进一张"网关"对比表会失真——真正有用的拆法是三层心智模型:接入网关层、编排/控制面层、推理引擎层。它们大多解决的是"把单实例已经很强的 vLLM/SGLang,在数据中心规模下高效编排起来"这件事,差别在于切入的层次、对 Kubernetes 的依赖程度,以及谁来背书。

项目
一句话定位
NVIDIA Dynamo
GPU 厂商视角的数据中心级分布式推理框架。自带 Rust Smart Router + PD 分离 + 多级 KV 卸载(NIXL),引擎无关,不强绑 K8s。
llm-d
Red Hat/IBM/Google 主导的 K8s 原生分布式推理栈,押注 Gateway API Inference Extension + Envoy 标准,vLLM 优先。
vLLM production-stack
UChicago LMCache 团队的 vLLM 参考栈。Python 路由 + LMCache KV 卸载,轻量、易上手,逐块迭代的社区项目。
AIBrix
字节跳动的 vLLM K8s 控制面,已捐给 vLLM。最成熟的单公司开源方案:控制面/数据面分离、扩 Envoy 做 LLM-aware 网关、分布式 KV、StormService 编排 PD。
KServe
CNCF 的通用模型服务标准(早于 LLM 时代)。InferenceService CRD + Knative 弹性,现以 LLMInferenceService 拥抱 llm-d/GIE 进入 LLM 场景。
Envoy AI Gateway
建立在 Envoy Gateway 之上的"AI 接入网关"。统一 OpenAI 兼容 API、多厂商凭据管理、按 token 限流与治理——是前门,不是 GPU 编排器。

一、它们在共同对抗什么问题

2025 年初到年中,五个由大厂背书的"生成式 AI 规模化"框架集中出现。它们之所以同时诞生,是因为 vLLM 这类引擎把单实例推理做到了极致,但把上百个实例、跨节点、跨地域地稳定跑起来暴露出一批通用引擎/通用网关解决不好的新问题:

  1. 1. 请求长度高度可变——输入/输出 token 数从几个到几万不等,QPS/并发这类传统指标无法刻画负载,轮询路由会造成热点与延迟尖刺。
  2. 2. 有状态执行(KV cache)——prefill 产生的 KV cache 决定了后续吞吐,路由必须感知"哪个实例已缓存了这段前缀",否则重复计算昂贵。
  3. 3. Prefill / Decode 特性相反——prefill 计算密集、decode 访存密集且长尾。混跑互相拖累,于是出现 PD 分离——但 KV 要在两类 worker 间高速搬运。
  4. 4. 巨模型必须多节点——Llama-3.1-405B、DeepSeek-R1 671B 单机放不下,需要 TP/PP 跨节点编排、滚动升级、故障自愈——vLLM 本身不管这些。
  5. 5. 自动扩缩很难——DCGM 指标有限、扩缩呈非线性、冷启动慢(几十 GB 权重)。HPA 那套基于 CPU/QPS 的弹性几乎失效。
  6. 6. 异构 + 多租户 + 成本——混合 GPU 型号、多模型/多 LoRA 共享、SLO 与配额、按 token 计费与治理——这是"省钱"的真正战场。

六个项目就是从不同层次、用不同取舍来回答这六个问题。


二、逐个剖析

2.1 NVIDIA Dynamo

编排层 · NVIDIA · Apache-2.0 · 发布 GTC 2025-03 · 自研 Rust 代理 · K8s 可选 · 引擎 vLLM/SGLang/TRT-LLM

解决的核心问题:站在 GPU 卖方视角,把"每美元 token 产出"在数据中心尺度做到最大。它不假设你用 K8s,而是提供一套从路由、PD 分离到多级 KV 管理、动态 GPU 调度的完整自洽栈,引擎可插拔。

技术架构 · 四个关键件

  • • Smart Router(Rust)——KV-aware 路由,按目标 worker 的 KV cache 命中重叠度打分选择,最大化前缀复用,而非轮询。用 Rust 写以压低代理本身的延迟。
  • • Disaggregated Serving——prefill 与 decode 拆成独立 worker 池,各自按特性配比与扩缩。
  • • KV Block Manager + NIXL——KV cache 跨 GPU/CPU/SSD/对象存储多级卸载;NIXL(NVIDIA Inference Xfer Library)是底层低延迟传输库,负责在 worker 与层级之间搬 KV。
  • • Planner——SLO 感知的动态 GPU 规划器,按负载实时调整 prefill/decode worker 数量。控制面用 etcd + NATS。

产品形态:可裸跑,也提供 Dynamo Operator + DynamoGraphDeployment CRD 跑在 K8s 上。多节点推理(PP)原生支持,是少数显式处理多节点的方案之一。

取舍:自带 Rust 代理而非复用 Envoy,性能上限高、但脱离 K8s/Envoy 生态,治理类能力(鉴权、配额、多厂商)需自行补齐。单公司(NVIDIA)主导,且对 NVIDIA 硬件栈最友好。适合:自有大规模 GPU 集群、追求极致单位成本、愿意采纳完整栈的团队。

2.2 llm-d

编排层 · Red Hat / IBM / Google · Apache-2.0 · 发布 2025-05 · Envoy + GIE · K8s 原生 · vLLM 优先

解决的核心问题:把 Dynamo 类的高级能力(PD 分离、KV 路由、前缀感知)标准化进 Kubernetes 生态,用社区中立的 Gateway API 而非私有代理。核心理念是"well-lit paths"——给出经过验证的推荐部署路径。

技术架构

  • • Inference Gateway(IGW)——构建在 Gateway API Inference Extension(GIE)+ Envoy 之上。
  • • Endpoint Picker(EPP)——推理感知调度器,做前缀缓存感知、负载感知的端点选择。这是 llm-d 的"大脑",也是 GIE 标准的参考实现。
  • • PD 分离——基于 vLLM + NIXL 做 KV 传输;KV 卸载复用 LMCache。
  • • 多节点——用 K8s 原生的 LeaderWorkerSet 编排,而非引入 Ray。

实测收益(社区/Tesla 案例):开启前缀缓存感知路由后,输出 token/s 提升约 3×、TTFT 降低约 2×

取舍:押注标准(GIE)和多方治理是最大优势,也是最大风险——标准仍在演进、组件较新。强 K8s 绑定。NVIDIA 既是创始成员、又继续单干 Dynamo,存在路线博弈。适合:已 all-in K8s、看重生态中立与可移植、愿意跟随上游标准演进的团队。

2.3 vLLM production-stack

编排层 · UChicago LMCache · Apache-2.0 · Python Router · Helm · LMCache KV 卸载 · 轻量易上手

解决的核心问题:给 vLLM 用户一个开箱即用、逐块可替换的生产参考实现,门槛低。与 LMCache 同源,把 KV cache 跨实例共享/卸载(CPU、磁盘、远端)作为一等能力。它不追求大而全,而是"从零搭、每个积木在社区反馈下迭代"。

技术架构:Router 用 Python 实现(开发友好、但高并发下是潜在瓶颈),支持前缀感知路由、会话粘连路由。集成 LMCache 做分层 KV。自带 Grafana/Prometheus 观测面板与 Helm chart。也开始接入 Semantic Router、Envoy AI Gateway 做语义路由。

取舍:最容易理解和落地,但能力深度与大规模成熟度不及 AIBrix/Dynamo;Python 网关在极高吞吐场景需评估。适合:vLLM 单一引擎、中小规模、想要清晰参考实现并逐步扩展的团队。可作为自研网关的"读源码学习"首选。

2.4 AIBrix

编排层 · ByteDance → vLLM project · Apache-2.0 · 扩展 Envoy · K8s + Ray 混合 · 最新 v0.6.0/2026-03 · 引擎 vLLM/SGLang/Dynamo

解决的核心问题:字节在内部生产打磨 6+ 个月后开源,目标是企业级规模下的成本效率。核心论点:引擎层优化重要,但系统级编排(调度、扩缩、缓存感知路由、异构、跨集群)才是真正省钱的地方。宣称低流量场景 4.7× 降本、高负载 1.5× 降本。是六者中最成熟的单公司开源方案。

产品架构 · 控制面 / 数据面分离

  • • 控制面——一组 K8s 自定义控制器:LoRA adapter 控制器、LLM-app 专用 autoscaler(PodAutoscaler)、冷启动管理、SLO 驱动的 GPU optimizer。
  • • 数据面——推理引擎(vLLM/SGLang/xLLM)+ 统一 AI Runtime sidecar:抽象厂商 API、标准化指标、模型下载与管理,是控制面与引擎之间的桥。
  • • LLM-aware 网关——扩展 Envoy,支持实例级路由、前缀缓存感知、最小 GPU 显存优先、SLO-aware router。通过 KV event 同步在 vLLM 实例与网关间共享 KV 状态以提升前缀命中。

技术架构亮点

  • • 高密度 LoRA 管理——动态调度大量 LoRA adapter,混合负载下显著降本。
  • • 分布式 KV cache(自研)——跨节点 token 复用,论文称 +50% 吞吐、-70% 延迟。
  • • StormService——生产级 PD 编排原语(PodSet/RoleSet/PodGroup),支持按 role 独立扩缩、PD/拓扑感知路由、安全滚动升级。
  • • 混合编排——K8s 粗粒度资源管理 + Ray 细粒度执行;GPU 故障诊断与自愈。

取舍:功能最全、最贴近 vLLM、生产验证最充分,但组件多、运维心智负担重,且引入 Ray("编排器中的编排器")增加复杂度。单公司基因明显。适合:大规模、多模型/多 LoRA、强成本诉求、有专门平台团队的场景——也是自研网关在能力广度上最值得对标的范本。

2.5 KServe

通用模型服务 · CNCF · Apache-2.0 · InferenceService CRD · Knative 弹性 · LLMInferenceService + llm-d

解决的核心问题:早于 LLM 时代,目标是所有类型模型在 K8s 上的标准化服务:统一 CRD、版本管理、按需弹性(含缩到零)、灰度发布、predictor/transformer/explainer 流水线、Open Inference Protocol。它本来不为 LLM 而生——缺少 KV 协调、批调度、GPU 感知调度等 LLM 专属优化。

向 LLM 的演进:KServe 没有自己重造 LLM 轮子,而是整合 llm-d:新增 LLMInferenceService / LLMInferenceConfig CRD,底层用 Envoy + Envoy AI Gateway + Gateway API Inference Extension 做前缀缓存感知路由。Red Hat 在 llm-d 与 KServe 双边都有贡献者,两者组件互通(Tesla 生产案例即 KServe + llm-d + vLLM)。

取舍:最成熟的标准化外壳、CNCF 中立、生态最广(不止 LLM),但 LLM 能力靠 llm-d 嫁接、栈较重(Knative 等依赖)。适合:已有 KServe 平台、需要统一服务传统模型与 LLM、看重标准与多框架统一接口的组织。把它看作"服务平台底座 + llm-d 引擎"的组合,而非独立 LLM 网关。

2.6 Envoy AI Gateway

接入网关层 · Envoy / CNCF · Apache-2.0 · 基座 Envoy Gateway · 背书 Tetrate · Bloomberg · 前门/治理

解决的核心问题:这是唯一一个真正"网关"语义的项目,但它管的是接入与治理,不是 GPU 编排。把对内(自建 vLLM)与对外(OpenAI、Bedrock、Azure、Anthropic 等)的多种后端,统一成一套 OpenAI 兼容 API,并提供企业治理能力。

关键能力

  • • 统一 API + 多厂商抽象——一个端点接多家上游,含上游凭据/鉴权管理与故障转移。
  • • 按 token 限流——以 LLM token 用量(而非请求数)为单位做限流与配额,贴合 LLM 计费模型。
  • • 接入 GIE——对自建后端可叠加 Gateway API Inference Extension,获得推理感知路由能力,与 llm-d/KServe 同一套底层。

取舍:它和上面五个不是竞争关系,而是互补——通常摆在它们前面做统一前门。本身不提供 PD 分离、分布式 KV 等引擎编排能力。适合:需要统一多模型/多供应商入口、做鉴权配额成本治理的场景。对自研网关而言,这是"接入/治理层"最直接的对标对象。


三、关键洞察:三层心智模型

把六个项目放回各自的层,混乱立刻消失。设计自研网关前,第一个决策是:你做的是哪一层,或哪几层?

┌─────────────────────────────────────────────────────────────┐│ LAYER 3 · 接入 / 治理                                          ││ 统一 API、多厂商、鉴权、按 token 限流、成本与配额                ││ → Envoy AI Gateway                                            │├─────────────────────────────────────────────────────────────┤│ LAYER 2 · 编排 / 控制面                                        ││ KV 感知路由、PD 分离、分布式 KV、自动扩缩、多节点               ││ → Dynamo · llm-d · AIBrix · production-stack · KServe         │├─────────────────────────────────────────────────────────────┤│ LAYER 1 · 推理引擎                                             ││ 单实例吞吐、KV cache、连续批处理、并行                          ││ → vLLM · SGLang · TensorRT-LLM                                │└─────────────────────────────────────────────────────────────┘

还有一条贯穿性的"共享地基"值得单独记住:Gateway API Inference Extension(GIE) + Envoy 正在成为 Layer 2/3 的事实标准——llm-d、KServe、AIBrix、Envoy AI Gateway 都在用;LMCache 是 KV 卸载的共享组件(production-stack、llm-d);NIXL 是 KV 传输的共享组件(Dynamo、llm-d)。只有 Dynamo 用自研 Rust 代理走了另一条路。


四、架构图谱(分层 × 组件矩阵)

五个逻辑层的职责固定如下,下表对比各产品在每层放了什么组件。"借助 X" = 能力来自所集成组件;"—" = 该层缺失或交由上游/下层。

各层职责

职责
接入网关 · L3
统一 OpenAI 兼容 API、鉴权与凭据、按 token 限流与配额、多后端抽象、故障转移
推理路由 · L2
推理感知端点选择:前缀/KV 命中、负载、SLO、最小显存、会话粘连
控制面 · L2
自动扩缩、LoRA、PD 编排、GPU 优化、冷启动、多节点编排、滚动升级
数据面 · L1
推理引擎 Pod、Prefill/Decode worker、Runtime sidecar
KV / 存储
KV 多级卸载、跨实例复用、高速传输

Dynamo

组件
接入网关
Dynamo Frontend(OpenAI 兼容,治理类需自补)
推理路由
Smart Router · Rust
控制面
Planner(SLO GPU 规划)+ etcd + NATS
数据面
Prefill / Decode workers(vLLM/SGLang/TRT-LLM,多节点 PP)
KV / 存储
KV Block Manager + NIXL 传输(GPU/CPU/SSD/对象存储)

llm-d

组件
接入网关
Envoy · Inference Gateway
推理路由
Endpoint Picker (EPP) + GIE
控制面
K8s 控制器 + LeaderWorkerSet
数据面
vLLM Pods(Prefill/Decode)+ NIXL
KV / 存储
LMCache · 分层卸载

vLLM production-stack

组件
接入网关
可选接 Envoy AI GW / Semantic Router
推理路由
Router · Python(前缀/会话)
控制面
Helm + K8s 基础弹性(无专用 PD 编排)
数据面
vLLM Pods + Grafana/Prometheus
KV / 存储
LMCache · CPU/磁盘/远端

AIBrix

组件
接入网关
扩展 Envoy · LLM-aware Gateway + Plugins
推理路由
前缀缓存 + 最小显存 + SLO router + KV event 同步
控制面
PodAutoscaler / LoRA controller / GPU optimizer / StormService PD 编排
数据面
vLLM/SGLang/xLLM + 统一 AI Runtime sidecar(K8s+Ray)
KV / 存储
分布式 KV cache · 自研

KServe

组件
接入网关
Envoy AI Gateway + GIE
推理路由
借助 llm-d · EPP/GIE
控制面
InferenceService / LLMInferenceService CRD + Knative(缩到零)
数据面
vLLM(经 llm-d)/ predictor·transformer(传统模型)
KV / 存储
借助 llm-d · LMCache

Envoy AI Gateway

组件
接入网关
统一 OpenAI API · 多厂商凭据 · 按 token 限流 · 故障转移(本体所在层)
推理路由
可叠加 GIE(仅对自建后端)
控制面
— 无(仅治理策略 CRD)
数据面
上游:外部厂商(OpenAI/Bedrock/Azure)或 自建引擎(接 L2 栈)
KV / 存储
— 无

五、进程视图(运行时进程边界)

同样的分层职责,运行时究竟跑在一个进程里,还是拆成多个进程跨网络协作?这直接决定性能、故障域、可独立扩缩性与部署复杂度。

贯穿性结论

  • • 代理 ≠ 路由大脑,普遍是两个进程:Envoy(C++ 数据面)+ 外部处理器(ext_proc,gRPC 调用),让高性能代理与策略逻辑(Go/Python)解耦、各自独立扩缩。
  • • 控制面恒为独立进程、且"带外":扩缩/LoRA/编排控制器不在请求路径上,通过 K8s API/CRD 异步生效。
  • • KV cache 库内嵌在引擎进程;只有跨实例 / 分布式 KV 才是独立服务进程。PD 分离 = 不同进程,通常跨 Pod/节点,KV 经 NIXL 在进程间搬运。
  • • 到底哪个进程调用底层引擎实例? 在 Envoy+ext_proc 模型里,ext_proc/EPP 只做"选哪个实例"的决策并把结果回给 Envoy,真正建立连接、把请求发给引擎实例的是 Envoy 数据面进程本身,不是路由大脑。例外:production-stack 由 Router(Python) 直接调用;Dynamo 由 Router 经 NATS 派发给 Worker;KServe 在引擎 Pod 内还要多一跳 Knative queue-proxy 才转给 vLLM。
  • • 部署形态标注[ ] = 独立 Pod(跨 Pod 网络调用);{ } = 同一 Pod 内 sidecar(2 容器,localhost); = 发起对引擎实例调用的进程。

Dynamo — 多进程 · 自研分布式运行时(NATS/etcd)

llm-d — 多进程 · Envoy + ext_proc 经典拆分

vLLM production-stack — 少进程 · 代理+路由同进程

AIBrix — 多进程 · Envoy+plugins + 引擎 sidecar

KServe — 最多进程 · 多 sidecar(Knative)

Envoy AI Gateway — 2 进程 · 无本地引擎/KV 进程

读图要点:请求路径上的进程越多,单跳延迟越多但可独立扩缩/隔离故障;production-stack 进程最少(1 个路由进程)最简单;KServe 进程最多(含 Knative queue-proxy 等 sidecar)最重;Envoy 系普遍采用「数据面 + ext_proc」两进程模型——其中 ext_proc 只决策,由 Envoy 数据面进程真正发起对引擎实例的调用。


六、横向对比

表 A · 定位与生态

项目
主导方
层次
网关实现
K8s 依赖
Dynamo
NVIDIA
编排
自研 Rust 代理
可选
llm-d
RedHat/IBM/Google
编排
Envoy + GIE
强(仅 K8s)
production-stack
UChicago LMCache
编排
Python Router
优先,可脱离
AIBrix
ByteDance
编排
扩展 Envoy
强(仅 K8s)
KServe
CNCF 多方
通用服务
Envoy AI GW + GIE
强(仅 K8s)
Envoy AI Gateway
Tetrate/Bloomberg
接入/治理
Envoy Gateway
强(仅 K8s)

表 B · 技术能力

项目
KV 感知路由
PD 分离
分布式 KV
LLM 扩缩
多节点
Dynamo
✓ Smart Router
✓ 原生
✓ KVBM/NIXL
✓ Planner
✓ 显式
llm-d
✓ EPP/GIE
✓ NIXL
✓ LMCache
✓ LWS
production-stack
✓ 前缀/会话
部分
✓ LMCache
基础
借 K8s
AIBrix
✓ +SLO+显存
✓ StormService
✓ 自研
✓ 专用
✓ K8s+Ray
KServe
✓ 经 llm-d
经 llm-d
经 llm-d
✓ Knative
经 llm-d
Envoy AI GW
经 GIE

注:LWS = LeaderWorkerSet;GIE = Gateway API Inference Extension;EPP = Endpoint Picker。"经 llm-d / GIE" 指能力来自所集成的下层组件而非自身实现。


七、对自研模型网关的启示与建议

① 先定层,再定边界不要做一个"什么都管"的网关。明确你的"网关"是 Layer 3 接入治理(对标 Envoy AI Gateway),还是 Layer 2 编排控制面(对标 AIBrix/llm-d),抑或两层都要、但内部清晰分层。最常见且健康的形态是:Layer 3 做前门(统一 API / 鉴权 / 限流 / 多后端),Layer 2 做 KV 感知路由与编排,两层通过标准接口解耦。

② 路由必须"推理感知",轮询是基线之耻六个项目的最大公约数就是抛弃轮询。最低限度要做前缀缓存感知路由(把同前缀请求送到已缓存该前缀的实例),收益是 token/s 3× 量级。进阶维度:负载感知、最小 GPU 显存优先、SLO 感知、会话粘连。强烈建议直接采纳 Gateway API Inference Extension(GIE)+ Envoy 作为路由地基,而不是自研代理——除非你有 NVIDIA 级别的性能诉求和团队。

③ KV cache 是一等公民,需要全局视图路由质量取决于网关能否看到各实例的 KV 状态。借鉴 AIBrix 的 KV event 同步(实例向网关上报 KV 状态)与 LMCache 的跨实例 KV 卸载/复用。是否引入 PD 分离取决于规模——它收益大但显著增加 KV 搬运与编排复杂度,中等规模可以先不做,但路由与缓存层要预留演进空间。

④ 复用标准与开源组件,避免自研全栈生态已收敛到 Envoy + GIE(路由)、LMCache(KV 卸载)、NIXL(KV 传输)。站在这些之上把精力投到差异化(你的调度策略、成本模型、多租户治理),比重造代理/KV 层划算得多。Dynamo 的全自研路线只在极致性能 + 强团队时才成立。

⑤ 控制面 / 数据面分离 + Runtime sidecarAIBrix 的架构最值得抄:控制面(控制器:扩缩、LoRA、冷启动、GPU 优化)与数据面(引擎 + 统一 Runtime sidecar)解耦。Runtime sidecar 抽象不同引擎的 API 与指标,让你能多引擎(vLLM/SGLang/Dynamo)共存、平滑替换,是工程上的关键解耦点。

⑥ 扩缩与可观测要 LLM 专用不要用 QPS/CPU 驱动 HPA。采集 LLM 专用指标(队列深度、running/waiting 序列、KV 利用率、TTFT/TPOT),用 SLO 驱动扩缩,并正视冷启动(权重几十 GB)——预热、本地缓存、缩到零的取舍要早做。把这些指标统一标准化是 Runtime sidecar 的职责。

一句话建议:以 Envoy + Gateway API Inference Extension 为路由地基,参照 AIBrix 的控制面/数据面分层与 Runtime sidecar 抽象,把 前缀缓存感知路由 + LLM 专用扩缩 + KV 全局视图 作为第一版必做能力;PD 分离、分布式 KV、多节点按规模分阶段引入。差异化投在调度策略、成本/SLO 模型与多租户治理上。


参考来源

  • • github.com/ai-dynamo/dynamo · NVIDIA Dynamo 文档
  • • llm-d.ai · "Production-Grade LLM Inference at Scale with KServe, llm-d, and vLLM"
  • • docs.vllm.ai/projects/production-stack · vLLM Production Stack 文档
  • • github.com/vllm-project/aibrix · 发布说明 · arxiv 2504.03648 · blog.vllm.ai (2025-02)
  • • kserve.github.io · LLMInferenceService 文档
  • • aigateway.envoyproxy.io · Envoy AI Gateway 文档
  • • neureality.ai · 框架横向评述(2025-12)
发表评论
0评