发表时间: 2026-03 · arXiv:2603.13358 (UChicago)
作者/机构: Zongze Li 1, Jingyu Liu 1, Zhen Xu 1, Yineng Zhang 2, Tahseen Rabbani 1, Ce Zhang 1
本文研究了在多轮对话场景下,现代大语言模型(LLM)推理引擎中标准的预填充-解码(Prefill-Decode, PD)分离架构的效率问题。研究发现,传统的PD架构在处理多轮交互时存在两大根本性低效问题:
本文的核心洞察在于,并非所有的预填充操作都具有同等的干扰性。具体而言,追加式预填充(append-prefill)——仅处理新的输入Token并重用已缓存的KV状态——对解码过程造成的速度减慢,比处理全新无缓存上下文的完全预填充(full prefill)要小一个数量级。这一发现启发了一种新的策略:将追加式预填充操作(主要发生在对话的第二轮及以后)直接在解码节点上本地执行。
然而,全面的分析表明,不存在任何单一的固定路由策略能够同时满足所有服务等级目标(SLO),如首个Token生成时间(TTFT)、每个输出Token的时间(TPOT)和吞吐量。
基于以上洞察,本文提出了具备预填充能力的解码(Prefill Prefill-capable Decode, PPD)分离架构。这是一个动态路由系统,它能够根据当前的工作负载、用户指定的SLO权重以及初始节点配置,为每个第二轮及以后的请求动态决定是在解码节点上本地处理(利用已缓存的KV状态),还是发送到预填充节点处理。PPD通过一个简单的算法,利用预先计算的离线统计数据来优化服务目标,并且能够无缝集成到传统的PD部署中。
主要贡献总结如下:
图1. 在长上下文工作负载(10k输入,100输出Token,5轮)下,三种负载水平的第99百分位(P99)TTFT与每秒Token数(TPS)的帕累托前沿。更高的TPS和更低的TTFT更优(左上角为理想状态)。基线(橙色):PD和Replica配置,其中第二轮及以后的请求总是需要P节点处理。具备D本地处理能力(蓝色):允许解码节点通过追加式预填充在本地处理第二轮及以后请求的配置。“最佳”标注表示我们的动态PPD路由系统选择的配置,验证了其正确的权衡优化。附录中的图9展示了小上下文工作负载的结果,显示了在不同工作负载下的一致趋势。
LLM推理的两个阶段。LLM推理分为两个阶段。预填充(Prefill)阶段并行处理输入提示,生成第一个输出Token并填充KV缓存;对于n个Token,其注意力计算复杂度为$O(n^2)$,是计算密集型任务,尽管FlashAttention【6, Dao, T. et al. Flashattention: Fast and memory-efficient exact attention with ioawareness, 2022】将内存复杂度从二次降至线性。解码(Decode)阶段则自回归地生成Token,每个Token都需要加载完整的模型权重;这是内存带宽密集型任务【49, Yu, G.-I. et al. Orca: A distributed serving system for TransformerBased generative models. In 16th USENIX Symposium on Operating Systems Design and Implementation (OSDI 22), 2022】。分组查询注意力(GQA)【2, Ainslie, J. et al. Gqa: Training generalized multi-query transformer models from multi-head checkpoints, 2023】在保持模型质量的同时减少了KV缓存的内存占用。KV缓存(来自先前Token的键值状态)随上下文线性增长,与模型权重一起占据了主要的GPU内存。
扩展LLM服务的挑战。扩展LLM服务最直接的方法是复制:在多个GPU上部署相同的模型实例,每个实例独立处理请求。然而,将预填充和解码放置在同一GPU上会导致预填充-解码干扰【52, Zhong, Y. et al. Distserve: Disaggregating prefill and decoding for goodput-optimized large language model serving, 2024】:长时间运行的预填充计算会阻塞解码迭代,导致正在进行的生成任务出现不可预测的延迟峰值。分块预填充(Chunked-prefill)技术【1, Agrawal, A. et al. Taming Throughput-Latency tradeoff in LLM inference with Sarathi-Serve. In 18th USENIX Symposium on Operating Systems Design and Implementation (OSDI 24), 2024】通过将预填充分割成与解码交错执行的小块来缓解此问题;DeepSpeed-FastGen【13, Holmes, C. et al. Deepspeed-fastgen: Highthroughput text generation for llms via mii and deepspeedinference, 2024】进一步引入了动态分割融合(Dynamic SplitFuse)以实现高效的Token组合。然而,当预填充工作负载很重时,这些技术无法完全消除干扰。
PD分离架构的原理与优势。预填充-解码(PD)分离架构通过将预填充和解码物理上分离到不同的GPU池来减轻干扰【52, Zhong, Y. et al. Distserve: Disaggregating prefill and decoding for goodput-optimized large language model serving, 2024】【32, Patel, P. et al. Splitwise: Efficient generative llm inference using phase splitting, 2024】。预填充节点(P)处理传入的提示,并通过网络将生成的KV缓存传输到解码节点(D);D节点随后执行自回归生成而不会中断。这种架构消除了干扰,使得P和D资源可以独立扩展,并允许使用异构硬件【32, Patel, P. et al. Splitwise: Efficient generative llm inference using phase splitting, 2024】。
PD分离的行业应用与成本。PD分离已迅速成为行业标准,被所有主流服务框架(如vLLM【18, Kwon, W. et al. Efficient memory management for large language model serving with pagedattention, 2023】、SGLang【51, Zheng, L. et al. Sglang: Efficient execution of structured language model programs, 2024】、TensorRT-LLM、LMDeploy【5, Contributors, L. Lmdeploy: A toolkit for compressing, deploying, and serving llm. 2023】和NVIDIA Dynamo【30, NVIDIA. NVIDIA Dynamo: A low-latency distributed inference framework for scaling reasoning AI models, 2025】)支持,并由DeepSeek【7, DeepSeek-AI, et al. Deepseek-v3 technical report, 2025】和Gemini【40, Team, G., et al. Gemini: A family of highly capable multimodal models, 2025】等服务提供商进行生产规模部署。然而,分离架构引入了一个根本性成本:每个请求都需要通过网络传输完整的KV缓存。对于一个具有2K Token上下文的Llama-3.1-8B模型,每次传输的数据量约为256 MB。近期的研究工作探索了其他分离策略:DuetServe【11, Gao, L. et al. Duetserve: Harmonizing prefill and decode for llm serving via adaptive gpu multiplexing, 2025】通过自适应SM分区在单个GPU内实现分离级别的隔离;Nexus【36, Shi, X. et al. Nexus:proactive intra-gpu disaggregation of prefill and decode in llm serving, 2025】在不同阶段间主动重新分配GPU资源;TaiChi【42, Wang, C. et al. Prefill-decode aggregation or disaggregation? unifying both for goodput-optimized llm serving, 2025】统一了聚合与分离,表明最优策略取决于SLO约束。
单向KV传输协议。PD分离架构的一个决定性特性是其KV传输协议的方向性:P节点作为KV的生产者,D节点作为消费者,没有从D到P的反向通道。这一生产者/消费者契约在所有主要生产引擎中都得到了保留【52, Zhong, Y. et al. Distserve: Disaggregating prefill and decoding for goodput-optimized large language model serving, 2024】【18, Kwon, W. et al. Efficient memory management for large language model serving with pagedattention, 2023】【51, Zheng, L. et al. Sglang: Efficient execution of structured language model programs, 2024】。在多轮服务中,一个直接后果是D节点上计算的任何KV状态(包括所有解码出的响应)对P节点都是不可达的,因此每个新轮次都必须重新走完完整的P→D流水线。外部KV缓存层【33, Qin, R. et al. Mooncake: A kvcache-centric disaggregated architecture for llm serving, 2025】【14, Hu, C. et al. Memserve: Context caching for disaggregated llm serving with elastic memory pool, 2024a】【10, Gao, B. et al. Cost-efficient large language model serving for multi-turn conversations with cachedattention, 2024】通过在分离拓扑之外增加一个独立的存储层来解决此问题,而不是改变生产者/消费者契约本身。
多轮对话的主导地位与重计算成本。现实世界的LLM部署以多轮对话为主:聊天机器人和智能体系统通常每个会话包含多轮交互【8, Duan, H. et al. Botchat: Evaluating llms’ capabilities of having multi-turn dialogues, 2023】。在PD分离架构下,每个新轮次的请求都被发送到P节点,该节点重新计算整个对话的KV缓存(包括之前的输出),然后将其传输到D节点进行自回归生成。在后续轮次中,历史Token在输入长度中占主导地位【10, Gao, B. et al. Cost-efficient large language model serving for multi-turn conversations with cachedattention, 2024】,使得这种重计算成为多轮工作负载中预填充的主要成本。
现有解决重计算问题的方法。越来越多的工作通过外部KV缓存存储来解决此问题:CachedAttention【10, Gao, B. et al. Cost-efficient large language model serving for multi-turn conversations with cachedattention, 2024】使用分层缓存;Mooncake【33, Qin, R. et al. Mooncake: A kvcache-centric disaggregated architecture for llm serving, 2025】提供集群范围的分布式KV存储;MemServe【14, Hu, C. et al. Memserve: Context caching for disaggregated llm serving with elastic memory pool, 2024a】将上下文缓存与分离架构统一;LMCache【24, Liu, Y. et al. Lmcache: An efficient kv cache layer for enterprise-scale llm inference, 2025b】提供模块化的KV缓存层。SGLang【51, Zheng, L. et al. Sglang: Efficient execution of structured language model programs, 2024】和vLLM【18, Kwon, W. et al. Efficient memory management for large language model serving with pagedattention, 2023】中的前缀缓存(Prefix caching)实现了对重复前缀的KV重用。互补的方法包括选择性重计算【46, Yao, J. et al. Cacheblend: Fast large language model serving for rag with cached knowledge fusion, 2025】、CPU卸载【3, Chen, Z. et al. Magicpig: Lsh sampling for efficient llm generation, 2024】【39, Sun, H. et al. Shadowkv: Kv cache in shadows for high-throughput long-context llm inference, 2025】、KV压缩【19, Li, Y. et al. Snapkv: Llm knows what you are looking for before generation, 2024】【20, Liu, J. and Zhang, C. Hamburger: Accelerating llm inference via token smashing, 2025】、流式处理【23, Liu, Y. et al. Cachegen: Kv cache compression and streaming for fast large language model serving, 2024】、前缀感知注意力【47, Ye, L. et al. Chunkattention: Efficient self-attention with prefix-aware kv cache and twophase partition, 2024】和压缩内存【28, Munkhdalai, T. et al. Leave no context behind: Efficient infinite context transformers with infini-attention, 2024】。
本文的补充性方法。这些方法共享一个共同策略:将KV缓存存储在外部,或要求请求返回到同一个实例。本文采取一种互补的方法:调整路由,使后续轮次的请求直接在已经持有KV缓存的解码GPU上执行。一项同期的工作AMPD【12, He, W. et al. Efficient multi-round llm inference over disaggregated serving, 2026】也探索了基于路由的方法来缓解多轮服务的低效问题,但它使用的是实时队列状态而非本文的离线优化框架。
核心问题与决策变量。核心问题是在分离式服务中,应在预填充(P)节点还是解码(D)节点上计算追加式预填充(Append-Prefill, AP)操作。我们使用变量$x$来表示两种相关的含义:一个是在硬件层面,将固定比例$x \in [0, 1]$的AP操作路由到D节点(对所有请求统一);另一个是针对每个请求的二元决策$x \in \{0, 1\}$(通过P节点路由或在D节点上本地处理)。
静态策略的探索与不足。第4节中,我们对五个静态比例$x \in \{0, \frac{1}{3}, \frac{1}{2}, \frac{2}{3}, 1\}$和三种P:D节点分配$\pi$(1P_3D, 2P_2D, 3P_1D)进行了扫描测试,测试涵盖了解码密集型、均衡型和预填充密集型的工作负载$\psi$。我们发现,没有单一的静态$x$值能同时在TTFT、TPOT和吞吐量上取得最优,这促使我们设计一个基于每个请求的动态策略。
PPD的动态路由优化框架。给定节点分配$\pi$和操作员指定的权重$w = (w_{ttft}, w_{tpot})$,我们为工作负载$\psi$定义了一个评分函数$S$,用于评估本地处理($x=1$)相对于通过P节点路径($x=0$)的收益:
其中,$\Delta_{ttft}$是当$\psi$在本地处理而非通过P节点时,TTFT的相对提升;$\Delta_{tpot}$是TPOT的相对下降。对于每个第二轮及以后的请求,如果$S > 0$,则在本地路由;否则通过P节点路由。第一轮请求总是通过PD路径($x=0$),因为没有已缓存的KV。PPD通过一个离线计算的查找表来实现这一策略。传统PD是该框架下$x \equiv 0$的特例。吞吐量是一个系统级的涌现指标,不按请求进行优化,但随着KV传输量的减少而提高。
本节首先建立一个关键的经验性结果,该结果支撑了将追加式预填充(AP)路由到解码(D)节点的益处:AP比完全预填充(full prefill)引起的干扰小一个数量级,使得D节点在本地处理第二轮及以后的请求成为可能。然后,我们进行了一项涵盖3060个配置的全面基准测试,以评估完全AP-to-D配置($x=1$)的有效性并描述其权衡。
PD分离的核心假设及其挑战。PD分离背后的核心假设是所有预填充操作都会严重干扰解码,因此需要物理隔离。最近的研究【11, Gao, L. et al. Duetserve: Harmonizing prefill and decode for llm serving via adaptive gpu multiplexing, 2025】【36, Shi, X. et al. Nexus:proactive intra-gpu disaggregation of prefill and decode in llm serving, 2025】已开始通过探索自适应隔离策略来挑战这一假设。我们通过区分两种类型的预填充来进一步推进这一方向。
完全预填充 vs. 追加式预填充。完全预填充处理一个没有任何缓存上下文的新提示,这是标准的第一轮场景,对于n个输入Token,其注意力复杂度为$O(n^2)$。追加式预填充仅处理新的Token,同时重用先前轮次缓存的KV。对于在n个已缓存Token的上下文中追加m个新Token的第二轮及以后的请求,追加式预填充仅为这m个新Token计算注意力(每个Token关注n+m个键),复杂度为$O(m(n+m))$。当$m \ll n$时(这在后续对话中很典型),追加式预填充比处理相同总序列长度的完全预填充便宜大约$n/m$倍。
图2. 预填充-解码干扰。将解码与一个完全预填充或一个追加式预填充操作(两者都处理1024个Token)共置时,解码TPOT的下降情况。完全预填充导致显著的减速;追加式预填充则接近基线水平。附录中的图7展示了4个预填充操作的实验,显示了相同的趋势。
干扰测量。我们在一台H100 GPU上使用Llama-3.1-8B进行了受控的微基准测试,以隔离干扰效应。我们测量了与完全预填充或追加式预填充共置时解码TPOT的下降情况(图2)。在批处理大小为200时,完全预填充导致约48%的减速;而追加式预填充仅导致约2%的减速,相差一个数量级。当有4个并发预填充时(见附录图7),完全预填充的干扰达到+57%,而追加式预填充保持在+21%,因此在高并发下这种差距依然存在。
干扰差距的持续性。这种差距在不同上下文长度下依然存在:在32K Token时,完全预填充的干扰增长到3-4倍,而追加式预填充即使在64K Token时也保持在25%以下(见附录图8)。这些结果证实,解码节点可以安全地在本地处理第二轮及以后的请求。
系统评估的配置空间与方法。本小节描述了用于系统性评估不同P/D分配和路由参数如何影响多轮服务性能的配置空间和方法论。
机器类型与路由参数。我们定义了三种机器类型:P(仅预填充)、D(解码)和R(副本)。路由参数$x \in [0, 1]$决定了D节点在第二轮及以后的行为:当$x=0$时,D节点每轮都从P节点接收KV传输(传统PD);当$x=1$时,D节点使用缓存的前缀在本地处理新的输入Token(完全AP-to-D),从而消除了网络传输开销。图3a展示了这些路由方案的运作方式:副本(本地执行)、PD($x=0$:每轮都有P→D的KV传输)和完全AP-to-D($x=1$:仅在第一轮有P→D的KV传输)。
图3. 使用PPD动态路由追加式预填充。我们阐述了PPD背后的核心概念:PPD(右)根据用户SLO、系统估算的工作负载和初始节点配置,动态地将多轮对话的追加式预填充操作路由到预填充或解码节点。与副本(左)相比,PPD保留了分离架构的所有优点。与PD(中)相比,PPD通过本地缓存减轻了繁重的KV缓存传输和追加式预填充的额外重计算,并能随时调整以满足各种服务需求。我们想强调,PD和任何具有固定x%追加式预填充路由到解码节点的策略都是我们PPD的特例。
配置空间。我们使用这三种机器类型和4个GPU,探索了17种配置,包括7种混合配置。然而,由于混合配置通常表现不如纯PD替代方案,且与AP路由优化正交,我们专注于10个核心配置:副本(1个配置)、$x=0$配置(3个配置:传统PD)、$x=1$配置(3个配置:完全AP-to-D)和$0 < x < 1$(3个配置:部分AP路由到D)。
工作负载。我们设计了18种合成工作负载,通过组合2种第一轮输入/输出长度设置和9种第二轮设置。这些设置覆盖了从解码密集型(如$n_{in}=32, n_{out}=512$)到预填充密集型(如$n_{in}=1024, n_{out}=32$)的全部多轮对话模式。
实验设置。所有实验均在配有4个NVIDIA H100 80GB HBM3 GPU(通过NVLink连接)的内部集群节点上运行。我们使用Llama-3.1-8B作为主要模型,并对Qwen2.5-14B和Qwen3-30B-A3B进行了验证实验。每个配置在10个QPS级别(0.5到20)下进行评估,共产生3060个数据点。每个测试点运行10秒,对话根据泊松过程到达。我们测量第一轮TTFT、第二轮TTFT、平均TPOT、吞吐量和成功率。
量化$x=1$配置的优势。我们现在量化$x=1$配置(完全AP-to-D)相对于传统PD分离($x=0$)的优势。核心发现是:从$x=0$切换到$x=1$通过消除后续轮次的KV传输,将第二轮TTFT减少了48-73%。表1比较了匹配的配置:$x=1$在第二轮TTFT上始终优于$x=0$,其中1P_3D配置实现了高达73.3%的改进。
表1. 从x=0切换到x=1时第二轮TTFT的改进。负值表示改进。对于P节点稀缺的配置(1P, 2P),x=1的优势随负载增加而增大,但当P节点充足(3P)时,优势减弱。
$x=1$优势的模式分析。一个显著的模式是,$x=1$的优势随着负载的增加而增加,因为QPS升高时,传输队列变长,D节点的本地缓存访问变得越来越有价值。该表还揭示,$x=1$的优势在P资源稀缺时最大化:1P配置显示高达73.3%的改进,而3P配置则显示收益递减。换言之,可用的预填充节点越少,D节点本地处理的益处就越大,因为$x=1$完全绕过了成为瓶颈的P节点。
P节点瓶颈与$x=1$的弹性。当P节点稀缺时,它们成为瓶颈。在$x=0$模式下,第二轮及以后的请求必须穿过这个瓶颈(P→D),而$x=1$则完全绕过P节点。这使得$x=1$配置更具弹性:在高QPS下,它们的失败率更低(见附录表5),因为只有第一轮请求会争夺P节点容量。当P节点充足时,预填充容量不再是瓶颈,本地AP的开销变得相对更重要。
验证:轮次和模型扩展。$x=1$的优势不仅限于2轮对话和8B模型。扩展实验(见附录图10)显示,在2-16轮对话和三种模型尺寸(8B, 14B, 30B)中,第二轮及以后的TTFT改进稳定在约70%,证实了这种益处源于架构特性而非模型特定特征。
多目标权衡的复杂性。上一节确定了$x=1$在第二轮TTFT上的明显优势。然而,生产级LLM服务必须平衡多个目标:延迟(TTFT)、生成平滑度(TPOT)和系统效率(吞吐量)。当我们把分析扩展到这些维度时,情况变得更加微妙。
核心发现。92.2%的工作负载-QPS组合在优化第二轮TTFT与平均TPOT时,其最优配置是不同的。这种根本性的紧张关系意味着没有单一配置能在所有目标上都占主导地位。最优选择取决于所优化的指标。
表2. 三个优化目标(最小化第二轮TTFT、最小化TPOT、最大化吞吐量)的胜出者分布。每个单元格显示该配置类别在所有(工作负载, QPS)组合中成为最佳结果的百分比。列总和不为100%,因为混合配置(很少胜出)被排除在外。完全AP-to-D(x=1)配置展示了最均衡的竞争力,在所有目标上取得了最高的平均胜出率。
配置类别的胜出模式。表2量化了这种权衡,显示了每个配置类别在三个目标上的胜出百分比。三个模式很突出:
1. 副本(Replica)主导第二轮TTFT:由于零网络传输和本地前缀缓存,副本实现了最低的第二轮延迟。然而,它几乎没有在TPOT或吞D吐量场景中胜出,因为其缺乏工作负载隔离,导致预填充操作干扰解码批次。
2. $x=0$和$0<x<1$配置主导TPOT:预填充和解码工作负载的物理分离确保了稳定的Token生成,没有干扰。仅解码(D)的机器保持一致的批处理大小和专用的内存带宽,从而产生可预测的每Token延迟。
3. 完全AP-to-D($x=1$)是第二轮TTFT的最佳分离选项:在分离配置中,$x=1$赢得了超过四分之一的第二轮TTFT胜利,而$x=0$则一无所获。$x=1$还带来了吞吐量的主导地位(38.3%):其缓存重用和减少的网络负载转化为更高的系统效率。
完全AP-to-D的均衡特性。从表2中一个关键的观察是:$x=1$(完全AP-to-D)是唯一一种在所有三个目标上都具有竞争力的分离模式。虽然$x=0$和$0<x<1$配置专注于TPOT优化,但它们很少在第二轮TTFT上胜出。$x=1$在所有目标上取得了最高的平均胜出率(见Avg列),使其成为在工作负载特性不确定时的一个稳健的默认选择。
PPD系统设计。第4.4节的权衡分析表明,没有单一的静态$x$值能在所有目标上占优。因此,我们设计了PPD,一个动态路由系统,它根据工作负载特性和操作员权重为每个请求选择$x$。
PPD的两阶段操作。PPD分两个阶段操作(算法1)。在离线阶段,它通过直接测量在两个极端情况$x=0$和$x=1$下每个单元格的TTFT和TPOT,构建一个基于粗粒度工作负载网格的查找表,然后存储评分函数的符号决策。在线阶段,每个第二轮及以后的请求被映射到三个维度(累积上下文长度、输入/输出比率、系统QPS)上最近的网格单元,并在<1毫秒内返回预先计算的决策;第一轮请求总是返回$x=0$,因为不存在缓存的上下文。
算法 1 PPD动态路由
1: 阶段1:离线表构建
2: for 每个在基准网格中的离散化工作负载 ψ̂ do
3: 测量在 x=0 和 x=1 时的第二轮TTFT和TPOT
4: 通过公式(1)计算 S(ψ̂; π, w)
5: 存储 x*(ψ̂) ← 𝟙[S > 0]
6: end for
7:
8: 阶段2:在线逐请求决策
9: 输入:在第 t 轮的请求工作负载 ψ
10: if t = 1 then return x = 0 {尚无缓存的KV}
11: end if
12: 将 ψ 离散化到最近的网格条目 ψ̂
13: return x*(ψ̂)
解耦配置规模与SLO调优。PPD将多轮服务控制问题分解为两个独立的旋钮。在传统PD中,P:D比率同时决定了第一轮的预填充容量和第二轮及以后的延迟权衡。PPD将它们解耦:P:D比率控制第一轮的吞吐量,而操作员权重$w$则在帕累托前沿上选择第二轮及以后的操作点。实验证明,PPD在我们评估的所有三种P:D比率下都保持稳定(图4),而静态的$x=0$基线在P节点稀缺时会崩溃。
数据集:
模型架构:
硬件配置:
软件配置:
在真实世界数据集上的实验揭示了两个关键发现:(1) PPD在两个数据集上均实现了比基线($x=0$)持续更低的平均查询延迟;(2) PPD解决了导致$x=0$模式在多轮工作负载下性能下降的KV传输瓶颈。
图4. PPD提升了稳定性和降低了延迟。在ShareGPT(蓝色)和WildChat(橙色)数据集上,三种配置(1P_3D, 2P_2D, 3P_1D)的平均查询延迟与QPS的关系。虚线:PD (x=0);实线:PPD (x ∈ [0, 1])。×标记表示服务降级(成功率<95%)。PPD在整个QPS范围内始终比PD实现更低的延迟,同时保持稳定性。
我们将PPD与最强的静态分离基线$x=1$(完全AP-to-D)进行比较。
表3. 在27个测试点(3个配置 × 9个QPS,WildChat数据集)上,各指标的胜出次数统计。PPD在TPOT上胜出次数最多(超过x=0),在TTFT上胜出次数最多(超过x=1),同时成功率与x=1持平,达到100%。没有一个静态基线能在所有指标上占优;PPD是唯一一个在所有三个指标上都具有竞争力的模式。
我们通过带宽模拟来验证PPD在较慢网络(如RoCE)下的表现。
图5. PPD的优势随着模拟网络速度的降低而单调增长。在1P_3D配置、QPS=1、WildChat数据集上的结果。左图:第二轮及以后TTFT。随着带宽下降,PD (x=0) 的TTFT从143.7ms上升到170.6ms (+18.7%);PPD保持在约51ms。中图:第二轮及以后TPOT。PD因网络竞争从8.07ms漂移到8.38ms (+3.8%);PPD保持在约8.1ms。右图:端到端延迟。PD增加了4.7%;PPD增加了0.9%。
我们通过调整权重$w_{tpot}$来展示操作员如何权衡TTFT和TPOT。
图6. wtpot在TTFT和TPOT之间描绘出一个单调的前沿。在预填充密集型工作负载下,1P_3D配置的第二轮及以后延迟。操作点(从左至右):静态PD(0% D-local);wtpot=6(20%);wtpot=3(50%);平衡的wtpot=1(95%)。
与同期工作和局限性的关系。同期工作AMPD【12, He, W. et al. Efficient multi-round llm inference over disaggregated serving, 2026】也识别了PD分离在多轮服务中的低效性,并提出通过实时队列状态估计来协调预填充工作负载。我们的工作在范围上是互补的:PPD贡献了(i) 对本地追加式预填充为何可行的微架构解释,即干扰上的数量级差距;(ii) 一个清晰的优化框架,其中传统PD是$x \equiv 0$的特例;以及(iii) 一个操作员可以离线调整的单旋钮TTFT–TPOT控制面(公式(1))。PPD的主要局限性在于其查找表是离线构建的,当硬件或工作负载分布与校准集相差甚远时,其性能会优雅地下降但非最优。AMPD的在线队列状态估计是弥补这一差距的自然机制,我们视PPD的原则性基础和AMPD的自适应循环为可组合而非竞争关系。
与分布式KV缓存的关系。分布式KV缓存层(例如Mooncake【33, Qin, R. et al. Mooncake: A kvcache-centric disaggregated architecture for llm serving, 2025】, MemServe【14, Hu, C. et al. Memserve: Context caching for disaggregated llm serving with elastic memory pool, 2024a】)与PPD在不同层面运作:它们决定前缀状态在集群中的存储位置,而PPD决定如何调度缓存命中和未命中的请求以避免相互干扰。两者完全兼容。分布式存储最大化了前缀重用,而PPD确保了热请求不会被冷请求延迟;我们预计联合部署将在大规模服务中放大两种效应。
多轮对话暴露了PD分离架构在单轮工作负载中不明显的根本性限制。完全预填充和追加式预填充之间存在数量级的干扰差距,这开辟了一个新的设计维度:解码节点可以安全地在本地处理第二轮及以后的请求。然而,我们对3060个配置的系统性探索证实,静态路由无法普适地优化TTFT、TPOT和吞吐量。PPD通过一个离线调整的、单旋钮控制面(公式(1))实现了一种工作负载感知的替代方案,在真实世界工作负载上平均将第二轮及以后的TTFT减少了约68%,同时保持了有竞争力的TPOT,并且每个请求的开销小于1毫秒。
所有配置均使用固定的4个GPU预算。符号说明:xP = x个仅预填充节点,xD = x个解码节点,xR = x个副本节点。
为何混合配置被排除在主分析之外。我们的实验包括7种结合了R(副本)节点和P/D节点的混合配置(见表4)。然而,我们将混合配置排除在主分析之外,原因有二。首先,R节点无法从分离架构的工作负载隔离中受益。当R节点处理预填充操作时,会干扰其自身的解码批次,这正是PD分离旨在解决的问题。其次,混合配置减少了专用的P/D资源池,可能在高负载下造成预填充瓶颈。在我们的实验中,混合配置很少在任何指标上取得最佳性能。
PPD查找表沿三个离散轴索引第一阶段的测量结果:
* 上下文类别:将累积的上下文长度$n_{ctx}$分为小(≤512)、大(512–4096)和巨大(>4096)三个区间。
* 工作负载类型:将输入/输出Token比率$n_{in}/n_{out}$分为九个类别,涵盖解码密集型、均衡型和预填充密集型。
* QPS区间:将当前系统QPS对齐到第一阶段基准测试中使用的最近级别。
在推理时,一个带有特征元组$\psi = (t, n_{in}, n_{out}, n_{ctx}, q)$的请求被映射到最近的网格单元$\hat{\psi}$,并返回预计算的决策$x^*(\hat{\psi})$。
我们的实现重用了vLLM的分离式服务基础设施。P节点以kv_role=kv_producer运行,生成KV缓存并通过ZeroMQ发送。D节点以kv_role=kv_consumer运行,接收KV缓存并在$x>0$时将其存储在本地前缀缓存中以供后续轮次处理。
路由代理维护一个内存中的会话表字典,键为对话哈希值,值为包含轮次数、分配的PD节点和最后访问时间戳的字典。对话标识符是首个用户消息的MD5哈希。会话在60分钟不活动后被驱逐。
后端服务器通过ZeroMQ每10秒向代理发送心跳进行注册。代理维护每种服务器类型(P, D, R)的实例列表,并在服务器30秒无心跳后将其移除,以实现动态扩展和自动故障恢复。
路由代理使用Quart(异步Flask)实现,处理请求解析、会话查找/创建、请求转发和统计数据收集等任务。
为了在没有多节点硬件的情况下模拟较慢的互连(第6.4节),我们在vLLM的P2P NCCL连接器的解码端接收路径上注入了一个校准过的额外延迟。对于每个PD路由的请求,注入的延迟为:
其中$B(\psi) = n_{tokens} \cdot s_{kv}$是请求的KV缓存大小,$\beta_{target}$是模拟的带宽,$t_{NVLink}$是实际的NVLink传输时间。对于Llama-3.1-8B,每个Token的占用空间$s_{kv} = 128$ KiB。在WildChat P90上下文长度为5,115个Token时,每次$x=0$路径的传输量约为670 MB。
表4. 实验中评估的17种配置的完整列表。路由参数x决定了路由到D节点的AP操作的比例。
高并发下的干扰。图7将并发数增加到4个同时进行的预填充操作。干扰差距依然存在:完全预填充导致约57%的TPOT下降,而追加式预填充保持在约21%以内。这证实了干扰特性的根本差异并非低并发下的偶然现象。
图7. 4个并发预填充操作下的预填充-解码干扰。在批处理大小为200时,完全预填充导致约57%的减速;追加式预填充保持在约21%的基线内。
长上下文下的干扰。图8将上下文长度从2K变化到64K。完全预填充的干扰呈二次增长,在32K Token时达到3-4倍的减速。相比之下,追加式预填充的干扰即使在64K Token时也低于25%,验证了其干扰随上下文长度线性扩展。
图8. 干扰随上下文长度的扩展。完全预填充的干扰在32K Token时增长到3-4倍;追加式预填充即使在64K时也保持在25%以下。
帕累托前沿分析。图9展示了在所有工作负载类型和QPS级别上的完整帕累托前沿分析。图表显示,随着QPS的升高和工作负载变得更加解码密集,橙色的基线点向更高的TTFT发散,而蓝色的具备D本地处理能力的点则聚集在较低TTFT的区域。这再次印证了没有单一配置能在所有帕累托前沿上占据最优位置,从而强化了动态决策的必要性。
图9. P99 TTFT vs. TPS 帕累托前沿。具备D本地处理能力的配置(蓝色)实现了更低的TTFT,同时保持了有竞争力的TPS,这种优势在高QPS和解码密集型工作负载下尤为明显。
轮次和模型规模扩展。图10验证了$x=1$的优势是否能推广到更长的对话和更大的模型。结果证实,$x=1$在2-16轮对话和8B-30B模型尺寸上都保持了其优势。对于轮次扩展,随着对话变长,TTFT的差距扩大。对于模型扩展,相对改进稳定在约70%,表明益处源于架构特性。
图10. x=1在不同轮次和模型尺寸下保持优势。(a) 轮次扩展:2-16轮对话的第二轮及以后TTFT。(b) 模型扩展:8B-30B模型的第二轮TTFT。x=1的性能接近副本,同时保留了分离架构的益处;x=0随着上下文增长而急剧退化。
系统可靠性分析。表5报告了高QPS水平下各配置的请求失败率(超时>30秒)。结果显示,(1) 极端P:D比率(如3P_1D)的配置本身很脆弱;(2) 在每个P:D比率内,$x=1$的失败率始终低于$x=0$。这源于网络竞争的减少,$x=1$消除了第二轮及以后的KV传输,为无法避免的第一轮传输释放了带宽。
表5. 高QPS下的失败率。x=1配置始终显示出比其x=0对应配置更低的失败率。
端到端延迟的全面比较。图11展示了在WildChat数据集上$x=0$、x=1和PPD的完整三方比较。静态的$x=0$基线(蓝色虚线)在27个测试点中有13个出现灾难性失败。相比之下,$x=1$和PPD都在所有测试点上保持了100%的成功率,并且它们的端到端延迟曲线在视觉上几乎无法区分。
动态路由的价值。这种视觉上的相似性恰恰说明了按指标分解的必要性(如正文表3所示)。在平衡权重下,PPD通过将部分请求路由回P节点,用少量的TTFT换取TPOT的改进,这两种效应在端到端指标中几乎抵消。动态路由的价值随着解码池压力的增加而变大。在3P_1D配置中,当唯一的解码节点成为瓶颈时,PPD有最大的空间将第二轮及以后的负载重新分配回充足的P池。PPD的收益有两个来源:一是静态的、每次请求的传输时间节省,二是动态的、随并发负载增长的排队时间节省。
图11. 在WildChat上的三方端到端延迟比较。PD (x=0, 蓝色虚线)在13/27的测试点中灾难性失败。pD (x=1, 橙色三角)和PPD (绿色方块)都保持了稳定性,且端到端曲线几乎相同。端到端相似性是预期之中的,而表3中的按指标分解揭示了PPD打破了两个静态基线的指标垄断。