Agentic 批量推理的目标是任务完成时间 (JCT) 而非 token 级 SLO。作者证明 prefill 优先调度虽拿到最优 TTFT 和最高 decode 吞吐却不是最优 JCT —— JCT 由 prefill/decode 效率的平衡决定。据此重新启用被冷落的流水并行 (PP),配合 JCT 感知调度和 PP 内嵌 MTP,构建 PipeSwift,在 64×H800 上比 wide-EP 快最多 1.45×。
现有并置 (colocated) 推理系统从 chatbot serving 继承了以 SLO 为中心的策略:立即接纳每个就绪 prefill 以压低 TTFT,同时维持大 decode batch 以最大化 decode 吞吐。但 agentic 工作负载(编码 agent、web-search agent)把中间 token 生成对用户隐藏,用户只感知每轮完成和工具调用动作。因此主指标从"满足 TTFT/TPOT 下最大化 goodput"变成"直接最小化完成时间"。作者提出两个根本问题:优化 chatbot SLO 是否等价于优化 agentic JCT?决定 JCT 的底层 trade-off 到底是什么?
Agentic 轮次的一个结构性特征放大了这一错配:相邻轮共享绝大部分上下文,平均前缀缓存命中率 >95%,于是每轮只在数万 token 的缓存前缀上追加不到 1K 新 token —— prefill 极短、极碎、远未打满硬件。

Paper's Figure 1(caption: "Turn-count and session-length distributions of GLM-4.7 and Qwen3.5 trajectories on BrowseComp."). 该图说明会话长度可达 200k token、轮数长尾,读者应注意:长会话 + 高前缀复用共同导致「短增量 prefill 摊在长缓存前缀上」,正是后文调度优化的靶心。
三个层次的贡献:
核心技术壁垒:把 MTP 的 draft–verify–extend 循环拆开、重排为 verify-extend-draft 并跨流水阶段协调(末阶段独做 extend+draft,其余阶段只做 verify forward),同时用非均匀层划分给末阶段留出 MTP 开销 headroom。这是当前开源系统全都缺失的能力(vLLM/SGLang 的 PP 均不支持投机解码),也是 PipeSwift 相对 vLLM PP2 拿到额外 ~1.74× 的来源。
64×H800、两个 360B+ MoE(GLM-4.7-360B、Qwen3.5-397B)、SWE-Bench + BrowseComp 确定性轨迹回放下:overall JCT 比 SGLang wide-EP 快 1.21–1.45×,比 vLLM PP2 快 1.60–2.33×,比用了 2× GPU 的 2P2D PD-disaggregation 快 1.14–1.54×;P99 turn-level JCT 低于最佳 baseline 的一半(10.12s vs 20.86s)。即便给 wide-EP 配上其最优 orchestration,PipeSwift PP2 仍快 1.24×。
每个 agent 轮次是一个闭环:轨迹在轮完成时推进,下一次工具/环境动作必须等完整响应返回后才能开始。
PipeSwift 的两大能力都建在 SPMD 分布式调度架构上:调度决策(batch issue、KV-page 分配、请求驱逐)在每个 worker 上复制,消除中心调度器;靠确定性微批划分算法 + 同步骤加入新请求来保证各分布式调度器一致。
本文属系统论文:核心并非闭式收敛证明,而是成本模型 + 受控扫描 + 消融。就 agent 类惯例而言:无形式化作者证明 — 仅实证(可被形式化界定但作者未界定的量:给定 $(I, P, W, \gamma)$ 下的 wave 时间上界;实际只给了 Eq. 9–10 的近似最优 $K^*$)。下面给出关键 notation 与方程物理意义,并做 6 项一致性检查。
| 符号 | 含义 |
|---|---|
| $A_B, C_i$ | batch 提交时间 / 任务 $i$ 完成时间 |
| $\text{JCT}_{\text{turn},j}=r_j-s_j$ | 轮 $j$ 就绪到完整响应返回的延迟 |
| $t_{\text{queue}},t_{\text{prefill}},t_{\text{decode}},t_{\text{stall}}$ | turn-level JCT 的四项分解(TTFT $=t_{\text{queue}}+t_{\text{prefill}}$) |
| $I$ | orchestration interval(decode step 数) |
| $\ell^{\text{cache}}_i,\ell^{\text{new}}_i$ | 请求 $i$ 的缓存前缀长 / 新 token 数 |
| $\alpha,\beta,\gamma$ | prefill 成本模型的二次/线性系数 / 每微批固定开销 |
| $K, P$ | 微批数 / PP degree |
| $W$ | wave 内所有就绪轮的总长度相关计算量 |
| $\ell^{\text{kv}}_i$ | 请求 $i$ 当前 KV/上下文长度 |

Paper's Figure 3(caption 述 $I=1$ 为 prefill 优先、$I>1$ 把 prefill 推迟聚合成大 batch). 中排($I=1$)每个到达请求立即接纳,导致碎片化 prefill 与频繁 decode 打断;下排($I>1$)把 BCD 聚合成一波,提升 prefill 效率但延后新请求进入 decode。读者应把 $I$ 理解为「prefill 效率 vs decode 效率」的连续旋钮。

Paper's Table 2(Qwen3-VL-235B, 单节点 EP8TP8 无 DP attention). 这是全文最载重的实验:wall time 在 $I=128$ 取最小 2481.9s,两端更差($I=1$ 为 3020.3、$I=512$ 为 3485.9,比值 1.40×);P 列 1093.7→304.6 证明 prefill 远未饱和;P50/P90/P99 最优点随 percentile 右移,直接支撑「平衡而非极值」的核心论点。

Paper's Figure 6(caption: "End-to-end performance on BC and SWE workloads...";bar 上数字为相对 PDWeaver 的归一化时间). 12 个子面板覆盖 {GLM-4.7, Qwen-3.5}×{512,1024 tasks}×{64K,80K,96K}。PipeSwift 在每个完成格中最低;"×" 崩溃标记集中在高压力 GLM 格(对应 2P2D 的 KV-transfer 失败)。注意短上下文/低压力下 EP8 或 PipeSwift 偶尔落后 SGLang EP16(<1×),说明优势并非无条件。

Paper's Table 3(GLM-4.7 BC, 512 tasks, 80K MaxLen;系统名此处标 "PDWeaver PP2"). (a) turn-level:PipeSwift P99=10.12s,不到次优 (2P2D 20.86s) 的一半。(b) 引擎侧:SGLang w/o p delay 的 prefill 独占 1962.4s,2P2D 用 2× GPU 仅打平(3004.7 vs 3031.4),vLLM PP2 无聚合无 MTP → decode 高达 2428.3s;PipeSwift 把 prefill 压到 705.8s、wall 到 2243.9s。

Paper's Figure 7(归一化到 SGLang EP16 w/o p delay). 争用越大优势越大:C=28 时相对 vLLM PP2 达 1.86×,MaxLen 192K 时达 1.72×。cost-model wave 划分 + 自适应 decode 重划分让微批在长上下文下仍均衡,故增益随压力上升而扩大,而非被侵蚀。

Paper's Table 4. decode 侧传输队列在 74.9–100% 采样状态非空;均值深度随 concurrency 从 1.28 升到 10.93、随上下文从 1.40 升到 4.32,最终超时崩溃。这解释了 2P2D 为何在高压 sweep 中缺席 —— 全量 KV 传输(而非增量)在 agentic「小增量 + 大缓存」下每轮多传 >30× 字节。
| 步 | 论断 | 依据(论文内部) |
|---|---|---|
| 1 | Agentic 目标是 JCT(makespan/turn-level),非 token SLO;用户看不到 token 流 | §1 para 2, §3 Eq. 2–4 |
| 2 | prefill 优先虽拿最优 TTFT + 最高 decode 吞吐,却不是最优 JCT | §4.2 Insight #1;Tab. 2($I=1$ decode 最低但 wall 差 1.22×) |
| 3 | 原因:prefill 优先最小化 $t_{\text{queue}}$ 却让碎片 prefill 抬高所有请求的 $t_{\text{stall}}$ | Eq. 5 分解 + Tab. 2 P 列 1093.7→304.6 |
| 4 | 故 JCT 由 prefill/decode 效率的平衡决定,最优在内部($I=128$) | §4.2 Insight #3;Tab. 2 wall U 形 |
| 5 | 任何改变 prefill/decode 相对成本的机制都会移动最优点 → 转向并行轴 | §4.2 末 → §5 |
| 6 | PP 避免逐层跨节点 EP 通信、只做邻接 activation 传输,prefill 更快 | §5.2 Insight #4;Tab. 3(PP2 prefill 1122 vs EP16 1962) |
| 7 | PP 无需比 wide-EP 更好的 decode,只要 prefill 优势抵消 decode 增量即降低 JCT | §5.2 Insight #4 |
| 8 | 并行与调度须共同探索:更便宜的 prefill 把最优 $I$ 推小 | §5.2 Insight #5;Fig. 8(PP $I=16$ vs EP $I=32$,PP 仍快 1.24×) |
| 9 | 工程化 PP 需抑制 bubble(cost-model 微批)+ 把 MTP 塞进 PP(verify-extend-draft) | §6.1–§6.2 |
系统为"open-source pipeline-parallel runtime"(摘要/§1/§6 均称开源),但 L1 未提供代码仓库 URL 或文件行号,因此:[实现未公开 —— L1 无仓库/行号引用]。以下为可从论文定位的关键实现细节与壁垒。
PP 内嵌 MTP 的 verify-extend-draft 重排 + 非均匀层划分。SGLang 的 draft-verify-extend 是单机语义;搬到 PP 后,draft/extend 若放在每个 decode step 都要跨阶段协调,中心调度器难以承受。PipeSwift 让非末阶段只做 verify forward、末阶段独做 verify+extend+draft,每步把 accept length 与下批 draft token 经 P2P 回传给前序阶段更新状态。由于末阶段额外承担 KV 扩展 + MTP 层 + 采样,均匀分层会让末阶段成稳态瓶颈 —— 故给末阶段分更少 backbone 层,其余层重分到前序阶段(离线 profile per-layer verify + KV-extend + MTP + sample 成本后选整数层数)。这是 vLLM/SGLang 现有 PP 都不支持的能力,也是相对 vLLM PP2 额外 ~1.74× 的来源(§6.2.2, §7.5 Tab. 5)。