RTP-LLM: Alibaba 生产级推理引擎(100M+ 用户)。集成 PD 解离、4 层 KV cache 层级、cache 感知调度、模块化推测解码、文件序加载,对比 vLLM/SGLang 实现 6.3x 加载加速、37% TTFT P95 降低、2.52x 多模态吞吐提升。
生产级 LLM serving 面临四重叠加瓶颈:
RTP-LLM 通过集成系统设计同时解决四个挑战:
$$score(w) = \alpha \cdot \frac{local\_match\_len(w)}{total\_seq\_len} + \beta \cdot \frac{remote\_match\_len}{total\_seq\_len} - \gamma \cdot \frac{predicted\_latency(w)}{max\_latency}$$
平衡 cache 复用收益与延迟代价。Decode 路由使用 chat-ID 亲和保持 KV cache locality。
核心技术壁垒:统一 hash map 前缀匹配 + 多层 cache 层级 + cache 感知评分函数构成紧耦合协同优化系统。统一 map 将前缀匹配从 $O(B \times W)$ 降至 $O(B)$;4 层层级(GPU/CPU/RDMA/3FS)保证 cache 跨驱逐级别持久化;评分函数($\alpha, \beta, \gamma$ 权重、20ms 状态轮询、50ms cache 同步)联合优化 cache 复用与延迟。复现单个组件不难,但调度决策、cache 放置、请求路由的协同设计 — 在生产流量下联合自适应 — 需要大量运营调优,仅凭论文无法获得。
对比 vLLM 和 SGLang,在真实生产流量和受控基准上(8B–480B 模型):
| 维度 | 关键结果 |
|---|---|
| 模型加载(235B, TP=8) | 6.27x 加速(33s vs 204–207s) |
| 流量调度(生产环境) | 35–37% TTFT P95 降低,215% cache 复用提升,75% prefill 机器缩减 |
| PD 解离(480B MoE) | 4.72x–5.33x TTFT 加速,45% cache 命中(vs 19–29%) |
| 推测解码(DeepSeek-V3) | 1.12x–2.48x 吞吐提升 |
| 量化推理(Qwen3-32B) | 35–40% batch 延迟降低,1.9x–3.0x TTFT 提升 |
| 多模态 EPD(Qwen2.5-VL-7B) | 1.86x–2.52x 吞吐,2.12x–2.36x TTFT 降低 |

Paper Figure 1: RTP-LLM System Architecture。 系统由 Frontend Application(tokenization / 预处理)、Master(全局协调 / 调度 / 前缀匹配)、Prefill Node 和 Decode Node(PD-Disaggregation 模式下物理分离)、Multi-Tiered Cache(4 层)、Name Service(心跳 / 发现)、DP-Controller(节点内 batch 执行)组成。每个推理节点配备 Carbon 服务实现自动故障恢复。
请求生命周期遵循 Algorithm 1:
支持两种部署模式:

Paper Figure 2: Model Load Optimizations。 展示从模型结构驱动加载(冗余读取、非顺序访问)到文件序驱动加载(顺序 I/O、单读取者 + 分布式 broadcast)的转变。右侧展示 I/O–通信 overlap pipeline,文件读取与 tensor broadcasting 并行执行。
文件序加载的关键洞察:传统方式按模型层结构遍历 — 每个 TP 进程独立读取同一文件中分散的 tensor,导致 FUSE 预取失效和文件缓存浪费。RTP-LLM 反转遍历顺序:按文件顺序读取所有 tensor,每个文件仅由一个进程读取后 broadcast 给其他进程。

Paper Figure 3: EPD Disaggregation。 ViT(视觉编码器)和 LLM 解耦部署在独立 GPU stream 上。GPU0 仅处理 ViT 编码(9,280 MB 显存),GPU1 承载语言生成(89,088 MB 显存)。这种非对称布局在高并发下实现计算 overlap,并释放 GPU0 内存用于更高 ViT batch 并发。
Master 的调度决策集成三个数据源,分别有不同的轮询频率:
对于 prefill,Master 按相似 sequence length 分组(窗口 $w = \max(DP\_size, |R|)$),当所有 DP-Controller 忙时使用预测调度:
$$t_{available}(d_i) = \max_{r \in running(d_i)} t_{start}(r) + \hat{t}_{prefill}(r)$$
对于 decode,chat-ID 亲和将回访用户路由到同一 worker 以复用 KV cache,配合准入控制和反压防止 cache thrashing。
无形式化理论证明 — 仅实证,但包含三个工程模型方程。
| Symbol | Definition | Source | ||
|---|---|---|---|---|
| $w$ | 调度窗口大小 | §5.1 | ||
| $DP\_size$ | 数据并行组大小 | §5.1 | ||
| $\ | R\ | $ | 队列深度(待处理请求数) | §5.1 |
| $t_{available}(d_i)$ | DP-Controller $d_i$ 的预测可用时间 | §5.1 | ||
| $t_{start}(r)$ | 请求 $r$ 开始执行的时间 | §5.1 | ||
| $\hat{t}_{prefill}(r)$ | 请求 $r$ 的预测 prefill 时间 | §5.1 | ||
| $\alpha, \beta, \gamma$ | Cache 复用 vs. 延迟权重因子 | §5.2.5 | ||
| $local\_match\_len(w)$ | Worker $w$ 的本地 cache 前缀匹配长度 | §5.2.5 | ||
| $remote\_match\_len$ | 远程 cache 前缀匹配长度 | §5.2.5 | ||
| $total\_seq\_len$ | 请求的总序列长度 | §5.2.5 | ||
| $predicted\_latency(w)$ | Worker $w$ 的预测延迟 | §5.2.5 | ||
| $B$ | 请求中的 block 数 | §5.2.2 | ||
| $W$ | Worker 数量 | §5.2.1 |
Eq. 1 — $w = \max(DP\_size, |R|)$:调度窗口动态扩展。队列浅时($|R| < DP\_size$)默认填满所有并行槽;积压时窗口增长至队列深度,实现更好的长度分组以减少 padding 浪费。
Eq. 2 — $t_{available}(d_i) = \max_{r \in running(d_i)} t_{start}(r) + \hat{t}_{prefill}(r)$:预测调度通过取所有运行请求中最大剩余时间估计各 DP-Controller 何时释放。用 max 而非 sum 因为 batch 内 prefill 并发执行 — controller 在最长请求完成时释放,而非按顺序逐个完成。
评分函数 — $score(w) = \alpha \cdot \frac{local\_match\_len(w)}{total\_seq\_len} + \beta \cdot \frac{remote\_match\_len}{total\_seq\_len} - \gamma \cdot \frac{predicted\_latency(w)}{max\_latency}$:平衡 cache 复用收益(正项)与延迟代价(负项)。本地 cache 权重更高($\alpha > \beta$)因 GPU 驻留 cache 免去传输。函数对所有因子线性 — 无凸性结构 — 易于调优但对非线性 cache-延迟权衡可能次优。
缺失:一个形式化排队模型(M/G/k 或类似)关联请求到达率、cache 命中率和服务速率,本可澄清:(a) 为何淘宝商家负载 cache 复用提升 <1% 而机器人 Q&A 为 215%;(b) PD 解离停止获益的吞吐天花板(Table 4 显示三框架吞吐一致 ~1100 tok/s);(c) 作为负载特征函数的最优 prefill:decode 节点比。

Paper Table 2: 两个真实生产负载的流量调度性能对比。 开启流量调度(TS)后:内部机器人 Q&A 实现 37.2% TTFT P95 降低(83.3ms → 52.3ms),淘宝商家客服实现 35.4% TTFT P95 降低(350ms → 226ms)。
Cache 复用提升高度不对称:机器人 Q&A 从 26.6 跳至 83.8 tokens(215%),而淘宝商家几乎不变(833 → 840 tokens,<1%)。这种差异反映了商家服务已有高系统提示级 cache 复用(2500 token 输入中大量共享前缀),调度优化空间有限。机器人 Q&A 的短且多样 query(300–1000 tokens)从统一 hash map 的跨 worker 匹配中获益更多。
75% prefill 机器缩减(80 → 20 台)是运营层面最具冲击力的结果 — cache 感知调度直接带来的成本节约。

Paper Table 4: Qwen3-Coder-480B-A35B-Instruct-FP8 性能对比。 RTP-LLM 达到 45.09% cache 命中率(vs SGLang 28.70%、vLLM 19.10%)和 1338ms TTFT(vs SGLang 6323ms、vLLM 7135ms)— 4.72x–5.33x TTFT 加速。
关键发现:三个框架的吞吐本质相同(~1082–1153 tok/s)。这揭示 TTFT 优势完全来自 cache 调度而非 decode 侧改进。Decode 路径不是差异化因素 — 价值在于 prefill 侧的 cache 复用和调度智能。
部署:5 节点 × 8 GPU,4 节点 prefill / 1 节点 decode,TP=8,EP=8,使用 DeepEP 做 All2All 通信,NCCL IBRC 做 KV 传输。

Paper Table 5: DeepSeek-V3-0324 推测采样吞吐对比。 RTP-LLM 达到 187.53 tok/s vs vLLM 167.95(1.12x)和 SGLang 75.785(2.48x)。对 vLLM 的优势归因于 C++ 算子直接启动消除 Python-to-C++ 调用开销。
论文使用 step size = 1(每步仅预测一个 token),这异常保守 — 多数推测解码工作使用 k=3–7。真实部署 MTP 数据(Table 6)显示 ~1.9 tokens/step 接受率,KV cache 利用率 >90%,SM 利用率 ~60%,说明生产负载特征限制了推测深度。
真实部署指导(235B MoE + MTP):1TP8DP 适合延迟敏感在线服务(128–512 并发下最优 TPOT);2TP4DP 离线吞吐导向场景最优(峰值 599.8 TPS);4TP×4 仅在极低并发(64 请求)下最优;2TP8DP 因跨 GPU TP 通信瓶颈退化最快。

Paper Table 7: Qwen3-235B-A22B 模型加载时间对比。 RTP-LLM 在 TP=8 下 33.0s vs SGLang 206.7s 和 vLLM 204.0s — 6.18x–6.27x 加速。SGLang 和 vLLM 展现负扩展性(TP=4→8 加载时间增加 16.5–17%),而 RTP-LLM 改善(37.1s → 33.0s)。原因:RTP-LLM 文件序驱动方式在更多 GPU 间分布 I/O 负载,而 vLLM/SGLang 模型结构驱动方式在更高 TP 下产生更多冗余读取和串行化。
Qwen3-32B 单 GPU:FP8 KV Cache 配置下 35–40% batch 延迟降低;所有配置下 1.9x–3.0x TTFT 降低。精度影响极小(PPL 7.59–8.09 vs 基线 7.59–7.67)。
Qwen2.5-VL-7B 在 GQA benchmark:6288.48 tok/s 吞吐(1.86x SGLang,2.52x vLLM);1737ms TTFT(2.36x 和 2.12x 降低)。EPD 架构造成极端内存非对称:GPU0 使用 9,280 MB(仅 ViT)而 GPU1 使用 89,088 MB(LLM),这是有意的权衡 — 释放的 GPU0 内存允许更高 ViT batch 并发。
| Step | Claim | Evidence | Validity |
|---|---|---|---|
| 1 | 文件序 I/O 消除冗余读取并启用 FUSE 预取 | Fig. 2 机制 + Table 7(TP=8 下 6.27x 加速)+ 基线负扩展性 | 强 — vLLM/SGLang 在更高 TP 下负扩展佐证冗余读取诊断 |
| 2 | 统一 hash map + cache 亲和调度提升 KV cache 复用 | Table 2 + Table 3(机器人 Q&A 215% 提升)+ 75% prefill 机器缩减 | 部分强 — 机器人 Q&A 215% 有说服力,但淘宝商家 <1% 提升表明机制依赖负载特征 |
| 3 | 4 层 cache 层级实现跨级别持久化和恢复 | Algorithm 1(4 层解析)+ Table 4(45% cache 命中 vs 19–29%) | 中等 — cache 命中提升已证实,但论文未隔离各层贡献 |
| 4 | PD 解离 + cache 感知调度降低 TTFT 而不牺牲吞吐 | Table 4(4.72x–5.33x TTFT 加速,吞吐一致) | 强 — 吞吐平价实际上强化了论点:TTFT 增益是"免费的" |
| 5 | C++ 推测解码消除 Python-to-C++ 开销 | Table 5(vs vLLM 1.12x) | 弱到中等 — 1.12x 改进modest,归因缺乏 profiling 数据支持 |
| 6 | EPD 解离解耦 ViT 和 LLM 提升吞吐 | Fig. 7(1.86x–2.52x 吞吐,非对称内存) | 强 — 内存非对称数据(9.3 GB vs 89 GB)直接确认解耦,吞吐增益显著 |
RTP-LLM 已开源:alibaba/rtp-llm(Alibaba, 2025)。
核心组件到实现的映射:
| Component | Description | Implementation note |
|---|---|---|
| 文件序加载 | 集成 IBM fastsafetensors + 共享内存复用 | 基于 Yoshimura et al., 2025;自定义共享内存 buffer 池消除 600ms/2GB 分配开销 |
| 统一 hash map | $O(B)$ 跨 worker 前缀匹配 | Master 调度逻辑核心 |
| 4 层 KV cache | GPU → 本地 CPU → RDMA → 3FS 层级 | Algorithm 1;3FS 为阿里内部基础设施 |
| 推测解码框架 | 4 个模块化 C++ 组件 | ProposeExecutor / ScoreExecutor / SpeculativeSampler / SpeculativeUpdater |
| EPD 解离 | ViT/LLM 解耦部署 | 独立 GPU stream 分配 |
| DeepEP 集成 | MoE EP 的 All2All 通信 | Zhao et al., 2025a;480B 模型部署中使用 |
| NCCL IBRC | PD 解离中 KV cache 传输 | InfiniBand Reliable Connection 模式 |
最难复现的是调度、缓存和路由在生产环境下的紧耦合协同设计: